马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
代码见下面;
问题也见下面;
不知道是不是我对重构的理解有问题。
望可以讨论一下。
再次感谢浏览此贴
clc;
clear;
close all;
load noisbloc;
s = noisbloc(1:1024);
ls = length(s);
[cA1,cD1] = dwt(s,'db4');
A1 = upcoef('a',cA1,'db4',1,ls);
D1 = upcoef('d',cD1,'db4',1,ls);
1) 这个地方求的A1是不是将cA1 通过2倍上抽样再通过重构低通滤波器后得到的低频系数,
同理:D1是将cD1 通过2倍上抽样再通过重构高通滤波器后得到的高频系数,
那么上D1+A1是不是可以等同于下面第三行的A0,是对原信号的重构
subplot(2,1,1);plot(A1);title('低频 A1');
subplot(2,1,2);plot(D1);title('高频 D1');
A0 = idwt(cA1,cD1,'db4',ls);
figure(2);
subplot(2,1,1);plot(s);title('原始信号');
subplot(2,1,2);plot(A0);title('重构信号');
[c,l] = wavedec(s,5,'db4');
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);
2)在这里用到了wrcoef,看matlab自带的帮助得知它为重构的系数。
请问N层的重构是由N+1层的低频系数和高频系数通过上抽样2再分别通过低高通滤波器然后相加得到的吧。
那么,N层的重构系数应该为N+1层重构系数的两倍吧。
为什么上面的D1,D2,D3,D4,D5的个数都等于原始信号的长度1024呢。
3)此处还有一个问题,重构是N+1层重构N层。那么在本例中我们只把原始信号分解到了第五层,怎么可以重构它在第五层上的系数。
figure(3)
subplot(3,2,1);plot(A5);title('低频 A5');
subplot(3,2,2);plot(D1);title('高频 D1');
subplot(3,2,3);plot(D1);title('高频 D2');
subplot(3,2,4);plot(D1);title('高频 D3');
subplot(3,2,5);plot(D1);title('高频 D4');
subplot(3,2,6);plot(D1);title('高频 D5');
figure(4);
A0 = waverec(c,l,'db4');
subplot(3,1,1);plot(s);title('原始信号');
subplot(3,1,2);plot(A0);title('重构信号');
subplot(3,1,3);plot(s-A0);title('误差信号');
er = max(abs(s-A0))
[ 本帖最后由 zhangnan3509 于 2008-3-6 22:02 编辑 ] |