Rate reduction by an integer factor
M can be explained as a two-step process, with an equivalent implementation that is more efficient: • Reduce high-frequency signal components with a digital
lowpass filter. •
Decimate the filtered signal by
M; that is, keep only every
Mth sample. Step 2 alone creates undesirable
aliasing (i.e. high-frequency signal components will copy into the lower frequency band and be mistaken for lower frequencies). Step 1, when necessary, suppresses aliasing to an acceptable level. In this application, the filter is called an
anti-aliasing filter, and its design is discussed below. Also see
undersampling for information about decimating
bandpass functions and signals. When the anti-aliasing filter is an
IIR design, it relies on feedback from output to input, prior to the second step. With
FIR filtering, it is an easy matter to compute only every
Mth output. The calculation performed by a decimating FIR filter for the
nth output sample is a
dot product: :y[n] = \sum_{k=0}^{K-1} x[nM-k]\cdot h[k], where the
h[•] sequence is the impulse response, and
K is its length.
x[•] represents the input sequence being downsampled. In a general purpose processor, after computing
y[
n], the easiest way to compute
y[
n+1] is to advance the starting index in the
x[•] array by
M, and recompute the dot product. In the case
M=2,
h[•] can be designed as a
half-band filter, where almost half of the coefficients are zero and need not be included in the dot products. Impulse response coefficients taken at intervals of
M form a subsequence, and there are
M such subsequences (phases) multiplexed together. The dot product is the sum of the dot products of each subsequence with the corresponding samples of the
x[•] sequence. Furthermore, because of downsampling by
M, the stream of
x[•] samples involved in any one of the
M dot products is never involved in the other dot products. Thus
M low-order FIR filters are each filtering one of
M multiplexed
phases of the input stream, and the
M outputs are being summed. This viewpoint offers a different implementation that might be advantageous in a multi-processor architecture. In other words, the input stream is demultiplexed and sent through a bank of M filters whose outputs are summed. When implemented that way, it is called a
polyphase filter. For completeness, we now mention that a possible, but unlikely, implementation of each phase is to replace the coefficients of the other phases with zeros in a copy of the
h[•] array, process the original
x[•] sequence at the input rate (which means multiplying by zeros), and decimate the output by a factor of
M. The equivalence of this inefficient method and the implementation described above is known as the
first Noble identity. It is sometimes used in derivations of the polyphase method.
Anti-aliasing filter Let
X(
f) be the
Fourier transform of any function,
x(
t), whose samples at some interval,
T, equal the
x[
n] sequence. Then the
discrete-time Fourier transform (DTFT) is a
Fourier series representation of a
periodic summation of
X(
f): :\underbrace{ \sum_{n=-\infty}^{\infty} \overbrace{x(nT)}^{x[n]}\ \mathrm e^{-\mathrm i 2\pi f nT} }_{\text{DTFT}} = \frac{1}{T}\sum_{k=-\infty}^{\infty} X\Bigl(f - \frac{k}{T}\Bigr). When
T has units of seconds, f has units of
hertz. Replacing
T with
MT in the formulas above gives the DTFT of the decimated sequence,
x[
nM]: :\sum_{n=-\infty}^{\infty} x(n\cdot MT)\ \mathrm e^{-\mathrm i 2\pi f n(MT)} = \frac{1}{MT}\sum_{k=-\infty}^{\infty} X\left(f-\tfrac{k}{MT}\right). The periodic summation has been reduced in amplitude and periodicity by a factor of
M. An example of both these distributions is depicted in the two traces of Fig 1. Aliasing occurs when adjacent copies of
X(
f) overlap. The purpose of the anti-aliasing filter is to ensure that the reduced periodicity does not create overlap. The condition that ensures the copies of
X(
f) do not overlap each other is: B so that is the maximum
cutoff frequency of an
ideal anti-aliasing filter. ==By a rational factor==