np.fft.fft以所谓的“标准顺序”返回结果:(来自docs)
如果
A = fft(a, n),则A[0]包含零频率项(信号的均值),对于纯输入,该零频率项始终是纯实数。然后
按负频率递减的顺序A[1:n/2]包含正频率项,并A[n/2+1:]包含负频率项。
该函数
np.fft.fftshift将结果重新排列为大多数人期望的顺序(这对于绘制很有用):
例行
np.fft.fftshift(A)位移变换及其频率将零频率分量置于中间…
因此使用
np.fft.fftshift:
import matplotlib.pyplot as pltimport numpy as npN = 128x = np.arange(-5, 5, 10./(2 * N))y = np.exp(-x * x)y_fft = np.fft.fftshift(np.abs(np.fft.fft(y))) / np.sqrt(len(y))plt.plot(x,y)plt.plot(x,y_fft)plt.show()



