python - 功率谱的频率

时间:2021-07-31 10:17:07

标签: python numpy

我想从我的数据集(大约 2000 个值的数组,每分钟记录一次数据)绘制功率谱图。

我已经做到了:

y= np.fft.fft(data)
abs = np.abs(y) #absolute value
p = np.square(abs) #power

但对设置频率感到困惑。

我尝试使用 freqs = np.fft.fftfreq(len(y)),但是当我绘制结果时,它看起来像,这不可能是正确的。 enter image description here 我做错了什么?

1 个答案:

答案 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()

enter image description here