The continuous wavelet transform (CWT) computes the inner product of a signal, , with translated and dilated versions of an analyzing wavelet, The definition of the CWT is:
You can also interpret the CWT as a frequency-based filtering of the signal by rewriting the CWT as an inverse Fourier transform.
where and are the Fourier transforms of the signal and the wavelet.
From the preceding equations, you can see that stretching a wavelet in time causes its support in the frequency domain to shrink. In addition to shrinking the frequency support, the center frequency of the wavelet shifts toward lower frequencies. The following figure demonstrates this effect for a hypothetical wavelet and scale (dilation) factors of 1,2, and 4.
This depicts the CWT as a bandpass filtering of the input signal. CWT coefficients at lower scales represent energy in the input signal at higher frequencies, while CWT coefficients at higher scales represent energy in the input signal at lower frequencies. However, unlike Fourier bandpass filtering, the width of the bandpass filter in the CWT is inversely proportional to scale. The width of the CWT filters decreases with increasing scale. This follows from the uncertainty relationships between the time and frequency support of a signal: the broader the support of a signal in time, the narrower its support in frequency. The converse relationship also holds.
In the wavelet transform, the scale, or dilation operation is defined to preserve
energy. To preserve energy while shrinking the frequency support requires that the peak
energy level increases. The implementation of
cwt in Wavelet
Toolbox™ uses L1 normalization. The quality factor, or Q
factor of a filter is the ratio of its peak energy to bandwidth. Because
shrinking or stretching the frequency support of a wavelet results in commensurate increases
or decreases in its peak energy, wavelets are often referred to as constant-Q
The equation in the preceding section defined the CWT as the inverse Fourier transform of a product of Fourier transforms.
The time variable in the inverse Fourier transform is the translation parameter, b.
This suggests that you can compute the CWT with the inverse Fourier transform. Because
there are efficient algorithms for the computation of the discrete Fourier transform and its
inverse, you can often achieve considerable savings by using
ifft when possible.
To obtain a picture of the CWT in the Fourier domain, start with the definition of the wavelet transform:
If you define:
you can rewrite the wavelet transform as
which explicitly expresses the CWT as a convolution.
To implement the discretized version of the CWT, assume that the input sequence is a length N vector, x[n]. The discrete version of the preceding convolution is:
To obtain the CWT, it appears you have to compute the convolution for each value of the shift parameter, b, and repeat this process for each scale, a.
However, if the two sequences are circularly-extended (periodized to length N), you can express the circular convolution as a product of discrete Fourier transforms. The CWT is the inverse Fourier transform of the product
where Δt is the sampling interval (period).
cwt function implements the CWT.