如何在python中获取随机列表的傅里叶变换?

时间:2018-02-12 18:05:59

标签: python python-2.7 list fft

我已经使用数值积分求解了波动方程,并在python列表的每一步中存储了波函数的值。所以我有几个列表:

x=[1,1.001,1.002,.....4]

psi= [1.571,1.579.....1]

x是一个包含空间坐标的列表,psi是一个列表,其中包含我的波函数的相应值。 psi vs x图类似于啁啾信号(here it is),我很有兴趣提取其中存在的频率。这似乎是一个简单的问题,但我浏览了np.fft文档以及该社区的所有相关问题,但我无法找到我想要的内容。

所以我的问题是:给定空间波形,如何对其应用傅立叶变换以获得它包含的频率?

编辑:我写了以下代码:

fourier=np.fft.fft(p)   #p is a list
freq=np.fft.fftfreq(len(p),h)     #h is the step size of my grid
plt.xlabel('w')
plt.ylabel('Power')
plt.title("Fourier Transform")
plt.plot(freq,abs(fourier)**2)

this是我得到的结果。但问题是只有一个峰值,我认为这个峰值与成分频率的平均值相对应。有没有办法在python上获得各个频率?也许通过使用其他模块,如pywt(小波变换)?

1 个答案:

答案 0 :(得分:0)

正如您在情节中所展示的那样,x等同于时间成分。傅里叶分析不仅限于时间序列;这只是他分解一般函数的最常见应用。