How to evaluate duration of scaled wavelet?

Dear colleagues,
I use wavedec function to decompose signal, given the wavelet name and decomposition level N. I'd like to know what is the number of samples in the scaled mother function which will be used for each level. How can I do this? I tried to use length(wavefun('wname',ITER)), where N=ITER, but I'm not sure if these two functions deals with the same parameters. Could anybody please help me?

 Accepted Answer

Hi Anton, Since you are using wavedec(), I assume you are working with discrete wavelet and scaling filters. What I'm going to say applies strictly when dwtmode('per').
You should differentiate between the width of the wavelet and scaling filters and their effective width.
The width of the wavelet or scaling filter with length L at level J is (2^J-1)(L-1)+1
So for 'db4', and J=3, this is (2^3-1)(8-1)+1
You can see this by using a Kronecker delta as input.
dwtmode('per');
x = zeros(256,1);
x(128)=1;
[C,L] = wavedec(x,3,'db4');
lev3 = wrcoef('d',C,L,'db4',3);
plot(lev3); grid on;
If you zoom in on the plot, you see that the nonzero samples are close to the predicted 50.

2 Comments

Dear Dr. King,
Thank you very much, that's exactly what I want. Can you advise how can I derive this formula, maybe some links to the textbooks? Or this is just general consideration from approximation theory?
This result is shown in Wavelet Methods for Time Series Analysis, Percival & Walden

Sign in to comment.

More Answers (0)

Categories

Find more on Wavelet Toolbox in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!