Matlab下小波分析wavelet常用命令

Matlab下小波分析wavelet常用命令 分类: Math & Algorithm
转自:
redoc

http://blog.chinaunix.net/space.php?uid=7817741



一维的情况下:

单尺度

分解:

[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()根据近似系数或细节系数重构信号

你可能感兴趣的:(Matlab下小波分析wavelet常用命令)