Question about wavelet and reconstruction

3 次查看(过去 30 天)
Dear all, I am studying wavelet and focusing on the signal reconstruction. I noticed that the function 'upcoef' just work for the reconstruction: http://cn.mathworks.com/help/wavelet/ref/upcoef.html
At the end of this page, I also noticed that upcoef is equivalent to an N time repeated use of the inverse wavelet transform.
Then I tried to test it with the following code:
t=0:2*pi/999:2*pi;
b0=sin(t);
figure,plot(b0);
[cA,cD]=dwt(b0,'db4',3);
D = upcoef('d',cD,'db4',3,length(b0));
figure,plot(D);
[cA,cD]=dwt(b0,'db4');
[cA,cD]=dwt(cA,'db4');
[cA,cD]=dwt(cA,'db4');
D=idwt([],cD,'db4');
D=idwt([],D,'db4');
D=idwt([],D,'db4',length(b0));
figure,plot(D)
However, results by two methods are different. Could anyone tell me what's wrong in the code?
Thanks, Tang Laoya
  3 个评论
tanglaoya
tanglaoya 2016-9-20
I changed code to the following:
t=0:2*pi/999:2*pi;
b0=sin(t);
figure,plot(b0);
[C,L]=wavedec(b0,3,'db4');
CA3=C(1:L(1));
CD3=C(L(1)+1:L(1)+L(2));
CD2=C(L(1)+L(2)+1:L(1)+L(2)+L(3));
CD1=C(L(1)+L(2)+L(3)+1:L(1)+L(2)+L(3)+L(4));
CD0 = upcoef('d',CD3,'db4',3,length(b0));
figure,plot(CD0);
%
[cA1,cD1]=dwt(b0,'db4');
[cA2,cD2]=dwt(cA1,'db4');
[cA3,cD3]=dwt(cA2,'db4');
D=idwt([],cD3,'db4');
D=idwt([],D,'db4');
cD0=idwt([],D,'db4',length(b0));
figure,plot(cD0)
errcA3=max(abs(CA3-cA3));
errCD3=max(abs(CD3-cD3));
errCD2=max(abs(CD2-cD2));
errCD1=max(abs(CD1-cD1));
errD=max(abs(CD0-cD0));
but results are still different.
tanglaoya
tanglaoya 2016-9-20
Not only the roundoff error. I guess there is something wrong in the code. Thanks

请先登录,再进行评论。

回答(1 个)

Wayne King
Wayne King 2016-10-4
One problem you are having is that DWT does not take the 3 input you are using. DWT only does a single-level wavelet transform unlike wavedec. The 3 input to DWT above is NOT being used. It has no effect on the output.
  1 个评论
tanglaoya
tanglaoya 2016-10-6
Hi Wayne, Thanks for your kindly reply. I did use wavedec in my latter comment, but the results are the same.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Discrete Multiresolution Analysis 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by