Почему мой график KISS FFT показывает повторяющиеся пики, отраженные по оси Y? - PullRequest
2 голосов
/ 17 января 2012

Я новичок в понятиях БПФ, и поэтому я понимаю, что если я введу 1024 сигнала, я получу 513 бинов в диапазоне от 0 Гц до 22050 Гц (в случае частоты дискретизации 44100 Гц). Используя KISS FFT в Cinder, функция getBinSize возвращает ожидаемые 513 значений для ввода 1024 сигналов. Чего я не понимаю, так это почему появляются двойные пики. При выполнении тестового аудиосэмпла, проходящего через частоты (в порядке) от 20 Гц до 22000 Гц, я вижу два пика за все время. Это выглядит примерно так:

__ _ __ | __ _ __ _ __ | __ _ __

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

Ответы [ 2 ]

5 голосов
/ 24 мая 2012

Хорошо, прочитав это, я нашел решение.Причина зеркального отображения заключается в том, что я использую БПФ на действительных числах (настоящие БПФ).Обычное БПФ, как все знают, работает на комплексных числах.Следовательно, мнимая часть «установлена» в 0 в реальном БПФ, что приводит к зеркальному отражению вокруг середины (или, технически говоря, зеркальное отражение составляет около 0 и N / 2).

Вот подробное обсуждение: http://www.edaboard.com/thread144315.html

И прочитайте стр. 238 - 242 этой книги.Это фантастика, так что купи это.Я думаю, что есть бесплатная PDF-версия на сайте автора: http://www.dspguide.com/

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

Вы, возможно, наносите на график величину всех 2424 результатов FFT для FFT длиной 1024, но верхняя половина - это просто зеркальное отображение нижней половины (так как ввод в сложном БПФ только в режиме реального времени не обеспечивает достаточных степеней свободы сделать верхнюю половину уникальной).

Пики будут перемещаться навстречу друг другу, когда зеркально отражают друг друга вокруг центра.

Другая возможность состоит в том, что ваше БПФ было как-то только длиной 512.

...