Parseval's theorem can be interpreted as:

... the total energy of a signal can be calculated by summing power-per-sample across time or spectral power across frequency.

For the case of a signal $x(t)$ and its Fourier transform $X(\omega)$, the theorem says:

$$ \int{|x(t)|^2 \; dt} = \int{|X(\omega)|^2 \; d\omega} $$

For the case of discrete wavelet transform (DWT), or wavelet packet decomposition (WPD), we get a 2D array of coefficients along the time and frequency (or scale) axis:

        | c{1,f}
        | ...
freq    | c{1,2}
        | c{1,1} c{2, 1} ... c{t, 1}

Can a sum of this series somehow be understood as a signal's energy? Is there an equivalent rule to Parseval's theorem?


Yes indeed! In theory as long as the wavelet is orthogonal, the sum of the squares of all the coefficients should be equal to the energy of the signal. In practice, one should be careful that:

  • the decomposition is not "expansive", i.e. the number of samples and of coefficients is the same.
  • wavelet filter coefficients are not re-scaled, as happens in some applications (like lifting wavelets, to keep integer computations).
  • wavelets are orthogonal (this is not the case in JPEG2000 compression).

You can verify this indirectly, looking at approximation coefficients. At each level, their number of samples is halved, and their amplitudes have around a $1.4$ scale factor, which is just $\sqrt{2}$. This feature is used for instance to estimate the Gaussian noise power from wavelet coefficients:

$$ \hat{\sigma} = \textrm{median} (w_i)/0.6745$$

A little further, there is a notion that generalizes (orthonormal) bases: frames. A set of functions $(\phi_i)_{i\in \mathcal{I}}$ ($\mathcal{I}$ is a finite or infinite index set) is a frame if for all vectors $x$:

$$ C_\flat\|x\|^2 \le \sum_{i\in \mathcal{I}} |<x,\phi_i>|^2\le C_\sharp\|x\|^2$$

with $0<C_\flat,C_\sharp < \infty$. This is a more general Parseval-Plancherel-like result used for general wavelets.

In other words, it "approximately preserves energy" by projection (inner product). If the constants $ C_\flat$ and $C_\sharp $ are equal, the frame is said to be tight. Orthonormal bases are non-redundant sets of vectors with $ C_\flat=C_\sharp = 1 $.

For those using Matlab, you should care about the native border extension, which is obtained by dwtmode('status'). Some add tails to the data to help inversion with little border artifacts. With a periodic mode dwtmode('per') and a number of samples that can be divided by $2^L$ where $L$ is the wavelet level, you can get a good match in energy, with tiny differences:

Energy in the DWT domain

  • $\begingroup$ Can you elaborate on what orthogonality means in this case? $\endgroup$
    – hazrmard
    Jun 26 '19 at 15:22
  • $\begingroup$ When the scalar product vanishes for two distinct elements? $\endgroup$ Jun 26 '19 at 16:23
  • $\begingroup$ So in this case, does that mean that the sum of the inner product of a wavelet with each of its scaled and translated versions will be 0? $\endgroup$
    – hazrmard
    Jun 26 '19 at 16:44
  • 1
    $\begingroup$ This is my understanding: when a signal is projected on to orthogonal wavelets, there is no "overlap" in the representation of the signal between wavelets. Exactly like when you project a vector on an orthogonal basis, each basis vector carries exclusive information about the projection. So when you sum the squares of the projection (i.e. coefficients) there is no double-counting - hence "energy" is conserved. $\endgroup$
    – hazrmard
    Jun 26 '19 at 16:54
  • 1
    $\begingroup$ I tried to verify this in Matlab, in which I used the functions WAVEDEC - and so DWT - and DETCOEF and APPCOEF. I don't have a very good match, especially if the original signals have many samples (~70000). Is this because the wavelet decomposition is expansive using the MATLAB code DWT? $\endgroup$
    – EmThorns
    Jun 11 '20 at 13:19

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.