我是信号处理方面的新手,我想找出杜贝希斯小波'db4‘变换输出的各个电平的频率范围。转换是用PyWavelets完成的。我在python中工作,下面的代码输出5个细节级别和1个近似,但是我不确定每个级别描述的频率范围。
data = pywt.wavedec(X_train_ch1_raw[0], 'db4', level=5)发布于 2020-03-20 23:10:41
你的问题比看上去更棘手。
简短的回答是:使用pywt的scale2freq内建函数在给定的尺度上返回与给定小波相关的频率。例如,下面的代码返回标度为5(0.14285714285714285)的Daubecaries4小波的频率:
import pywt pywt.scale2frequency('db4',5)
通过计算db4小波(0.7142857142857143)的中心频率,然后除以标度(5),就可以得到同样的结果。
import pywt pywt.central_frequency('db4')/5
请注意,这个不是信号的实际中心频率!这个量被称为伪频率,因为它与被分析的信号无关.
为了恢复信号的中心频率,需要将伪频率除以信号的采样率:
import pywt pywt.scale2frequency('db4',5)/dt
dt是你的抽样率。
我希望这能帮到你!
PS:我建议绘制重建信号的频谱,以使自己确信中心频率与上述解析公式的输出值相匹配。
https://stackoverflow.com/questions/60776629
复制相似问题