我用数值积分求解了一个波动方程,并在python列表中存储了每一步的波函数值。所以我有几个清单:
x=[1,1.001,1.002,.....4]
和
psi= [1.571,1.579.....1]
x
是一个包含空间坐标的列表,psi
是一个包含波函数相应值的列表。psi
vsx
图类似于chirp信号(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
(小波变换)?在
正如您在图中所示,
x
是时间分量的等价物。傅立叶分析并不局限于时间序列;这仅仅是他对一般函数分解的最常见的应用。在相关问题 更多 >
编程相关推荐