The Discrete Wavelet Transform
(DWT) is used in a variety of signal
processing applications, such as video compression,
Internet communications compression,
object recognition, and numerical analysis.
It can efficiently represent some signals, especially ones that
have localized changes.
Consider the example of representing a unit
impulse function with the Fourier transform, which needs an infinite
amount of terms
because we are trying to represent a single quick change with a
sum of sinusoids. However, the wavelet transform can represent
this short-term signal with only a few terms.
This transform came about from different fields, including mathematics,
physics, and image processing. Essentially, people in different areas
were doing the same thing, but using different terminology.
In the late 1980s, Stéphane Mallat unified the work into one topic.
This transform is discrete in time and scale. In other
words, the DWT coefficients may have real (floating-point) values, but
the time and scale values used to index these coefficients are integers.
The wavelet transform is gaining popularity with the recent
JPEG-2000 standard, which incorporates multiresolution analysis.
This chapter explains how the wavelet transform works, and shows
how the wavelet breaks a signal down into detail signals and an
approximation.
We call an octave a level of resolution, where
each octave can be envisioned as a pair of FIR filters, at
least for the one-dimensional case.
One filter of the analysis (wavelet transform) pair is a lowpass
filter (LPF), while the other is a highpass filter (HPF),
Figure 9.1. Each filter has a down-sampler after it,
to make the transform efficient.
Figure 9.2 shows the synthesis (inverse wavelet transform)
pair, consisting of an inverse lowpass filter (ILPF) and an inverse
highpass filter (IHPF), each preceded by an up-sampler.
A lowpass filter produces the average signal, while a highpass filter
produces the detail signal. For example, a simple lowpass filter may have
coefficients
, producing outputs
, which is clearly the average of two samples.
A corresponding simple highpass filter would have coefficients
, producing outputs
, half the difference of the samples. While the average
signal would look much like the original, we need the details to
make the reconstructed signal match the original.
Multiresolution analysis feeds the average
signal into another set of filters, which produces the average and detail
signals at the next octave. The detail signals are kept,
but the higher
octave averages can be discarded, since they can be recomputed during
the synthesis. Each octave's outputs have only half the input's amount
of data (plus a few coefficients due to the filter). Thus, the wavelet
representation is approximately the same size as the original.
Figure 9.1: Analysis filters. |
Figure 9.2: Synthesis filters. |
Using the discrete wavelet transform on images (or other 2D data)
can be accomplished with the dwt2 and idwt2 functions.
Making your own 2D transform can be accomplished in one of two ways; either
by applying the low- and highpass filters along the rows of the data,
then applying each of these filters along the columns of the previous results,
or by applying four matrix convolutions, one for each lowpass/highpass,
horizontal/vertical combination (i.e., low-horizontal low-vertical,
low-horizontal high-vertical, etc.). Separability means that the 2D transform is
simply an application of the 1D DWT in the horizontal and vertical
directions.
The nonseparable 2D transform works a bit differently, since it computes the transform based on a 2D sample of the
input convolved with a matrix, but the results are the same. Think of this
as two ways of reaching the same answer; just as we can combine two
filters into one (section 8.2), we can combine
horizontal and vertical operations into a matrix multiplication.
The main difference between the 1D, 2D, and 3D DWT is that a pair
of filters operates on each channel for each dimension. Figures of these
should not be taken too literally, since there are more efficient
ways to implement all three architectures.
This chapter examines how FIR filters can be used to perform the wavelet
transform. First, we will look at the Haar transform, which was developed
by Alfred Haar before the term "wavelet' was coined.
Later, we will examine the wavelet transform with the four-coefficient
Daubechies wavelet]. The Daubechies
wavelets are actually a generalization of the Haar transform, and sometimes
the Haar transform is referred to as a 2-coefficient Daubechies wavelet.
Daubechies actually has a family of wavelets, using the pattern
we see below, except with more coefficients.
© 2026 Infinity Science Press