3

複素数値スペクトルで iFFT を実行し、対応する時間領域信号を変更します。たとえば、最初のサンプルをゼロにします。最後に、FFT を介して周波数領域に変換します。

2つの結果が異なるため(正の周波数を比較しながら)、ここで両側(対称)スペクトルを使用するか、片側スペクトルのみ(正の周波数のみ)を使用することの(物理的な)違いはどこにあるのだろうか?

バージョン 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+1j]

4

1 に答える 1

3

IFFTルーチンは、片側スペクトルを提供していること(つまり、暗黙の複素共役対称負の周波数ビンがあること)を認識していないため、これを通常のN点複素周波数領域入力として(誤)解釈することしかできません正と負の両方の周波数ビン。

一部のFFTライブラリ(FFTW、vDSPなど)、実数から複素数のFFTおよび複素数から実数のIFFTをサポートします。ここで、複素周波数領域のビンの数はN / 2であり、冗長な複素共役対称項は省略されますが、通常はこれには、N個の入力とN個の出力を持つより一般的な複素数から複素数の場合とは異なる別のAPIがあります。

于 2012-01-30T11:50:32.540 に答える