让x
成为长度为N的(实值)数组。我在X=fft(x)
的频域中做了一些修改(过滤等)。
在进行inverseFFT(y=ifft(X)
)之前,我希望X
的后半部分填充X
的前半部分的共轭,相反的顺序。为什么?因为它必须像真实信号一样! (见:http://en.wikipedia.org/wiki/Fast_Fourier_transform#FFT_algorithms_specialized_for_real_and.2For_symmetric_data)
我怎样才能用Python做到这一点? 它应该是这样的吗?
X[N/2:N] = np.conjugate(X[N/2::-1])
答案 0 :(得分:0)
我不知道它是否100%正确,但
X = fft(x)
N = len(x)
# here do some modifications on X (in the frequency domain)
X[:N/2:-1]=np.conjugate(X[1:N/2])
y=ifft(X)
似乎有效:对X的前半部分进行的修改将在X的后半部分复制。然后y
将是(实值)输出。