早教吧作业答案频道 -->其他-->
急求小波包分解和重构程序,在线等!
题目详情
急求小波包分解和重构程序,在线等!
▼优质解答
答案和解析
1.装载信号
在MATLAB命令行中输入
load noisbloc
s=noisbloc(1:1024);
ls=length(s);
plot(s);
2.完成信号的单尺度一维离散小波分解
采用db4基本小波分解信号
在命令窗口中输入
[cA1,cD1]=dwt(s,'db4');
这就产生了低频系数cA1和高频系数cD1.
可以通过whos命令查看cA1和cD1的长度:
whos
Name Size Bytes Class
cA1 1x515 4120 double array
cD1 1x515 4120 double array
ls 1x1 8 double array
noisbloc 1x1024 8192 double array
s 1x1024 8192 double array
Grand total is 3079 elements using 24632 bytes
3.从系数中重构低频部分和高频部分
从第二步产生的系数cA1和cD1构造第一层的低频和高频(A1和D1)系数;
A1=upcoef('a',cA1,'db4',1,ls);
D1=upcoef('a',cD1,'db4',1,ls);
或用下面两个函数:
A1=idwt(cA1,[],'db4',ls);
D1=idwt(cD1,[],'db4',ls);
4.显示高频和低频部分
为了显示第一层分解结果,输入
subplot(211); plot(A1); title('低频A1');
subplot(212); plot(D1); title('低频D1');
5.由小波逆变换恢复信号
使用idwt函数很容易实现,在命令窗口输入
subplot(211); plot(s); title('原始信号');
subplot(212); plot(A0); title('重构信号');
6.多层一维分解
为了完成一个5层的分解,输入:
[C,L]=wavedec(s,5,'db4');
7.提取系数的低频和高频部分
为了从上面的C中提取第3层的低频系数,输入:
cA3=appcoef(C,L,'db4',3);
8.重构第3层的低频系数
为了从上面的C中重构第3层的低频系数,输入:
A3=wrcoef('a',C,L,'db4',3);
9.重构第1、2、3、4、5层的高频信号
其方法是:
cA5=appcoef(C,L,'db4',5);
A5=wrcoef('a',C,L,'db4',5);
D1=wrcoef('d',C,L,'db4',1);
D2=wrcoef('d',C,L,'db4',2);
D3=wrcoef('d',C,L,'db4',3);
D4=wrcoef('d',C,L,'db4',4);
D5=wrcoef('d',C,L,'db4',5);
下面显示多尺度一维分解的结果:
subplot(322); plot(D1); title('低频D1');
subplot(323); plot(D2); title('低频D2');
subplot(323); plot(D3); title('低频D3');
subplot(325); plot(A5); title('低频D4');
subplot(326); plot(A5); title('低频D5');
10.重构原始信号并显示
A0=waverec(C,L,'db4');
subplot(311); plot(s); title('原始信号');
subplot(312); plot(A0); title('重构信号');
subplot(313); plot(s-A0); title('误差信号');
在MATLAB命令行中输入
load noisbloc
s=noisbloc(1:1024);
ls=length(s);
plot(s);
2.完成信号的单尺度一维离散小波分解
采用db4基本小波分解信号
在命令窗口中输入
[cA1,cD1]=dwt(s,'db4');
这就产生了低频系数cA1和高频系数cD1.
可以通过whos命令查看cA1和cD1的长度:
whos
Name Size Bytes Class
cA1 1x515 4120 double array
cD1 1x515 4120 double array
ls 1x1 8 double array
noisbloc 1x1024 8192 double array
s 1x1024 8192 double array
Grand total is 3079 elements using 24632 bytes
3.从系数中重构低频部分和高频部分
从第二步产生的系数cA1和cD1构造第一层的低频和高频(A1和D1)系数;
A1=upcoef('a',cA1,'db4',1,ls);
D1=upcoef('a',cD1,'db4',1,ls);
或用下面两个函数:
A1=idwt(cA1,[],'db4',ls);
D1=idwt(cD1,[],'db4',ls);
4.显示高频和低频部分
为了显示第一层分解结果,输入
subplot(211); plot(A1); title('低频A1');
subplot(212); plot(D1); title('低频D1');
5.由小波逆变换恢复信号
使用idwt函数很容易实现,在命令窗口输入
subplot(211); plot(s); title('原始信号');
subplot(212); plot(A0); title('重构信号');
6.多层一维分解
为了完成一个5层的分解,输入:
[C,L]=wavedec(s,5,'db4');
7.提取系数的低频和高频部分
为了从上面的C中提取第3层的低频系数,输入:
cA3=appcoef(C,L,'db4',3);
8.重构第3层的低频系数
为了从上面的C中重构第3层的低频系数,输入:
A3=wrcoef('a',C,L,'db4',3);
9.重构第1、2、3、4、5层的高频信号
其方法是:
cA5=appcoef(C,L,'db4',5);
A5=wrcoef('a',C,L,'db4',5);
D1=wrcoef('d',C,L,'db4',1);
D2=wrcoef('d',C,L,'db4',2);
D3=wrcoef('d',C,L,'db4',3);
D4=wrcoef('d',C,L,'db4',4);
D5=wrcoef('d',C,L,'db4',5);
下面显示多尺度一维分解的结果:
subplot(322); plot(D1); title('低频D1');
subplot(323); plot(D2); title('低频D2');
subplot(323); plot(D3); title('低频D3');
subplot(325); plot(A5); title('低频D4');
subplot(326); plot(A5); title('低频D5');
10.重构原始信号并显示
A0=waverec(C,L,'db4');
subplot(311); plot(s); title('原始信号');
subplot(312); plot(A0); title('重构信号');
subplot(313); plot(s-A0); title('误差信号');
看了 急求小波包分解和重构程序,在...的网友还看了以下:
用高等数学(微积分)求两函数相交形成的图形的重心直线Y=X+2和放射线Y=X^2形成的平面图形的重 2020-04-26 …
读我国四大地理区域图完成11-13题.乙区域和丙区域分界线是我国重要的自然地理分界线之一,大致与我 2020-05-13 …
图中D线是我国重要地理分界线,下列内容与该线相符的是()A.与400毫米年等降水量线一致B.是种植 2020-05-13 …
秦岭一一淮河一线是我国一条重要的地理分界线.据此完成12~13题.秦岭---淮河一线是我国南方与北 2020-05-13 …
该山脉与淮河构成我国东部重要的地理界线,它们大致与我国的哪两条线吻合()①1月0℃等温线②400毫 2020-05-13 …
三角形中平分线与中线重合垂线也一定与它们重合吗?如果不重合请你们列举一例如果重合本人需要证明过程因 2020-07-10 …
分析回答:(1)界线A大致与毫米等降水量线相接近.(2)界线C大致与1月等温线相吻合,大致与毫米等降 2020-11-02 …
秦岭--淮河一线是我国一条重要的地理分界线,下列说法中错误的是()A.1月份0℃等温线经过的地方B. 2020-11-02 …
秦岭-淮河是我国一条重要的界线,下列界线与它大体一致的是:()①温带与中温带分界线②1月0℃等温线③ 2020-11-02 …
秦岭--淮河一线是我国重要的地理分界线,它大致与下列哪条等温线和等降水量线基本一致?()A.一月0℃ 2020-11-02 …