10.3. COMBINING DECIMATION AND
Although changing sampling rates, through
decimation or interpolation, by integer factors can be useful, what
can we do if we need a sample rate change that is not an integer?
The good news is we can implement sample rate conversion by any
rational fraction M/D with interpolation by an integer
factor of M followed by decimation
by an integer factor of D. Because
the ratio M/D can be obtained as accurately as we
want, with the correct choice of integers M and D, we can change sample rates by almost
any factor in practice. For example, a sample rate increase by a
factor of 7.125 can be performed by an interpolation of M = 57 followed by a decimation of D = 8, because 7.125 = 57/8.
This M/D sample rate change is illustrated as
the processes shown in Figure
10-7(a). The upsampling operation M means insert M 1 zero-valued samples between
each xold(n) sample. The neat part here is that
the computational burden of changing the sample rate by the ratio
of M/D is less than the sum of an individual
interpolation followed by an individual decimation. That's because
we can combine the interpolation filter LPFM and the decimation filter
LPFD into a single
filter, shown as LPFM/D in Figure 10-7(b). The process in Figure 10-7(b) is normally
called a sample rate converter because if M > D, we have interpolation, and when D > M, we have decimation. (The filter
LPFM/D is often called a multirate filter.) Filter LPFM/D must sufficiently attenuate
the interpolation spectral images so they don't contaminate our
desired signal beyond acceptable limits after decimation.
Figure 10-7. Sample rate conversion by a
rational factor: (a) combination of interpolation and decimation;
(b) sample rate conversion with a single lowpass filter.
Notice that the frequency response of LPFM/D must be designed so the
beginning of its stopband frequency is less than fnew/2 in order to avoid
aliasing after the decimation. The stopband attenuation of LPFM/D must be great enough so the
attenuated images do not induce intolerable levels of noise when
they're aliased by decimation into the final band of 0 to fnew/2 Hz.
Again, our interpolator/decimator problem is an
exercise in lowpass filter design. All the knowledge and tools we
have to design lowpass filters can be applied to this task. In
software interpolator/decimator design, we want our lowpass filter
algorithm to prevent aliasing images and be fast in execution time.
For hardware interpolator/decimators, we strive to implement
designs optimizing the conflicting goals of high performance
(minimum aliasing), simple architecture, high data throughput
speed, and low power.
The filtering in sample rate conversion, as
we've presented it, is sadly inefficient. Think about interpolating
a signal sequence by a factor of 4/3; we'd stuff three zero-valued
samples into the original time sequence and apply it to a lowpass
filter. Three fourths of the filter multiplication products would
be zero. Next we'd discard two thirds of our filter output values.
Very inefficient! Fortunately, there are special sample rate
conversion filters, called digital
polyphase filters, that avoid these inefficiencies. So,
let's introduce polyphase filters, and then discuss a special
filter, known as a cascaded
integrator-comb filter, that's beneficial in hardware
sample rate conversion applications.