对于非平稳信号进行不断的分解过程,将近似信号连续分解,就可将信号分解成许多低频和高频成分。图就是这样一个小波分解树。图2中S表示原始信号,A表示近似,D表示细节,下标表示分解的层数。
( 图2 )小波分解树示意图
由于分解过程是重复迭代的,从理论上说可以无限地连续分解下去,但事实上,分解可以进行到细节只包含单个样本为止。因此在实际应用中,一般依据信号的特性或合适的标准来选择适当的分解层数。
MATLAB 中提供的离散小波分解函数有
dwt
作用:单层一维小波变换函数。特定的小波或小波滤波器执行单层一维小波分解。
语法:
[cA,cD]=dwt(X,’wavename’)
[cA,cD]=dwt(X,Lo_D,Hi_D)
[cA,cD]=dwt(x,’wavename’,’mode’,mode)
说明:
[cA,cD]=dwt(x,’wavename’) 通过向量X的小波分解,计算近似小波系数向量cA和细节小波系数向量cD.其中:‘wavename’表示指定小波名称。
[cA,cD]=dwt(X,Lo_D,Hi_D)以给定的滤波器计算单层一维小波分解。其中Lo_D表示分解低通滤波器,Hi_D表示分解高通滤波器,两者长度一样。
如果dwt()扩展模式为周期模式,若滤波器长度为Lf,X长度为Lx,则length(cA)=length(cD)=floor((Lx+Lf-1)/2).
[cA,cD]=dwt(x,’wavename’,’mode’,mode)
[cA,cD]=dwt(X,Lo_D,Hi_D,’mode’,mode) 计算小波分解并指定扩展模式。
用dwt()函数,来分解一声音信号。
程序清单如下:
format compact
[W,Fs,bits]=wavread('c:\Documents and Settings\ÕÔÑô\×ÀÃæ\456.wav');
Fs
bits
winrect=[170 170 800 400];
figure;
subplot(2,1,1);plot(W(:,1));
subplot(2,1,2);plot(W(:,2));
dwtmode('sym');
[cA_L,cD_L]=dwt(W(:,1),'coif4');
[cA_R,cD_R]=dwt(W(:,2),'coif4');
l=length(cA_L);
figure;
subplot(2,2,1);plot(cA_L);
subplot(2,2,2);plot(cD_L);
用dwt()函数来分解一声音信号如图4
非平稳信号去噪方法研究(三)由毕业论文网(www.huoyuandh.com)会员上传。