I am running Wavelet packet analysis for a 1-D signal. I want to estimate dominate frequencies in the original signal. Imagine I have following signal:

fn=[0.4 0.6 1.0];E=[0.03 0.05 0.1];A=[1.0 2.0 3.0];  

so it contains these frequencies $\big\{0.4Hz,0.6Hz, 1Hz\big\}$
My question is what is the best level of decomposition to see these frequencies?
I select $10Hz$ for sampling rate.
So my question, what sampling rate should I select for this case to identify these 3 freq? (I've select 10Hz for sampling rate) and what level of decomposition should I select to see all of these 3 frequencies?
Here is my little scrip for this signal with wavelet packet

df=30;N=300;                            //df:final time,N:segments
t=linspace(0,df,N); dt=t(3)-t(2);      // dt: time intervals
fs=ceil(inv(t(2)-t(1)));              // fs: sampling freq
fn=[0.4 0.6 1.0];E=[0.03 0.05 0.1];   //fn:freq, E:damping
 A=[1.0 2.0 3.0];wn=2*pi.*fn;a=E.*wn;wd=wn.*sqrt(1-E.^2);  // A:Amplitude.
level = 3;
wpt = wpdec(y,level,'coif5');
[Spec,Time,Freq] = wpspectrum(wpt,fs,'plot'); 

here are result for Level 3,4,5,6 decompositions.
enter image description here
as you see even in level 6 it does not show accurate frequencies. ans If I increase the level to 10 I will observe higher freq that are not exist in the actual signal. for level 10: enter image description here


2 Answers 2


"My question is what is the best level of decomposition to see these frequencies?"

You can achieve this through separation of the three components you have into different bands. Since the inner most level is a low passed version of the signal, you should try using at least 3+1 decomposition levels.

With dyadic scaling (the decomposition method typically used with wavelets) outer decomposition level covers the range of frequencies from F/2 to F .. The next level covers F/4 to F/2.. and the next level covers F/8 to F/4....etc.

1D Wavelet Dyadic Scaling

Assume a signal of two sinusoids (0.4Hz and 1 Hz) with 10Hz sampling rate you get the following plot for its frequency content decomposition into 5 scales dyadic wavelet scales. by changing the sampling ratio, the location of the peaks in wavelets subbands change enter image description here

  • $\begingroup$ @Hassan, my sampling rate is $20Hz$, so with 4 decomposition level I will get 1.25Hz visualization,$\frac{20Hz}{2^{4}}=1.25Hz$ so I guess your answer is not true. $\endgroup$
    – SAH
    Commented Oct 25, 2013 at 6:37
  • $\begingroup$ This is the way dyadic scaling works. What do you mean by "see these frequencies", What are you looking for? $\endgroup$
    – Hasan
    Commented Oct 25, 2013 at 7:24
  • $\begingroup$ I have following signal: x(t)=2sin(2πt×0.4)+3sin(2πt×0.6)+1sin(2πt×1) so it contains these frequencies {0.4Hz,0.6Hz,1Hz} $\endgroup$
    – SAH
    Commented Oct 25, 2013 at 7:49
  • $\begingroup$ More details were added to the answer. $\endgroup$
    – Hasan
    Commented Oct 25, 2013 at 14:29
  • $\begingroup$ Look at my update please. $\endgroup$
    – SAH
    Commented Oct 29, 2013 at 21:41

Wavelet packet transform is not well suited for creating such a spectrogram. The spectrum of higher-order wavelet packets has several strong peaks (not just one), which explains why you are getting spurious results.



Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.