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


"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

| improve this answer | |
  • $\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 Oct 25 '13 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 Oct 25 '13 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 Oct 25 '13 at 7:49
  • $\begingroup$ More details were added to the answer. $\endgroup$ – Hasan Oct 25 '13 at 14:29
  • $\begingroup$ Look at my update please. $\endgroup$ – SAH Oct 29 '13 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.


| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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