Временная область / Спектр / DSP - PullRequest
3 голосов
/ 30 января 2012

Я выполняю iFFT для комплексного спектра и изменяю соответствующий сигнал во временной области, скажем, обнуляя первую выборку.Наконец, я преобразую его обратно в частотную область через FFT.

Интересно, где (физически) разница между использованием двухстороннего (симметричного) спектра или только одностороннего спектра (только положительные частоты) здесь?, поскольку два результата отличаются (при сравнении положительных частот)?

Версия 1 (двусторонний спектр): fft( nulling( ifft( [0, 1+1j, 2+j, 2-2j, 1-1j] ) ) )

Вывод: [-1.2, -0.2 + 1j,0,8 + 2j, 0,8-2j, -0,2-1j]

Версия 2 (односторонний спектр): fft( nulling( ifft( [0, 1+1j, 2+j] ) ) )

Выход: [-1-1j, 0 + 0j, 1+ 1к]

1 Ответ

3 голосов
/ 30 января 2012

Поскольку ваша процедура IFFT не знает , что вы предоставляете односторонний спектр (т. Е. Существуют неявные комплексные сопряженные симметричные отрицательные частотные интервалы), она может только (неправильно) интерпретировать это какнормальный N-точечный вход комплексной частотной области с положительными и отрицательными частотными бинами.

Некоторые библиотеки FFT (например, FFTW, vDSP) do поддерживают БПФ от реального к сложному и от комплексного к сложномуреальное IFFT, где количество элементов комплексной частотной области равно N / 2, а избыточные комплексно-сопряженные симметричные термины опущены, но они обычно имеют отдельный API для этого, который отличается от более общего случая комплексного комплекса с N входамии N выходов.

...