# Multirate DSP, part 1: Upsampling and downsampling

*Order this book today at
www.elsevierdirect.com or by calling 1-800-545-2522 and receive an additional 20% discount. Use promotion code 92562 when ordering. Offer expires 06/30/2008. Valid only in North America.
*

*Part 2 shows how to change the sampling rate by a
non-integer factor. It also looks at multistage decimation and polyphase filters. It will be published Monday, April 28.*

This chapter investigates basics of multirate digital signal processing, illustrates how to change a sampling rate for speech and audio signals, and describes the polyphase implementation for the decimation filter and interpolation filter. Next, the chapter introduces the advanced analog-to-digital conversion system with the oversampling technique and sigma-delta modulation. Finally, the chapter explores the principles of undersampling of bandpass signals.

**12.1 Multirate Digital Signal Processing Basics**

In many areas of digital signal processing (DSP) applications—such as communications, speech, and audio processing—rising or lowering of a sampling rate is required. The principle that deals with changing the sampling rate belongs essentially to *multirate signal processing* (Ifeachor and Jervis, 2002; Porat, 1997; Proakis and Manolakis, 1996; Sorensen and Chen, 1997). As an introduction, we will focus on sampling rate conversion; that is, sampling rate reduction or increase.

**12.1.1 Sampling Rate Reduction by an Integer Factor**

The process of reducing a sampling rate by an integer factor is referred to as *downsampling* of a data sequence.We also refer to downsampling as ''decimation'' (not taking one of ten). The term ''decimation'' used for the downsampling process has been accepted and used in many textbooks and fields. To downsample a data sequence *x*(*n*) by an integer factor of *M*, we use the following notation:

*y*(*m*) = *x*(*mM*), (12.1)

where *y*(*m*) is the downsampled sequence, obtained by taking a sample from the data sequence *x*(*n*) for every *M* samples (discarding *M* – 1 samples for every *M* samples). As an example, if the original sequence with a sampling period *T* = 0.1 second (sampling rate = 10 samples per sec) is given by

*x*(*n*):8 7 4 8 9 6 4 2 –2 –5 –7 –7 –6 –4 …

and we downsample the data sequence by a factor of 3, we obtain the downsampled sequence as

*y*(*m*):8 8 4 –5 –6 … ,

with the resultant sampling period *T* = 3 × 0.1 = 0.3 second (the sampling rate now is 3.33 samples per second). Although the example is straightforward, there is a requirement to avoid aliasing noise. We will illustrate this next.

From the Nyquist sampling theorem, it is known that aliasing can occur in the downsampled signal due to the reduced sampling rate. After downsampling by a factor of *M*, the new sampling period becomes *MT*, and therefore the new sampling frequency is

*f*_{sM} = 1/*(MT)* = *f*_{s} /*M*, (12.2)

where *f*_{s} is the original sampling rate.

Hence, the folding frequency after downsampling becomes

*f*_{sM}/2 = *f*_{s}/(2*M*). (12.3)

This tells us that after downsampling by a factor of *M*, the new folding frequency will be decreased *M* times. If the signal to be downsampled has frequency components larger than the new folding frequency, *f* > *f*_{s}/(2*M*), aliasing noise will be introduced into the downsampled data.

To overcome this problem, it is required that the original signal *x*(*n*) be processed by a lowpass filter *H*(*z*) before downsampling, which should have a stop frequency edge at *f*_{s}/(2*M*) (Hz). The corresponding normalized stop frequency edge is then converted to be

Ω_{stop} = 2π (*f _{s}*/(2

*M*))

*T*= π/

*M*radians. (12.4)

In this way, before downsampling, we can guarantee that the maximum frequency of the filtered signal satisfies

*f*_{max} < *f*_{s}/(2*M*), (12.5)

such that no aliasing noise is introduced after downsampling. A general block diagram of decimation is given in Figure 12-1, where the filtered output in terms of the z-transform can be written as

*W*(*z*) = *H*(*z*)*X*(*z*), (12.6)

where *X*(*z*) is the z-transform of the sequence to be decimated, *x*(*n*), and *H*(*z*) is the lowpass filter transfer function. After anti-aliasing filtering, the downsampled signal *y*(*m*) takes its value from the filter output as:

*y*(*m*) = *w*(*mM*). (12.7)

The process of reducing the sampling rate by a factor of 3 is shown in Figure 12-1. The corresponding spectral plots for *x*(*n*), *w*(*n*), and *y*(*m*) in general are shown in Figure 12-2.

*Figure 12-1. Block diagram of the downsampling process with M = 3:*

*Figure 12-2. Spectrum after downsampling.*