如何在Python中获得随机列表的傅立叶变换



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

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

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

x是包含空间坐标的列表,psi是具有我的波函数相应值的列表。psi vs x绘图类似于一个CHIRP信号(这里是(,我在提取其中存在的频率方面很有趣。这似乎确实是一个足够简单的问题,但是我已经浏览了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)

这就是我得到的结果。但是问题是只有一个峰,我认为这与组成频率的平均值相对应。有什么办法可以在Python上获取单个频率?也许使用其他一些模块,例如pywt(小波变换(?

正如您在图中显示的那样, x是您等同于时间组件的。傅立叶分析不限于时间序列;这只是他对一般功能分解的最常见应用。

最新更新