Chapter 14Introduction to Digital Filters |
267 |
|
|
|
POOR |
|
|
|
|
|
GOOD |
|
|
|
1.5 |
|
|
|
|
|
1.5 |
|
|
|
|
|
|
a. Slow step response |
|
|
|
|
b. Fast step response |
|
|
|
1.0 |
|
|
|
|
|
1.0 |
|
|
|
|
Amplitude |
0.5 |
|
|
|
|
Amplitude |
0.5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0.0 |
|
|
|
|
|
0.0 |
|
|
|
|
|
-0.5 |
|
|
|
|
|
-0.5 |
|
|
|
|
|
0 |
16 |
32 |
48 |
64 |
|
0 |
16 |
32 |
48 |
64 |
|
|
|
Sample number |
|
|
|
|
|
Sample number |
|
|
|
1.5 |
|
|
|
|
|
1.5 |
|
|
|
|
|
|
c. Overshoot |
|
|
|
|
d. No overshoot |
|
|
|
1.0 |
|
|
|
|
|
1.0 |
|
|
|
|
Amplitude |
0.5 |
|
|
|
|
Amplitude |
0.5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0.0 |
|
|
|
|
|
0.0 |
|
|
|
|
|
-0.5 |
|
|
|
|
|
-0.5 |
|
|
|
|
|
0 |
16 |
32 |
48 |
64 |
|
0 |
16 |
32 |
48 |
64 |
|
|
|
Sample number |
|
|
|
|
|
Sample number |
|
|
|
1.5 |
|
|
|
|
|
1.5 |
|
|
|
|
|
|
e. Nonlinear phase |
|
|
|
|
f. Linear phase |
|
|
|
1.0 |
|
|
|
|
|
1.0 |
|
|
|
|
Amplitude |
0.5 |
|
|
|
|
Amplitude |
0.5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0.0 |
|
|
|
|
|
0.0 |
|
|
|
|
|
-0.5 |
|
|
|
|
|
-0.5 |
|
|
|
|
|
0 |
16 |
32 |
48 |
64 |
|
0 |
16 |
32 |
48 |
64 |
|
|
|
Sample number |
|
|
|
|
|
Sample number |
|
|
FIGURE 14-2
Parameters for evaluating time domain performance. The step response is used to measure how well a filter performs in the time domain. Three parameters are important: (1) transition speed (risetime), shown in (a) and (b), (2) overshoot, shown in (c) and (d), and (3) phase linearity (symmetry between the top and bottom halves of the step), shown in (e) and (f).
Figures (c) and (d) shows the next parameter that is important: overshoot in the step response. Overshoot must generally be eliminated because it changes the amplitude of samples in the signal; this is a basic distortion of the information contained in the time domain. This can be summed up in
268 |
The Scientist and Engineer's Guide to Digital Signal Processing |
one question: Is the overshoot you observe in a signal coming from the thing you are trying to measure, or from the filter you have used?
Finally, it is often desired that the upper half of the step response be symmetrical with the lower half, as illustrated in (e) and (f). This symmetry is needed to make the rising edges look the same as the falling edges. This symmetry is called linear phase, because the frequency response has a phase that is a straight line (discussed in Chapter 19). Make sure you understand these three parameters; they are the key to evaluating time domain filters.
Frequency Domain Parameters
Figure 14-3 shows the four basic frequency responses. The purpose of these filters is to allow some frequencies to pass unaltered, while completely blocking other frequencies. The passband refers to those frequencies that are passed, while the stopband contains those frequencies that are blocked. The transition band is between. A fast roll-off means that the transition band is very narrow. The division between the passband and transition band is called the cutoff frequency. In analog filter design, the cutoff frequency is usually defined to be where the amplitude is reduced to 0.707 (i.e., -3dB). Digital filters are less standardized, and it is common to see 99%, 90%, 70.7%, and 50% amplitude levels defined to be the cutoff frequency.
Figure 14-4 shows three parameters that measure how well a filter performs in the frequency domain. To separate closely spaced frequencies, the filter must have a fast roll-off, as illustrated in (a) and (b). For the passband frequencies to move through the filter unaltered, there must be no passband ripple, as shown in (c) and (d). Lastly, to adequately block the stopband frequencies, it is necessary to have good stopband attenuation, displayed in (e) and (f).
FIGURE 14-3
The four common frequency responses. Frequency domain filters are generally used to pass certain frequencies (the passband), while blocking others (the stopband). Four responses are the most common: low-pass, high-pass, band-pass, and band-reject.
|
a. Low-pass |
Amplitude |
passband |
transition |
|
band |
|
|
|
|
stopband |
|
|
Frequency |
|
b. High-pass |
Amplitude |
|
|
Frequency
c. Band-pass
Frequency
d. Band-reject
Frequency
Chapter 14Introduction to Digital Filters |
269 |
|
|
|
POOR |
|
|
|
|
|
GOOD |
|
|
|
1.5 |
|
|
|
|
|
|
1.5 |
|
|
|
|
|
|
a. |
Slow roll-off |
|
|
|
|
|
b. Fast roll-off |
|
|
|
Amplitude |
1.0 |
|
|
|
|
|
Amplitude |
1.0 |
|
|
|
|
|
0.5 |
|
|
|
|
|
0.5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0.0 |
|
|
|
|
|
|
0.0 |
|
|
|
|
|
|
-0.5 |
|
|
|
|
|
|
-0.5 |
|
|
|
|
|
|
0 |
0.1 |
0.2 |
0.3 |
0.4 |
0.5 |
|
0 |
0.1 |
0.2 |
0.3 |
0.4 |
0.5 |
|
|
|
Frequency |
|
|
|
|
|
Frequency |
|
|
|
1.5 |
|
|
|
|
|
|
1.5 |
|
|
|
|
|
|
c. Ripple in passband |
|
|
|
|
|
d. Flat passband |
|
|
|
Amplitude |
0.5 |
|
|
|
|
|
Amplitude |
0.5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0.0 |
|
|
|
|
|
|
0.0 |
|
|
|
|
|
|
-0.5 |
|
|
|
|
|
|
-0.5 |
|
|
|
|
|
|
0 |
0.1 |
0.2 |
0.3 |
0.4 |
0.5 |
|
0 |
0.1 |
0.2 |
0.3 |
0.4 |
0.5 |
|
|
|
Frequency |
|
|
|
|
|
Frequency |
|
|
|
40 |
|
|
|
|
|
|
40 |
|
|
|
|
|
|
20 |
e. Poor stopband attenuation |
|
|
|
20 |
f. Good stopband attenuation |
|
|
(dB) |
0 |
|
|
|
|
|
(dB) |
0 |
|
|
|
|
|
-20 |
|
|
|
|
|
-20 |
|
|
|
|
|
Amplitude |
|
|
|
|
|
Amplitude |
|
|
|
|
|
-40 |
|
|
|
|
|
-40 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-60 |
|
|
|
|
|
|
-60 |
|
|
|
|
|
|
-80 |
|
|
|
|
|
|
-80 |
|
|
|
|
|
|
-100 |
|
|
|
|
|
|
-100 |
|
|
|
|
|
|
-120 |
|
|
|
|
|
|
-120 |
|
|
|
|
|
|
0 |
0.1 |
0.2 |
0.3 |
0.4 |
0.5 |
|
0 |
0.1 |
0.2 |
0.3 |
0.4 |
0.5 |
|
|
|
Frequency |
|
|
|
|
|
Frequency |
|
|
FIGURE 14-4
Parameters for evaluating frequency domain performance. The frequency responses shown are for low-pass filters. Three parameters are important: (1) roll-off sharpness, shown in (a) and (b), (2) passband ripple, shown in (c) and (d), and (3) stopband attenuation, shown in (e) and (f).
Why is there nothing about the phase in these parameters? First, the phase isn't important in most frequency domain applications. For example, the phase of an audio signal is almost completely random, and contains little useful information. Second, if the phase is important, it is very easy to make digital
270 |
The Scientist and Engineer's Guide to Digital Signal Processing |
filters with a perfect phase response, i.e., all frequencies pass through the filter with a zero phase shift (also discussed in Chapter 19). In comparison, analog filters are ghastly in this respect.
Previous chapters have described how the DFT converts a system's impulse response into its frequency response. Here is a brief review. The quickest way to calculate the DFT is by means of the FFT algorithm presented in Chapter 12. Starting with a filter kernel N samples long, the FFT calculates the frequency spectrum consisting of an N point real part and an N point imaginary part. Only samples 0 to N/2 of the FFT's real and imaginary parts contain useful information; the remaining points are duplicates (negative frequencies) and can be ignored. Since the real and imaginary parts are difficult for humans to understand, they are usually converted into polar notation as described in Chapter 8. This provides the magnitude and phase signals, each running from sample 0 to sample N/2 (i.e., N/2 %1 samples in each signal). For example, an impulse response of 256 points will result in a frequency response running from point 0 to 128. Sample 0 represents DC, i.e., zero frequency. Sample 128 represents one-half of the sampling rate. Remember, no frequencies higher than one-half of the sampling rate can appear in sampled data.
The number of samples used to represent the impulse response can be arbitrarily large. For instance, suppose you want to find the frequency response of a filter kernel that consists of 80 points. Since the FFT only works with signals that are a power of two, you need to add 48 zeros to the signal to bring it to a length of 128 samples. This padding with zeros does not change the impulse response. To understand why this is so, think about what happens to these added zeros when the input signal is convolved with the system's impulse response. The added zeros simply vanish in the convolution, and do not affect the outcome.
Taking this a step further, you could add many zeros to the impulse response to make it, say, 256, 512, or 1024 points long. The important idea is that longer impulse responses result in a closer spacing of the data points in the frequency response. That is, there are more samples spread between DC and one-half of the sampling rate. Taking this to the extreme, if the impulse response is padded with an infinite number of zeros, the data points in the frequency response are infinitesimally close together, i.e., a continuous line. In other words, the frequency response of a filter is really a continuous signal between DC and one-half of the sampling rate. The output of the DFT is a sampling of this continuous line. What length of impulse response should you use when calculating a filter's frequency response? As a first thought, try N '1024 , but don't be afraid to change it if needed (such as insufficient resolution or excessive computation time).
Keep in mind that the "good" and "bad" parameters discussed in this chapter are only generalizations. Many signals don't fall neatly into categories. For example, consider an EKG signal contaminated with 60 hertz interference. The information is encoded in the time domain, but the interference is best dealt with in the frequency domain. The best design for this application is
Chapter 14Introduction to Digital Filters |
271 |
|
|
|
Time Domain |
|
|
|
1.0 |
|
|
|
|
|
|
|
0.8 |
a. |
Original filter kernel |
|
|
|
|
|
|
|
|
|
|
Amplitude |
0.6 |
|
|
|
|
|
|
0.4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0.2 |
|
|
|
|
|
|
|
0.0 |
|
|
|
|
|
|
|
-0.2 |
|
|
|
|
|
|
|
-0.4 |
|
|
|
|
|
|
|
|
0 |
10 |
20 |
30 |
40 |
50 |
|
|
|
|
Sample number |
|
|
|
1.0 |
|
|
|
|
|
|
|
0.8 |
c. Filter kernel with spectral inversion |
|
|
|
|
|
|
|
|
Amplitude |
0.6 |
|
|
|
|
|
|
0.4 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0.2 |
|
|
|
|
|
|
|
0.0 |
|
|
|
|
|
|
|
-0.2 |
|
|
|
|
|
|
|
-0.4 |
|
|
|
|
|
|
|
|
0 |
10 |
20 |
30 |
40 |
50 |
Sample number
|
|
Frequency Domain |
|
|
1.5 |
|
|
|
|
|
|
|
b. Original frequency response |
|
|
Amplitude |
1.0 |
|
|
|
|
|
0.5 |
|
|
|
|
|
|
|
|
|
|
|
|
0.0 |
|
|
|
|
|
|
0 |
0.1 |
0.2 |
0.3 |
0.4 |
0.5 |
|
|
|
Frequency |
|
|
|
1.5 |
|
|
|
|
|
d. Inverted frequency response
1.0 |
|
|
|
|
|
Amplitude |
|
|
|
Flipped |
|
|
|
|
|
|
0.5 |
|
|
top-for-bottom |
|
0.0 |
|
|
|
|
|
0 |
0.1 |
0.2 |
0.3 |
0.4 |
0.5 |
Frequency
FIGURE 14-5
Example of spectral inversion. The low-pass filter kernel in (a) has the frequency response shown in (b). A high-pass filter kernel, (c), is formed by changing the sign of each sample in (a), and adding one to the sample at the center of symmetry. This action in the time domain inverts the frequency spectrum (i.e., flips it top-for- bottom), as shown by the high-pass frequency response in (d).
bound to have trade-offs, and might go against the conventional wisdom of this chapter. Remember the number one rule of education: A paragraph in a book doesn't give you a license to stop thinking.
High-Pass, Band-Pass and Band-Reject Filters
High-pass, band-pass and band-reject filters are designed by starting with a low-pass filter, and then converting it into the desired response. For this reason, most discussions on filter design only give examples of low-pass filters. There are two methods for the low-pass to high-pass conversion: spectral inversion and spectral reversal. Both are equally useful.
An example of spectral inversion is shown in 14-5. Figure (a) shows a lowpass filter kernel called a windowed-sinc (the topic of Chapter 16). This filter kernel is 51 points in length, although many of samples have a value so small that they appear to be zero in this graph. The corresponding
272 |
The Scientist and Engineer's Guide to Digital Signal Processing |
|
|
|
|
Low-pass |
|
|
a. High-pass by |
|
|
|
adding parallel stages |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
FIGURE 14-6
Block diagram of spectral inversion. In (a), the input signal, x[n] , is applied to two systems in parallel, having impulse responses of h[n] and *[n] . As shown in (b), the combined system has an impulse response of *[n] & h[n] . This means that the frequency response of the combined system is the inversion of the frequency response of h[n] .
h[n]
*[n]
All-pass
b. High-pass |
|
High-pass |
in a single stage |
|
|
|
|
|
|
|
|
frequency response is shown in (b), found by adding 13 zeros to the filter kernel and taking a 64 point FFT. Two things must be done to change the low-pass filter kernel into a high-pass filter kernel. First, change the sign of each sample in the filter kernel. Second, add one to the sample at the center of symmetry. This results in the high-pass filter kernel shown in (c), with the frequency response shown in (d). Spectral inversion flips the frequency response top-for-bottom, changing the passbands into stopbands, and the stopbands into passbands. In other words, it changes a filter from low-pass to high-pass, high-pass to low-pass, band-pass to band-reject, or band-reject to band-pass.
Figure 14-6 shows why this two step modification to the time domain results in an inverted frequency spectrum. In (a), the input signal, x[n] , is applied to two systems in parallel. One of these systems is a low-pass filter, with an impulse response given by h[n] . The other system does nothing to the signal, and therefore has an impulse response that is a delta function, *[n] . The overall output, y[n] , is equal to the output of the all-pass system minus the output of the low-pass system. Since the low frequency components are subtracted from the original signal, only the high frequency components appear in the output. Thus, a high-pass filter is formed.
This could be performed as a two step operation in a computer program: run the signal through a low-pass filter, and then subtract the filtered signal from the original. However, the entire operation can be performed in a signal stage by combining the two filter kernels. As described in Chapter
Chapter 14Introduction to Digital Filters |
273 |
|
Time Domain |
|
|
1.0 |
|
|
|
|
|
0.8 |
a. Original filter kernel |
|
|
|
|
|
|
|
|
0.6 |
|
|
|
|
|
Amplitude |
|
|
|
|
|
0.4 |
|
|
|
|
|
0.2 |
|
|
|
|
|
0.0 |
|
|
|
|
|
-0.2 |
|
|
|
|
|
-0.4 |
|
|
|
|
|
0 |
10 |
20 |
30 |
40 |
50 |
Sample number
1.0
0.8c. Filter kernel with spectral reversal
0.6 












Amplitude |
0.4 |
|
|
|
|
|
|
|
|
|
|
|
|
0.2 |
|
|
|
|
|
|
0.0 |
|
|
|
|
|
|
-0.2 |
|
|
|
|
|
|
-0.4 |
|
|
|
|
|
|
0 |
10 |
20 |
30 |
40 |
50 |
Sample number
|
|
Frequency Domain |
|
|
1.5 |
|
|
|
|
|
|
|
b. Original frequency response |
|
|
Amplitude |
1.0 |
|
|
|
|
|
0.5 |
|
|
|
|
|
|
|
|
|
|
|
|
0.0 |
|
|
|
|
|
|
0 |
0.1 |
0.2 |
0.3 |
0.4 |
0.5 |
|
|
|
Frequency |
|
|
|
1.5 |
|
|
|
|
|
|
|
d. Reversed frequency response |
|
|
Amplitude |
1.0 |
|
|
|
|
|
|
|
Flipped |
|
|
|
|
|
|
|
|
|
|
0.5 |
|
left-for-right |
|
|
|
|
0.0 |
|
|
|
|
|
|
0 |
0.1 |
0.2 |
0.3 |
0.4 |
0.5 |
|
|
|
Frequency |
|
|
FIGURE 14-7
Example of spectral reversal. The low-pass filter kernel in (a) has the frequency response shown in (b). A high-pass filter kernel, (c), is formed by changing the sign of every other sample in (a). This action in the time domain results in the frequency domain being flipped left-for-right, resulting in the high-pass frequency response shown in (d).
7, parallel systems with added outputs can be combined into a single stage by adding their impulse responses. As shown in (b), the filter kernel for the highpass filter is given by: *[n] & h[n]. That is, change the sign of all the samples, and then add one to the sample at the center of symmetry.
For this technique to work, the low-frequency components exiting the low-pass filter must have the same phase as the low-frequency components exiting the all-pass system. Otherwise a complete subtraction cannot take place. This places two restrictions on the method: (1) the original filter kernel must have left-right symmetry (i.e., a zero or linear phase), and (2) the impulse must be added at the center of symmetry.
The second method for low-pass to high-pass conversion, spectral reversal, is illustrated in Fig. 14-7. Just as before, the low-pass filter kernel in (a) corresponds to the frequency response in (b). The high-pass filter kernel, (c), is formed by changing the sign of every other sample in (a). As shown in (d), this flips the frequency domain left-for-right: 0 becomes 0.5 and 0.5
274 |
The Scientist and Engineer's Guide to Digital Signal Processing |
FIGURE 14-8
Designing a band-pass filter. As shown in (a), a band-pass filter can be formed by cascading a low-pass filter and a high-pass filter. This can be reduced to a single stage, shown in (b). The filter kernel of the single stage is equal to the convolution of the low-pass and highpass filter kernels.
|
|
Low-pass |
|
High-pass |
a. Band-pass by |
cascading stages |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x[n] 
h1[n] 
h2[n]
y[n]
b. Band-pass |
|
Band-pass |
in a single stage |
|
|
|
|
|
|
|
|
x[n]
h1[n]
h2[n]
y[n]
becomes 0. The cutoff frequency of the example low-pass filter is 0.15, resulting in the cutoff frequency of the high-pass filter being 0.35.
Changing the sign of every other sample is equivalent to multiplying the filter kernel by a sinusoid with a frequency of 0.5. As discussed in Chapter 10, this has the effect of shifting the frequency domain by 0.5. Look at (b) and imagine the negative frequencies between -0.5 and 0 that are of mirror image of the frequencies between 0 and 0.5. The frequencies that appear in (d) are the negative frequencies from (b) shifted by 0.5.
Lastly, Figs. 14-8 and 14-9 show how low-pass and high-pass filter kernels can be combined to form band-pass and band-reject filters. In short, adding the filter kernels produces a band-reject filter, while convolving the filter kernels produces a band-pass filter. These are based on the way cascaded and parallel systems are be combined, as discussed in Chapter 7. Multiple combination of these techniques can also be used. For instance, a band-pass filter can be designed by adding the two filter kernels to form a stop-pass filter, and then use spectral inversion or spectral reversal as previously described. All these techniques work very well with few surprises.
Filter Classification
Table 14-1 summarizes how digital filters are classified by their use and by their implementation. The use of a digital filter can be broken into three categories: time domain, frequency domain and custom. As previously described, time domain filters are used when the information is encoded in the shape of the signal's waveform. Time domain filtering is used for such actions as: smoothing, DC removal, waveform shaping, etc. In contrast, frequency domain filters are used when the information is contained in the
Chapter 14Introduction to Digital Filters |
275 |
|
|
|
|
Low-pass |
|
|
|
|
|
a. Band-reject by |
|
|
|
|
|
|
|
adding parallel stages |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
h1[n] |
|
|
|
|
|
|
|
|
FIGURE 14-9 |
x[n] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
y[n] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Designing a band-reject filter. As shown |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
h2[n] |
|
|
|
|
|
|
|
|
in (a), a band-reject filter is formed by |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
the parallel combination of a low-pass |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
filter and a high-pass filter with their |
|
|
|
|
|
High-pass |
|
|
|
|
outputs added. Figure (b) shows this |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
reduced to a single stage, with the filter |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
kernel found by adding the low-pass |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
and high-pass filter kernels. |
|
|
|
|
|
|
|
Band-reject |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
b. Band-reject |
|
|
|
|
|
|
|
|
|
|
in a single stage |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x[n] 
h1[n] + h2[n]
y[n]
amplitude, frequency, and phase of the component sinusoids. The goal of these filters is to separate one band of frequencies from another. Custom filters are used when a special action is required by the filter, something more elaborate than the four basic responses (high-pass, low-pass, band-pass and band-reject). For instance, Chapter 17 describes how custom filters can be used for deconvolution, a way of counteracting an unwanted convolution.
|
|
FILTER IMPLEMENTED BY: |
|
|
Convolution |
Recursion |
|
|
Finite Impulse Response (FIR) |
Infinite Impulse Response (IIR) |
Time Domain |
|
|
|
|
Moving average (Ch. 15) |
Single pole (Ch. 19) |
(smoothing, DC removal) |
|
|
|
|
Frequency Domain |
|
|
|
|
Windowed-sinc (Ch. 16) |
Chebyshev (Ch. 20) |
(separating frequencies) |
|
|
|
|
Custom |
|
|
|
|
FIR custom (Ch. 17) |
Iterative design (Ch. 26) |
(Deconvolution) |
|
|
|
|
|
|
|
|
TABLE 14-1
Filter classification. Filters can be divided by their use, and how they are implemented.
276 |
The Scientist and Engineer's Guide to Digital Signal Processing |
Digital filters can be implemented in two ways, by convolution (also called finite impulse response or FIR) and by recursion (also called infinite impulse response or IIR). Filters carried out by convolution can have far better performance than filters using recursion, but execute much more slowly.
The next six chapters describe digital filters according to the classifications in Table 14-1. First, we will look at filters carried out by convolution. The moving average (Chapter 15) is used in the time domain, the windowed-sinc (Chapter 16) is used in the frequency domain, and FIR custom (Chapter 17) is used when something special is needed. To finish the discussion of FIR filters, Chapter 18 presents a technique called FFT convolution. This is an algorithm for increasing the speed of convolution, allowing FIR filters to execute faster.
Next, we look at recursive filters. The single pole recursive filter (Chapter 19) is used in the time domain, while the Chebyshev (Chapter 20) is used in the frequency domain. Recursive filters having a custom response are designed by iterative techniques. For this reason, we will delay their discussion until Chapter 26, where they will be presented with another type of iterative procedure: the neural network.
As shown in Table 14-1, convolution and recursion are rival techniques; you must use one or the other for a particular application. How do you choose? Chapter 21 presents a head-to-head comparison of the two, in both the time and frequency domains.