Digital Signal Processing

By Steven W. Smith, Ph.D.

- 1: The Breadth and Depth of DSP
- 2: Statistics, Probability and Noise
- 3: ADC and DAC
- 4: DSP Software
- 5: Linear Systems
- 6: Convolution
- 7: Properties of Convolution
- 8: The Discrete Fourier Transform
- 9: Applications of the DFT
- 10: Fourier Transform Properties
- 11: Fourier Transform Pairs
- 12: The Fast Fourier Transform
- 13: Continuous Signal Processing
- 14: Introduction to Digital Filters
- 15: Moving Average Filters
- 16: Windowed-Sinc Filters
- 17: Custom Filters
- 18: FFT Convolution
- 19: Recursive Filters
- 20: Chebyshev Filters
- 21: Filter Comparison
- 22: Audio Processing
- 23: Image Formation & Display
- 24: Linear Image Processing
- 25: Special Imaging Techniques
- 26: Neural Networks (and more!)
- 27: Data Compression
- 28: Digital Signal Processors
- 29: Getting Started with DSPs
- 30: Complex Numbers
- 31: The Complex Fourier Transform
- 32: The Laplace Transform
- 33: The z-Transform
- 34: Explaining Benford's Law

Your laser printer will thank you!

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:

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:

100 'LOW-PASS WINDOWED-SINC FILTER 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:

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

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

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.

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.