maximum wavelet decomposition

Can anyone help me to understand that if I use the following command with level greater than maximum level of decomposition, I still have details (dec.cd) of 256 cells more than maximum level, which looks weird.
dec = mdwtdec('c',signal,level,wavelet);
What does it shows?
Ashutosh

Answers (1)

Hi Ashutosh, both mdwtdec and wavedec will work beyond the maximum level, but it is up to you as the user to know that these coefficients do not mean anything. What happens inside the code after you reach the maximum level is that the single remaining coefficient will be extended and iterated on. But the result will be essentially zero (if not zero). With the Haar wavelet, you will get exactly zeros. For example:
x = randn(8,1);
level = 5;
dwtmode('per')
[C,L] = wavedec(x,6,'db1');
details = detcoef(C,L,'cells');
You see with details that you will get zeros after level 3.
The same is true with
dec = mdwtdec('c',x,8,'db1');
dec.cd

1 Comment

Yes, I agree that these should be meaningless. In your examples, the extra details are coming zeros. But if the order of wavelet is increased, the extra details are of comparative amplitude.
For example:
x = randn(128,1);
dec = mdwtdec('c',x,20,'db5');
dec.cd
The level of decompositon should be 3 as per
L = wmaxlev(length(x),'db5');
This means that one should be careful in this.
Actually, I was running a denoising code and just increased the decomposition level (which is not correct)to see the effect. Surprisingly, the code gave better denoising.
I hope in future releases it may be rectified.
Thanks....

Sign in to comment.

Asked:

on 15 May 2012

Community Treasure Hunt

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

Start Hunting!