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!

The Delta Function and Impulse Response

The previous chapter describes how a signal can be decomposed into a group
of components called impulses. An impulse is a signal composed of all zeros,
except a single nonzero point. In effect, impulse decomposition provides a way
to analyze signals one sample at a time. The previous chapter also presented the
fundamental concept of DSP: the input signal is decomposed into simple
additive components, each of these components is passed through a linear
system, and the resulting output components are synthesized (added). The
signal resulting from this divide-and-conquer procedure is identical to that
obtained by directly passing the original signal through the system. While many
different decompositions are possible, two form the backbone of signal
processing: impulse decomposition and Fourier decomposition. When impulse
decomposition is used, the procedure can be described by a mathematical
operation called convolution. In this chapter (and most of the following ones)
we will only be dealing with *discrete* signals. Convolution also applies to
*continuous* signals, but the mathematics is more complicated. We will look at
how continious signals are processed in Chapter 13.

Figure 6-1 defines two important terms used in DSP. The first is the delta
function, symbolized by the Greek letter delta, δ[*n*]. The delta function is a
*normalized* impulse, that is, sample number zero has a value of one, while all
other samples have a value of zero. For this reason, the delta function is
frequently called the unit impulse.

The second term defined in Fig. 6-1 is the impulse response. As the name
suggests, the impulse response is the signal that exits a system when a delta
function (unit impulse) is the input. If two systems are different in any way,
they will have different impulse responses. Just as the input and output signals
are often called *x*[*n*] and *y*[*n*], the impulse response is usually given the symbol, *h*[*n*]
. Of course, this can be changed if a more descriptive name is available, for
instance, *f*[*n*] might be used to identify the impulse response of a *filter*.

Any impulse can be represented as a *shifted* and *scaled* delta function. Consider
a signal, *a*[*n*], composed of all zeros except sample number 8, which has a value
of -3. This is the same as a delta function shifted to the right by 8 samples, and
multiplied by -3. In equation form: *a*[*n*] = -3δ[*n*-8]. Make sure you understand this notation, it is used in nearly all DSP equations.

If the input to a system is an impulse, such as -3δ[*n*-8], what is the system's
output? This is where the properties of homogeneity and shift invariance are
used. Scaling and shifting the input results in an identical scaling and shifting
of the output. If δ[*n*] results in *h*[*n*], it follows that -3δ[*n*-8] results in -3*h*[*n*-8]. In words, the output is a version of the impulse response that has
been *shifted *and *scaled* by the same amount as the delta function on the input.
If you know a system's impulse response, you immediately know how it will
react to *any* impulse.