Digital Signal Processing Using MATLAB and Wavelets

Chapter 9 - The Wavelet Transform

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 $\{ \frac{1}{2}, -\frac{1}{2} \}$, producing outputs $(x[n] + x[n-1])/2$, which is clearly the average of two samples. A corresponding simple highpass filter would have coefficients $\{ \frac{1}{2}, -\frac{1}{2} \}$, producing outputs $(x[n] - x[n-1])/2$, 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.


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.

UNLIMITED FREE
ACCESS
TO THE WORLD'S BEST IDEAS

SUBMIT
Already a GlobalSpec user? Log in.

This is embarrasing...

An error occurred while processing the form. Please try again in a few minutes.

Customize Your GlobalSpec Experience

Category: DSP Boards
Finish!
Privacy Policy

This is embarrasing...

An error occurred while processing the form. Please try again in a few minutes.