一维的情况下:
单尺度
分解:
[ca1,cd1]=dwt(signal,wavelet'); //signal是被分析的信号,wavelet是小波类型,ca1是低频系数,cd1是高频系数。
重构:
A1=upcoef('a',ca1,wavelet,1,l_s);//参数'a'表示近似系数(低频)的重构,如果是'd'表示细节系数(高频)的重构,l_s是信号的长度
或
s=idwt(ca1,cd1,wavelet,l_s);
多尺度
分解:
[c,l]=wavedec(signal,maxlevel,wavelet);//参数maxlevel是多尺度分解的层数,输出c是系数,l是系数的排列信息
对系数的一些操作可以用函数wthcoef(),比如设置细节系数为0等。提取系数的函数: appcoef()和detcoef()分别提取近似系数和细节系数。
c=wthcoef('d',c,l,[2,3]);//设置尺度2,3下的细节分量为0
ca3=appcoef(c,l,wavelet,3);//提取尺度3下的近似系数
cd3=detcoef(c,l,3);//提取尺度3下的细节系数
重构:
重构整个信号
s=waverec(c,l,wavelet);
重构细节信号
s=wrcoef('d',c,l,'db1',3);//重构尺度3下的细节信号
重构近似信号
s=wrcoef('a',c,l,'db1',3);//重构尺度3下的近似信号
二维情况下:
单尺度:
分解:
[ca1,ch1,cv1,cd1]=dwt2(signal,'db1');//输出ca1是近似系数,ch1是水平细节系数,cv1是垂直细节系数,cd1是对角细节系数
重构:
s=upcoef2('a',ca1,'db1',1);//根据ca1重构尺度1下的近似信号
或
s=idwt2(ca1,ch1,cv1,cd1,'db1');
多尺度:
分解:
[c,s]=wavedec2(x,2,'db1');//对信号x进行2尺度的分解,系数在c中,系数的结构说明在s中。
appcoef2()和detcoef2()用来取得不同尺度下的近似系数和细节系数。
wrcoef2()根据近似系数或细节系数重构信号