After being away from DSP for a long time, I am trying to familiarize myself with wavelet transform. Here is what I (think) have understood so far:

  • Wavelet transform provides you high time resolution at higher frequencies and high frequency resolution at lower frequencies.
  • DWT can be calculated by using QMF pair and subsampling. When used recursively, filter pair increases frequency resolution and subsampling decreases time resolution.
  • Result of level 1 DWT [cA, cD] = dwt(signal, Lo_D, Hi_D) essentially gives low frequency and high frequency splits of the signal called approximation and details.

If my understanding is correct, in this algorithm, the end result is essentially in time domain. If I want to know what frequencies are present, I have to take an fft of the coefficients. Is that correct? If so, is there a way I can get the frequency domain representation without extra step of taking fft?

Question 2: If scalogram is the answer to question 1, how is it generated using results of repeated use of dwt? I want to avoid using ready MATLAB functions for better understanding except maybe dwt



Question 1: I think you want to investigate centfreq & scal2freq (Scale to frequency):

FREQ = centfrq('wname') returns the center frequency in hertz of the wavelet function

F = scal2frq(A,'wname',DELTA) returns the pseudo-frequencies corresponding to the scales given by A and the wavelet function 'wname' (see wavefun for more information) and the sampling period DELTA.

The intuition that I use is to think about your question is: The wavelet transform is a hierarchical (tree-like) decomposition of an input signal. I would not say it is in the "time-domain" as is commonly understood. I think of the DWT output via the duality: Wavelets <---> Filterbanks.

Imagine a set of 8 bandpass filters tuned to filter different ranges from low to high on the frequency spectrum. You know which frequency ranges correspond to which filters, so you know how much signal lives in each of the 8 frequency ranges based on the bandpass filter output. That's a basic frequency analysis. You wouldn't need to compute an FFT at this point. And with the successive QMF filtering, then decimation of your signal at each level, your DWT coefficients may only be one-sample (or have a very coarse resolution), so an FFT wouldn't make any sense.

There's a good explanation @ https://math.stackexchange.com/questions/28581/which-time-frequency-coefficients-does-the-wavelet-transform-compute

Question 2: A scalogram (Scalogram (and related nomenclatures) for DWT? ) is good for visualizing your transformed signal, but I think it would be overkill just to compute which frequency range your wavelet coefficients correspond to.


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.