我想从我的数据集(大约 2000 个值的数组,每分钟记录一次数据)绘制功率谱图。
我已经做到了:
y= np.fft.fft(data)
abs = np.abs(y) #absolute value
p = np.square(abs) #power
但对设置频率感到困惑。
我尝试使用 freqs = np.fft.fftfreq(len(y))
,但是当我绘制结果时,它看起来像,这不可能是正确的。
我做错了什么?
答案 0 :(得分:0)
以下是绘制功率谱的示例:
import matplotlib.pyplot as plt
import numpy as np
t = np.linspace(0,2000,200)
data = 2 * np.sin(2*np.pi *60*t) + 2 * np.sin(2*np.pi *42*t)
spectrum = np.fft.fft(data)
power_spectrum = np.square(np.abs(spectrum))
fig, ax = plt.subplots()
ax.plot(np.arange(len(power_spectrum)), power_spectrum)
plt.show()