我正在使用pyplot来显示信号'a'的FFT,这里是代码:
myFFT = numpy.fft.fft(a)
x = numpy.arange(len(a))
fig2 = plt.figure(2)
plt.plot(numpy.fft.fftfreq(x.shape[-1]), myFFT)
fig2.show()
在频域中,从信号的开头到结尾都有一条线。我怎么能删除这条线?上午我对pyplot做错了吗?
答案 0 :(得分:1)
而不是sorted
,您可能希望使用np.fft.fftshift
来定位第0个频率,这可以正确处理奇数和偶数信号。最重要的是,您需要对正在绘制的x和y矢量应用变换。
plt.plot(np.fft.fftshift(np.fft.fftfreq(x.shape[-1])), np.fft.fftshift(myFFT))
您可能还想显示FFT的幅度或相位(np.abs
或np.angle
) - 按原样,您只是绘制实部。
答案 1 :(得分:0)
看看plt.plot(numpy.fft.fftfreq(x.shape[-1])
:第一个和最后一个点是相同的,因此图表"形成一个循环"
您可以plt.plot(sorted(numpy.fft.fftfreq(x.shape[-1])),myFFT)
或plt.plot(myFFT)