Numpy有一个方便的功能
np.fft.fftfreq格式计算频率
与FFT组件相关:
from __future__ import divisionimport numpy as npimport matplotlib.pyplot as pltdata = np.random.rand(301) - 0.5ps = np.abs(np.fft.fft(data))**2time_step = 1 / 30freqs = np.fft.fftfreq(data.size, time_step)idx = np.argsort(freqs)plt.plot(freqs[idx], ps[idx])
请注意,您看到的最大频率不是30Hz,而是30Hz
In [7]: max(freqs)Out[7]: 14.950166112956811
在功率谱中你永远看不到采样频率。如果你有一个
如果样本数为偶数,那么您就可以到达[Nyquist]
频率](http://en.wikipedia.org/wiki/Nyquistu频率),15赫兹
(尽管numpy会将其计算为-15)。



