Book Search

Table of contents

How to order your own hardcover copy

Wouldn't you rather have a bound book instead of 640 loose pages?
Your laser printer will thank you!
Order from

Examples of Digital Filters

Digital filters are incredibly powerful, but easy to use. In fact, this is one of the main reasons that DSP has become so popular. As an example, suppose we need a low-pass filter at 1 kHz. This could be carried out in analog electronics with the following circuit:

[analog filter]

For instance, this might be used for noise reduction or separating multiplexed signals. (Chapter 3 describes how to design these analog filters). As an alternative, we could digitize the signal and use a digital filter. Say we sample the signal at 10 kHz. A comparable digital filter is carried out by the following program:

110 'This program filters 5000 samples with a 101 point windowed-sinc  
120 'filter, resulting in 4900 samples of filtered data.
130 '
140 '                      'INITIALIZE AND DEFINE THE ARRAYS USED
150 DIM X[4999]            'X[ ] holds the input signal
160 DIM Y[4999]            'Y[ ] holds the output signal
170 DIM H[100]             'H[ ] holds the filter kernel
180 '
190 PI = 3.14159265
200 FC = 0.1               'The cutoff frequency (0.1 of the sampling rate)
210 M% = 100               'The filter kernel length 
220 '
230 GOSUB XXXX             'Subroutine to load X[ ] with the input signal
240 '
250 '                      'CALCULATE THE FILTER KERNEL
260 FOR I% = 0 TO 100
270    IF (I%-M%/2) = 0 THEN H[I%] = 2*PI*FC
280    IF (I%-M%/2) <> 0  THEN H[I%] = SIN(2*PI*FC * (I%-M%/2)) / (I%-M%/2)
290    H[I%] = H[I%] * (0.54 - 0.46*COS(2*PI*I%/M%) )
300 NEXT I%
310 '               
320                        'FILTER THE SIGNAL BY CONVOLUTION
330 FOR J% = 100 TO 4999      
340    Y[J%] = 0                   
350    FOR I% = 0 TO 100
360       Y[J%] = Y[J%] + X[J%-I%] * H[I%]
370    NEXT I%
380 NEXT J%
390 '
400 END

As in this example, most digital filters can be implemented with only a few dozen lines of code. How do the analog and digital filters compare? Here are the frequency responses of the two filters:

[frequency responses]

Even though we designed the digital filter to approximately match the analog filter, there are still several significant differences between the two. First, the analog filter has a 6% ripple in the passband, while the digital filter is perfectly flat (within 0.02%). The analog designer might argue that the ripple can be selected in the design; however, this misses the point. The flatness achievable with analog filters is limited by the accuracy of their resistors and capacitors. Even if it is designed for zero ripple (a Butterworth filter), analog filters of this complexity will have a residue ripple of, perhaps, 1%. On the other hand, the flatness of digital filters is primarily limited by round-off error, making them hundreds of times flatter than their analog counterparts.

Next, let's look at the frequency response on a log scale (decibels), as shown below. Again, the digital filter is clearly the victor in both roll-off and stopband attenuation .

[frequency responses]

Even if the analog performance is improved by adding additional stages, it still can't compete with the digital filter. Imagine you need to improve the performance of the filter by a factor of 100. This would be virtually impossible for the analog circuit, but only requires simple modifications to the digital filter. For instance, look at the two frequency responses below, a digital filter designed for very fast roll-off, and a digital filter designed for exceptional stopband attenuation.

[high performance filters]

The frequency response on the left has a gain of 1 +/- 0.0002 from DC to 999 hertz, and a gain of less than 0.0002 for frequencies above 1001 hertz. The entire transition occurs in only about 1 hertz. The frequency response on the right is equally impressive: the stopband attenuation is -150 dB, one part in 30 million! Don't try this with an op amp!

As in these examples, digital filters can achieve thousands of times better performance than analog filters. This makes a dramatic difference in how filtering problems are approached. With analog filters, the emphasis is on handling limitations of the electronics, such as the accuracy and stability of the resistors and capacitors. In comparison, digital filters are so good that the performance of the filter is frequently ignored. The emphasis shifts to the limitations of the signals, and the theoretical issues regarding their processing.

[custom filter]

Here is another example of the tremendous power of digital filters. Filters usually have one of four basic responses: low-pass, high-pass, band-pass or band-reject. But what if you need something really custom? As an extreme example, suppose you need a filter with the frequency response shown at the right. This isn't as far fetched as you might think; several area of DSP routinely use frequency responses this irregular (deconvolution and optimal filtering). Don't ask an analog filter designer to give you this frequency response- he can't! In comparison, digital filters excel at providing these irregular curves. And the best part: The Scientist and Engineer's guide to DSP tells you how to create these filters quickly and easily.