我已经使用数值积分求解了波动方程,并在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
(小波变换)?
答案 0 :(得分:0)
正如您在情节中所展示的那样,x
等同于时间成分。傅里叶分析不仅限于时间序列;这只是他分解一般函数的最常见应用。