DIGITAL SIGNAL PROCESSING    

Monson H. Hayes      

 

 Return to Home Page 

Table of Contents

Chapter 1: Signals and Systems

This chapter begins the study of digital signal processing by developing the notion of a discrete-time signal and a discrete-time system. We will concentrate on solving problems related to signal representations, signal manipulations, properties of signals, system classification, and system properties. First, in Sect.1.2 we define precisely what is meant by a discrete-time signal, and then develop some basic, yet important, operations that may be performed on these signals. Then, in Sect.1.3 we consider discrete-time systems. Of special importance will be the notions of linearity, shift-invariance, causality, stability, and invertibility. It will be shown that for systems that are linear and shift-invariant, the input and output are related by a convolution sum. Properties of the convolution sum and methods for performing convolutions
are then discussed in Sect.1.4. Finally, in Sect.1.5 we look at discrete-time systems that are described in terms of a difference equation.

Chapter 2: Fourier Analysis

The Fourier representation of signals plays an extremely important role in both continuous-time and discrete-time signal processing. It provides a method for mapping signals into another ``domain'' in which to manipulate them. What makes the Fourier representation particularly useful is the property that the convolution operation is mapped to multiplication. In addition, the Fourier transform provides a different way to interpret signals and systems. In this chapter we will develop the discrete-time Fourier transform, i.e., a Fourier transform for discrete-time signals.
We will show how complex exponentials are eigenfunctions of linear shift-invariant (LSI) systems, and how this property leads to the notion of a frequency response representation of LSI systems. Finally, we will explore how the discrete-time Fourier transform may be used to solve linear constant-coefficient difference equations and perform convolutions.

Chapter 3: Sampling

Most discrete-time signals come from sampling a continuous-time signal, such as speech and audio signals, radar and sonar data, and seismic and biological signals. The process of converting these signals into digital form is called analog-to-digital (A-D) conversion. The reverse process of reconstructing an analog signal from its samples is known as digital-to-analog (D-A) conversion. This chapter examines the issues related to A-D and D-A conversion. Fundamental to this discussion is the sampling theorem, which gives precise conditions under which an analog signal may be uniquely represented in terms of its samples.

Chapter 4:The z-Transform

The z-transform is a useful tool in the analysis of discrete-time signals and systems, and is the discrete-time counterpart of the Laplace transform for continuous-time signals and systems. The z-transform may be used to solve constant coefficient difference equations, evaluate the response of a linear time-invariant system to a
given input, and design linear filters. In this chapter, we will look at the z-transform, and examine how it may be used to solve a variety of different problems.

Chapter 5: Transform Analysis of Systems

Given a linear shift-invariant system with a unit sample response h(n), the input x(n) and the output y(n) are related by a convolution sum,

y(n) = x(n) * h(n)

This relationship may also be expressed in the z-transform domain as

Y(z) = X(z) H(z)

where H(z), the z-transform of h(n), is the system function of the LSI system. The system function is very useful in the description and analysis of LSI systems. In this chapter, we look at the characterization of a linear shift-invariant system in terms of its system function, and discuss special types of LSI systems such as linear phase systems, allpass systems, minimum phase systems, and feedback networks.

Chapter 6: The DFT

In previous chapters, we have seen how to represent a sequence in terms of a linear combination of complex exponentials using the Discrete-Time Fourier Transform (DTFT), and how the sequence values may be used as the coefficients in a power series expansion of a complex-valued function of z. For finite-length sequences there is another representation, called the Discrete Fourier Transform (DFT). Unlike the DTFT, which is a continuous function of a continuous frequency variable, the DFT is a sequence that corresponds to samples of the DTFT. Such a representation is very useful for digital computations, and for digital hardware implementations. In this chapter, we look at the DFT, explore its properties, and see how it may be used to perform such tasks as digital filtering, and evaluating the frequency response of a linear shift-invariant system.

Chapter 7: The Fast Fourier Transform

In Chapter 6 we saw that the discrete Fourier transform (DFT) could be used to perform convolutions. In this chapter we look at the computational requirements of the DFT, and derive some fast algorithms for computing the DFT. These algorithms are known, generically, as Fast Fourier Transforms (FFT's). We begin with the radix-2 decimation-in-time FFT, an algorithm published in 1965 by Cooley and Tukey. We then look at mixed-radix FFT algorithms, and the prime factor FFT.

Chapter 8: Implementation of Discrete-Time Systems

Given a linear shift-invariant system with a rational system function H(z), the input and output are related by a linear constant coefficient difference equation. For example, with a system function

H(z) = [b(0) + b(1)z -1} / [1 + a(1)z-1]

the input x(n) and output y(n) are related by the linear constant coefficient difference equation

y(n) = -a(1)y(n-1) + b(0)x(n) + b(1)x(n-1)

This difference equation defines a sequence of operations that are to be performed in order to implement this system. However, note that this system may also be implemented with the following pair of coupled difference equations,

w(n) = -a(1)w(n-1) + x(n)
y(n) = b(0)w(n) + b(1)w(n-1)

With this implementation, it is only necessary to provide one memory location to store w(n-1), whereas the previous equaation requires two memory locations, one to store y(n-1) and one to store x(n-1). This simple example illustrates that there is more than one way to implement a system, and that the amount of computation and/or memory required will depend on the implementation. In addition, the implementation will also effect the sensitivity of the filter to coefficient quantization, and it will effect the roundoff noise that appears at the output of the filter.

In this chapter, we look at a number of different ways to implement a linear shift-invariant discrete-time system, and look at the effect of finite word-lengths on these implementations.

Chapter 9: Filter Design

This chapter considers the problem of designing a digital filter. The design process begins with the filter specifications, which may include constraints on the magnitude and/or phase of the frequency response, constraints on the unit sample response or step response of the filter, specification of the type of filter (e.g., FIR or IIR), and the
filter order. Once the specifications have been defined, the next step is to find a set of filter coefficients that produce an acceptable filter. After the filter has been designed, the last step is to implement the system in hardware or software, quantizing the filter coefficients if necessary, and choosing an appropriate filter structure (Chapter 8).