ifft之前用共轭填充fft(x)阵列的一半

时间:2013-12-02 22:26:01

标签: python arrays numpy scipy fft

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])

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将是(实值)输出。