您的位置:首页 > 编程语言 > MATLAB

Matlab下小波分析wavelet常用命令

2013-07-01 16:25 267 查看
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()根据近似系数或细节系数重构信号
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: