如何找到DWT信号变换的频段?

2024-02-27

我是信号处理方面的新手,我想找出 Daubechies 小波“db4”变换输出的每个级别的频率范围。转换是通过 PyWavelet 完成的。 我正在 python 中工作,下面的代码输出 5 个细节级别和 1 个近似值,但是我不确定每个级别描述的频率范围。

data = pywt.wavedec(X_train_ch1_raw[0], 'db4', level=5)

你的问题比看起来更棘手。

简短的答案是:使用 pywtscale2freq内置函数返回给定尺度下与给定小波相关的频率。例如,下面的代码返回尺度 5 处 Daubechies 4 小波的频率 (0.14285714285714285):

import pywt pywt.scale2frequency('db4',5)

通过计算 db4 小波的中心频率 (0.7142857142857143),然后除以尺度 (5),您可以得到相同的结果

import pywt pywt.central_frequency('db4')/5

请注意,这不是信号的实际中心频率!这个量称为伪频率因为它独立于被分析的信号。

为了恢复信号的中心频率,需要将伪频率除以信号的采样率:

import pywt pywt.scale2frequency('db4',5)/dt

Where dt是你的采样率。

我希望这有帮助!

PS:我建议绘制重建信号的频谱,以说服自己中心频率与上述分析公式输出的值相匹配。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何找到DWT信号变换的频段? 的相关文章

随机推荐