qyb6688 发表于 2008-3-6 17:24

下面一维离散小波分解程序有两个关于重构的问题

代码见下面;
问题也见下面;
不知道是不是我对重构的理解有问题。
望可以讨论一下。
再次感谢浏览此贴
clc;
clear;
close all;
load noisbloc;
s = noisbloc(1:1024);
ls = length(s);
= 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('重构信号');
= 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 编辑 ]

qyb6688 发表于 2008-3-6 21:58

对其中一个重构问题的回答:

的确不少教材在提到单支重构时将“系数”和“信号”混用。自学难,因为教材质量差!而且相互抄袭严重。相当部分的matlab教材都是翻译help和demo中的内容。

重构之后得到的是信号,单支重构的目的在于获得原信号中某频率段的分量信号。分量信号的长度(点数)、采样频率均与原信号相同。将单支重构得到的各个分量信号直接按对应点求和,可恢复原信号

感谢bluefox
http://forum.vibunion.com/forum/viewthread.php?tid=45764&extra=page%3D2%26amp%3Bfilter%3Dtype%26amp%3Btypeid%3D188
这是网址;

[ 本帖最后由 zhangnan3509 于 2008-3-6 22:03 编辑 ]
页: [1]
查看完整版本: 下面一维离散小波分解程序有两个关于重构的问题