小波变换DWT的每一层细节和概貌系数对应的频率的计算

最近用小波变换提取信号的特征,需要把每一层系数对应的频率范围找出来,之前学习小波变换的理论时,没怎么关注这个问题,特此总结。

主要是看了这个百度回答,非常有用!

每层系数到底对应哪一段频率实际上好像也不是特别惹人关心,但是确实也可以计算出来,主要是要用到离散时间信号的采样频率 f s fs fs,和DWT的分解层次 j j j

细节系数的频率范围是

f s 2 j + 1 ∼ f s 2 j \frac{f_s}{2^{j+1}} \sim \frac{f_s}{2^j} 2j+1fs2jfs

概貌系数的频率范围是

0 ∼ f s 2 j + 1 0 \sim \frac{f_s}{2^{j+1}} 02j+1fs

从百度回答搬过来的:

有两点需注意

  1. DWT小波分解的各阶细节和近似重构后的实际时空长度和原始信号是相同的,例如原始信号经历的时间是1秒,那么分解重构后的各阶细节和近似它们代表的时间也是1秒。

  2. 各阶分解的不同就是分解的小波系数的个数不同,由于通常的DWT都使用二进小波变换,所以通常每一高阶分解的小波系数个数都约是每一低阶的一半,重构时都再插值到原始信号的采样点数。所以由各阶重构时空长度不变和小波系数的个数随阶次增大而以2的幂次减少可以分析得出,**每一高阶重构信号的最大频率应是其相邻低阶重构信号最大频率的一半。**对于小波重构的细节,其分解有些是通过带通滤波器实现的,其信号波长(频率)将是是一个范围,最大值是该阶细节的最大频率,其最小值由于使用二进小波变换的原理是其最大频率的一半。 对于小波重构的逼近,其频率应是小于一个值,这个值是该阶细节的最小频率。

  3. 但实际matlab在DWT时并不能做到每一阶都精确的减半,关于这个问题可以参看http://zhidao.baidu.com/question/744136556371648892.html?oldq=1 ,但影响并不大,尽可放心使用

关键信息是信号最高频率由于奈奎斯特定理是fs/2, 细节是高频,所以第一层里面,细节系数对应的频带就是fs/4–fs/2,概貌是0–fs/4(每一层)

我对我的信号做了4层小波分解,得到的

 % DWT
        [C, L] = wavedec(ch, 4, 'db4'); % ch是信号, fs=128hz

得到的L:
里面的分量分别表示A4,D4,D3,D2,D1,ch的长度,即第四层概貌系数有246个,第四层细节系数246个,信号长度3840,确实极其接近于2倍的关系
小波变换DWT的每一层细节和概貌系数对应的频率的计算_第1张图片
在这里插入图片描述
fs=128hz,所以最高频率是64hz, 各层系数对应频率范围:

DWT分解层次 对应频带
A4 0-4Hz
D4 4-8Hz
D3 8-16Hz
D2 16-32Hz
D1 32-64Hz

所以,分解层次越高对应的频率越低,越高层对应的频宽也越窄,按照2次幂减少

更具体的去看那个百度回答吧,写的特别好很详细

奈奎斯特定理果然是信号处理的根基定理

小波去噪

根本思想来源:小波分解把信号按照频率范围分解为多层,底层的细节系数对应着信号中的高频部分,即噪声;而高层的细节系数对应的信号的低频部分,即真正的信号部分;所以就是先分解,拿到底层的细节系数后,置零,就去除了高频噪声,再拿着所有系数重构原信号,得到就是去噪后的信号。

整个流程很简单:先把信号用小波多阶分解,得到最高分解层次的概貌系数所有层次的细节系数,然后把低层(一般选第一层和第二层)的细节系数置为0!!!!(因为细节系数表示的是高频噪声,上文的表写的很清楚!),然后再用这些概貌和细节系数去重构信号,得到的就是去噪后的信号啦。

我参考的这篇文章,代码特别明晰,实验和图片也效果很好,一看就明白整个逻辑了!!!

你可能感兴趣的:(信号与系统)