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!

How DSPs are Different from Other Microprocessors

In the 1960s it was predicted that artificial intelligence would revolutionize the way humans interact with computers and other machines. It was believed that by the end of the century we would have robots cleaning our houses, computers driving our cars, and voice interfaces controlling the storage and retrieval of information. This hasn't happened; these abstract tasks are far more complicated than expected, and very difficult to carry out with the step-by-step logic provided by digital computers.

However, the last forty years have shown that computers are extremely
capable in two broad areas, (1) data manipulation, such as word
processing and database management, and (2) mathematical calculation,
used in science, engineering, and Digital Signal Processing. All
microprocessors can perform both tasks; however, it is difficult
(expensive) to make a device that is *optimized* for both. There are
technical tradeoffs in the hardware design, such as the size of the
instruction set and how interrupts are handled. Even

more important, there are *marketing* issues involved: development and
manufacturing cost, competitive position, product lifetime, and so on.
As a broad generalization, these factors have made traditional
microprocessors, such as the Pentium®, primarily directed at data
manipulation. Similarly, DSPs are designed to perform the
mathematical calculations needed in Digital Signal Processing.

Figure 28-1 lists the most important differences between these two
categories. Data manipulation involves storing and sorting information.
For instance, consider a word processing program. The basic task is to
store the information (typed in by the operator), organize the
information (cut and paste, spell checking, page layout, etc.), and then
retrieve the information (such as saving the document on a floppy disk
or printing it with a laser printer). These tasks are accomplished by
*moving* data from one location to another, and *testing* for inequalities
(*A=B*, *A<B*, etc.). As an example, imagine sorting a list of words into
alphabetical order. Each word is represented by an 8 bit number, the
ASCII value of the first letter in the word. Alphabetizing involved
rearranging the order of the words until the ASCII values continually
increase from the beginning to the end of the list. This can be
accomplished by repeating two steps over-and-over until the
alphabetization is complete. First, test two adjacent entries for being in
alphabetical order (IF A>B THEN ...). Second, if the two entries are not
in alphabetical order, switch them so that they are (Aâ‡„B). When this
two step process is repeated many times on all adjacent pairs, the list
will eventually become alphabetized.

As another example, consider how a document is printed from a word processor. The computer continually tests the input device (mouse or keyboard) for the binary code that indicates "print the document." When this code is detected, the program moves the data from the computer's memory to the printer. Here we have the same two basic operations: moving data and inequality testing. While mathematics is occasionally used in this type of application, it is infrequent and does not significantly affect the overall execution speed.

In comparison, the execution speed of most DSP algorithms is limited
almost completely by the number of multiplications and additions
required. For example, Fig. 28-2 shows the implementation of an FIR
digital filter, the most common DSP technique. Using the standard
notation, the input signal is referred to by *x*[ ], while the output signal
is denoted by *y*[ ]. Our task is to calculate the sample at location *n* in
the output signal, i.e., *y*[*n*]. An FIR filter performs this calculation by
multiplying appropriate samples from the input signal by a group of
coefficients, denoted by: *a*_{0}, *a*_{1}, *a*_{2}, *a*_{3}, …, and then adding the products.
In equation form, *y*[*n*] is found by:

This is simply saying that the input signal has been *convolved* with a
filter kernel (i.e., an impulse response) consisting of: *a*_{0}, *a*_{1}, *a*_{2}, *a*_{3}, ….
Depending on the application, there may only be a few coefficients in
the filter kernel, or many thousands. While there is some data transfer
and inequality evaluation in this algorithm, such as to keep track of the
intermediate results and control the loops, the math operations dominate
the execution time.

In addition to preforming mathematical calculations very rapidly, DSPs
must also have a *predictable* execution time. Suppose you launch your
desktop computer on some task, say, converting a word-processing
document from one form to another. It doesn't matter if the processing
takes ten *milliseconds* or ten *seconds*; you simply wait for the action to
be completed before you give the computer its next assignment.

In comparison, most DSPs are used in applications where the processing
is *continuous,* not having a defined start or end. For instance, consider
an engineer designing a DSP system for an audio signal, such as a
hearing aid. If the digital signal is being received at 20,000 samples per
second, the DSP must be able to maintain a sustained throughput of
20,000 samples per second. However, there are important reasons not
to make it any faster than necessary. As the speed increases, so does the
*cost*, the* power consumption*, the *design difficulty*, and so on. This makes
an accurate knowledge of the execution time critical for selecting the
proper device, as well as the algorithms that can be applied.