このようにそれを試してみてください。
# My symmetric spectrum
spectrum = numpy.array([0+0j,1+1j,2+2j,3+3j,0+0j,3-3j,2-2j,1-1j])
# Perform the iFFT
print numpy.fft.ifft(spectrum)
通常ビン0 DCで、ビンN/2はナイキストあり、これらの値の両方が本当です。他の用語については、対称性はナイキストの周りの複素共役である。
私はあなたの元の入力データのためにあなたと同じ結果を得るオクターブ(MATLABクローン)で
:
octave-3.4.0:3> x = [0+0j,1+1j,2+2j,3+3j,0+0j,3-3j,2-2j,1-1j];
octave-3.4.0:4> y = ifft(x)
y =
1.50000 -1.56066 0.00000 0.14645 -0.50000 0.56066 -1.00000 0.85355
:私は純粋に実際の結果を得る上で、私の入力データとのに対し
octave-3.4.0:1> x = [1+1j,2+2j,3+3j,3-3j,2-2j];
octave-3.4.0:2> y = ifft(x)
y =
2.20000 + 0.20000i -1.98979 + 0.20000i 0.59465 + 0.20000i -0.74743 + 0.20000i 0.94258 + 0.20000i
私は、おそらくnumpyがFFT/IFFTの入出力データの順序付けに同じコミュニケーションを使用していると仮定します。
対称スペクトルはシフトされていますか?私は、スペクトルが0に関して対称であるときにスペクトルが対称であると言うことを意味する。そして、一定の虚数部分は通常、シフトに対応する。 – jimifiki
1 + 1jの代わりに1 + 0jを使用する –