БПФ реализация - PullRequest
       11

БПФ реализация

0 голосов
/ 30 декабря 2011

У меня проблема с реализацией FFT.Целевое устройство - Windows Phone 7.

Вот как я это делаю.буфер - это байтовый массив с фиксированным размером 1024.

var o = Observable.FromEvent<EventArgs>(Microphone.Default, "BufferReady");
        o.Subscribe(evt =>
        {
            double[] dImageArray = this.buffer.Select(i => Convert.ToDouble(i)).ToArray();

            fftoutput = Saluse.MediaKit.Sample.FourierTransform.FFTDb(ref dImageArray);

        });

Используемый мной класс (как вы можете видеть) взят из SaluseMediakit ( source )

Isэто правильный путь?Или я где-то ошибаюсь?

1 Ответ

1 голос
/ 01 января 2012

Мне удается выполнить хороший FFT с AFORGE (эта библиотека спасла меня несколько раз).Правильный способ получения информации о форме сигнала с микрофона.

  double[] sampleBuffer = new double[buffer.Length / 2];
            int h = 0;
            for (int i = 0; i < buffer.Length; i += 2)
            {
                sampleBuffer[h] = Convert.ToDouble(BitConverter.ToInt16((byte[])buffer, i));
                h++;
            }

В ответ на другой вопрос.Я хотел бы сделать визуальный эквалайзер.Но я понятия не имею, как это сделать.

...