计算功率谱

2024-04-28 20:14:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用Python3计算一个功率谱。从另一个关于这个话题的线索我得到了基本的成分。我觉得应该是这样的:

ps = np.abs(np.fft.fft(x))**2
timeres = t[1]-t[0]
freqs = np.fft.fftfreq(x.size, timeres)
idx = np.argsort(freqs)
plt.plot(freqs[idx], ps[idx])
plt.show()

这里t是时间,x是光子计数。我也试过:

W = fftfreq(x.size, timeres=t[1]-t[0])
f_x = rfft(x)
plt.plot(W,f_x)
plt.show()

但两者都只给了我一个0左右的峰值(尽管它们不一样)。我正试图从这个计算功率谱:

data

这会给我一个580Hz左右的信号。我在这里做错什么了?


Tags: fftsizeplotshownpplt功率python3