在 Python 中绘制 FFT 图

Plotting FFT diagram in Python

在SciPydocumentation中有一部分我没看懂。 这是什么意思?

plt.plot(xf, 2.0/N * np.abs(yf[0:N/2]))

在此代码示例中,您绘制了信号的 FFT。我猜你想问的是为什么我们只绘制了一半?超过奈奎斯特频率(频谱的一半)的频率是对称的和冗余的。 Here 是一个不错的答案,涵盖了详细信息。

我也有同样的疑问。下面的 post 可以提供帮助!

https://dsp.stackexchange.com/questions/59434/should-you-scale-the-fft-bins-by-1-n-where-n-is-the-number-of-points-in-a-tr

https://dsp.stackexchange.com/questions/63001/why-should-i-scale-the-fft-using-1-n

看来Scipy和Matlab处理DFT/FFT的方式是一样的。第一个 post 似乎更直接,并且比例从所使用的 DFT 的定义上升。

缩放因子实际上是 1/N 而 Scipy 教程中的 2 只是因为数组 yf 的一半已经被切片 2.0/N * np.abs(yf[0:N//2]).