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
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.
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.