What Is a Wavelet?
A wavelet is a waveform of effectively limited duration that has an average value of zero and nonzero norm.
Many signals and images of interest exhibit piecewise smooth behavior punctuated by transients. Speech signals are characterized by short bursts encoding consonants followed by steady-state oscillations indicative of vowels. Natural images have edges. Financial time series exhibit transient behavior, which characterize rapid upturns and downturns in economic conditions. Unlike the Fourier basis, wavelet bases are adept at sparsely representing piecewise regular signals and images, which include transient behavior.
Compare wavelets with sine waves, which are the basis of Fourier analysis. Sinusoids do not have limited duration — they extend from minus to plus infinity. While sinusoids are smooth and predictable, wavelets tend to be irregular and asymmetric.
Fourier analysis consists of breaking up a signal into sine waves of various frequencies. Similarly, wavelet analysis is the breaking up of a signal into shifted and scaled versions of the original (or mother) wavelet.
Just looking at pictures of wavelets and sine waves, you can see intuitively that signals with sharp changes might be better analyzed with an irregular wavelet than with a smooth sinusoid.
It also makes sense that local features can be described better with wavelets that have local extent. The following example illustrates this for a simple signal consisting of a sine wave with a discontinuity.
Localize Discontinuity in Sine Wave
This example shows how wavelet analysis can localize a discontinuity in a sine wave.
Create a 1-Hz sine wave sampled at 100 Hz. The duration of the sine wave is one second. The sine wave has a discontinuity at seconds.
Fs = 100; t = 0:1/Fs:1-1/Fs; x = sin(2*pi*t); x1 = x-0.15; y = zeros(size(x)); y(1:length(y)/2) = x(1:length(y)/2); y(length(y)/2+1:end) = x1(length(y)/2+1:end); stem(t,y,MarkerFaceColor=[0 0 1]) xlabel("Seconds") ylabel("Amplitude")
Obtain the nondecimated discrete wavelet transform of the sine wave using the sym2
wavelet and plot the wavelet (detail) coefficients along with the original signal.
[swa,swd] = swt(y,1,"sym2"); tiledlayout(2,1) nexttile stem(t,y,MarkerFaceColor=[0 0 1]) title("Original Signal") nexttile stem(t,swd,MarkerFaceColor=[0 0 1]) title("Level 1 Wavelet Coefficients")
Compare the Fourier coefficient magnitudes for the 1-Hz sine wave with and without the discontinuity.
figure dftsig = fft([x' y']); dftsig = dftsig(1:length(y)/2+1,:); df = 100/length(y); freq = 0:df:50; stem(freq,abs(dftsig)) title("Fourier Coefficient Magnitudes") xlabel("Hz") ylabel("Magnitude") legend("Sine Wave","Sine Wave With Discontinuity")
There is minimal difference in the magnitudes of the Fourier coefficients. Because the discrete Fourier basis vectors have support over the entire time interval, the discrete Fourier transform does not detect the discontinuity as efficiently as the wavelet transform.
Compare the level 1 wavelet coefficients for the sine wave with and without the discontinuity.
[swax,swdx] = swt(x,1,"sym2"); stem(t,[swdx' swd']) title("Wavelet Coefficients") legend("Sine Wave","Sine Wave With Discontinuity")
The wavelet coefficients of the two signals demonstrate a significant difference. Wavelet analysis is often capable of revealing characteristics of a signal or image that other analysis techniques miss, like trends, breakdown points, discontinuities in higher derivatives, and self-similarity. Furthermore, because wavelets provide a different view of data than those presented by Fourier techniques, wavelet analysis can often significantly compress or denoise a signal without appreciable degradation.
See Also
Apps
- Wavelet Signal Analyzer | Wavelet Image Analyzer | Wavelet Signal Denoiser | Wavelet Time-Frequency Analyzer | Signal Multiresolution Analyzer
Related Examples
- Denoise a Signal with the Wavelet Signal Denoiser
- Practical Introduction to Multiresolution Analysis
- Practical Introduction to Time-Frequency Analysis Using the Continuous Wavelet Transform
- Using Wavelet Time-Frequency Analyzer App