I'm trying to understand the difference between the output of a Fourier transform and a wavelet transform. A Fourier transform is done via the following function:

$$\hat{f}(\xi) = \int^\infty_{-\infty}\ f(t)\ e^{-2\pi i t \xi}\ dt$$

Whereas a wavelet transform is going to use this:

$$F(a,b) = \int^\infty_{-\infty}\ f(x)\psi^*_{a,b}(x)\ dx$$

Now, spectrograms use a windowed Fourier transform. When looking at a signal over time, you can get a graph showing you which frequencies were present at any given time. The frequencies are scaled linearly. However, scalograms use a wavelet transform to obtain the same information. I've frequently seen the output scaled logarithmically (in frequency).

Is there something about wavelets that make their output fundamentally logarithmic? I'm having a hard time seeing it in the above formulas. It seems like you set $\xi$ or $a$ & $b$ give you the frequency you want, and you could calculate results for any frequency you desire.


2 Answers 2


And FFT can be considered a filter bank. The bandwidth of each filter is inversely proportional to the length of the FFT. The width of each filter sets the spacing such that there isn't either too much overlap or gaps between filters. In an STFT spectrogram, the window width is fixed for the entire FFT, thus the filter spacing is fixed, which turns out to be a linear spacing.

With wavelets the length of each wavelet, being individually adjustable, can be shorter for the higher frequencies, thus have a wider bandwidth, which allows them to be spaced further apart in frequency without leaving gaps between them in the frequency response, thus allowing logarithmic spacing.

  • $\begingroup$ That's an interesting idea. So if you could vary the window size for a windowed FFT, you would be able to do the same thing? In fact, what's keeping you from varying the window size for different values of $\xi$? $\endgroup$
    – Adam Smith
    Commented May 27, 2017 at 2:39
  • $\begingroup$ Computational cost $\endgroup$
    – hotpaw2
    Commented May 27, 2017 at 3:28

The continuous forms $$\hat{f}(f) = \int^\infty_{-\infty}\ f(t)\ e^{-2\pi i ft}\ dt$$ $$ S_h(\tau,f) = \int f(t)h^*(t-\tau) e^{-\imath 2 \pi f t} dt$$ and $$W_{\psi}(a,b) = \int^\infty_{-\infty}\ f(t)\psi^*_{a,b}(x)\ dt$$

all take a similar "kernel" form: notice that if you take in $ S_h$ a uniform unit-amplitude window $h=\mathbb{1}$, the dependence on $\tau $ vanishes, and you recover the Fourier transform:

$$ S_\mathbb{1}(\cdot,f) = \hat{f}(f)$$

In the SFTF, variables $\tau$ and $f$ are decoupled, which is not the case for wavelet families:

$$\psi_{a,b}(t) = \frac{1}{\sqrt{a}} \psi \left( \frac{t-b}{a}\right) $$

When it comes to discretization, this becomes important. Remember that one needs in practice to sample both time and the dual variables: $f$, $(\tau,f)$, $(a,b)$. Many theoretical works have found conditions under which the sampled versions contain the same information as the continuous one. Exactly in the same way $f(t)$ can be discretized without loss, and the DTFT can be discretized in frequency, yielding the DFT.

So for the STFT, it can be discretized in a decoupled way


under conditions on $h$, $t_0$ and $f_0$, which you can recover $s(t)$. Due to the fractional $b/a$ coupling for wavelets, it was noticed (by Ingrid Daubechies notably) that the scalogram could be more easily sampled with:


again with conditions on $a_0$ and $b_0$ with respect to $\psi$ (on a Weyl-Heisenberg reminiscent form $a_0b_0 < C_\psi$).

And a simple way to linearize the scale of a power law is a logarithm. As said by @hotpaw2, under some conditions, all these discretized forms can be written in a filter bank form, that may save computations. Put into filter bank shape, you can easily get window length variable with the frequency bin (like in the Generalized unequal length lapped orthogonal transform for subband image coding or GULLOTs).


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.