1 Introduction
1.1 Digital signal processing and its benefts
3.2 Application areas
1.3 Key DSP operations
1.3.1 Convolution
1.3.2 Correlation
1.3.3 Digital fitering
1.3.4 Discrete transformation
1.3.5 Modulation
1.4 Digital signal processors
1.5 Overview of real-world applications of DSP
1.6 Audio applications of DSP
1.6.1 Digital audio mixing
1.6.2 Speech synthesis and recognition
1 .6.3 The compact disc digital audio system
1.7 Telecommunication applications of DSP
1.7.1 Digital cellular mobile telephony
1. 7.2. Set-top box for digital television reception
1.7.3 Adaptive telephone echo cancellation
1.8 Biomedical applications of DSP
1.8.1 Fetal ECG monitoring
1.8.2 DSP-based closed loop controlled anaesthesia
1.9 Summary
Problems
References
Bibliography
2 Analog I/O interface for real-time DSP systems
2.1 Typical real-time DSP systems
2.2 Analog-to-digital conversion process
2.3 Sampling- Iowpass and bandpass signals
2.3.1 Sampling Iowpass signals
2.3.2 Sampling bandpass signals
2.4 Uniform and non-uniform quantization and encoding
2.4.1 Uniform quantization and encoding (linear pulse code
modulation (PCM))
2.4.2 Non-uniform quantization and encoding (nonlinear PCM)
2.5 Oversampling in AiD conversion
2.5.1 Introduction
2.5.20versampling and anti-aliasing fltering
2.5.30versampling and ADC resolution
2.5.4 An application of oversampling - single-bit (oversampling) ADC
2.6 Digital-to-analog conversion process: signal recovery
2.7 The DAC
2.8 Anti-imaging fltering
2.9 Oversampling in D/A conversion
2.9.10versampling D/A conversion in the CD player
2.10 Constraints of real-time signal processing with analog
input/output signals
2.11 Application examples
2.12 Summary
Problems
References
Bibliography
3 Discrete transforms
3.1 Introduction
3.1.1 Fourier series
3.1.2 The Fourier transform
3.2 DFT and its inverse
3.3 Properties of the DFT
3.4 Computational complexity of the DFT
3.5 The decimation-in-time fast Fourier transform algorithm
3.5.1 The butterfly
3.5.2 Algorithmic development
3.5.3 Computational advantages of the FFT
3.6 Inverse fast Fourier transform
3.7 Implementation of the FFT
3.7.1 The decimation-in-frequency FFT
3.7.2 Comparison of DIT and DIF algorithms
3.7.3 Modifications for increased speed
3.8 Other discrete transforms
3.8.1 Discrete cosine transform
3.8.2 Walsh transform
3.8.3 Hadamard transform
3.8.4 Wavelet transform
3.8.5 Multiresolution analysis by the wavelet method
3.8.6 Signal representation by singularities: the wavelet
transform method
3.9 An application of the DCT: image compression
3.9.1 The Discrete Cosine transform
3.9.2 2D DCT coeffi:ient quantization
3.9.3 Coding
3.10 Worked examples
Problems
References
Appendices
3A C language program for direct DFT computation
3B C program for radix-2 decimation-in-time FFT
3C DFT and FFT with MATLAB
References for Appendices
4 The z-transform and its applications in signal processing
4.1 Discrete-time signals and systems
4.2 The z-transform
4.3 The inverse z-transform
4.3.1 Power series method
4.3.2 Partial fraction expansion method
4.3.3 Residue method
4.3.4 Comparison of the inverse z-transform methods
4.4 Properties of the z-transform
4.5 Some applications of the z-transform in signal processing
4.5.1 Pole-zero description of discrete-time systems
4.5.2 Frequency response estimation
4.5.3 Geometric evaluation of frequency response
4.5.4 Direct computer evaluation of frequency response
4.5.5 Frequency response estimation via FFT
4.5.6 Frequency units used in discrete-time systems
4.5.7 Stability considerations
4.5.8 Difference equations
4.5.9 Impulse response estimation
4.5.10 Applications in digital fiter design
4.5.11 Realization structures for digital fiters
4.6 Summary
Problems
References
Bibliography
Appendices
4A Recursive algorithm for the inverse z-transform
4B C program for evaluating the inverse z-transform and for
cascade-to-parallel structure conversion
4C C program for estimating frequency response
4D z-transform operations with MATLAB
References for Appendices
5 Correlation and convolution
5.1 Introduction
5.2 Correlation description
5.2.1 Cross- and autocorrelation
5.2.2 Applications of correlation
5.2.3 Fast correlation
5.3 Convolution description
5.3.1 Properties of convolution
5.3.2 Circular convolution
5.3.3 System identification
5.3.4 Deconvolution
5.3.5 Blind deconvolution
5.3.6 Fast linear convolution
5.3.7 Computational advantages of fast linear convolution
5.3.8 Convolution and correlation by sectioning
5.3.9 Overlap-add method
5.3.10 Overlap-save method
5.3.11 Computational advantages of fast convolution by sectioning
5.3.12 The relationship between convolution and correlation
5.4 Implementation of correlation and convolution
5.5 Application examples
5.5.1 Correlation
5.5.2 Convolution
5.6 Summary
Problems
References
Appendix
5A C language program for computing cross- and autocorrelation
6 A framework for digital fiter design
6.1 Introduction to digital fiters
6.2 Types of digital fiters: FIR and IIR fiters
6.3 Choosing between FIR and IIR fiters
6.4 Filter design steps
6.4.1 Specifcation of the fiter requirements
6.4.2 Coefficient calculation
6.4.3 Representation of a fiter by a suitable structure (realization)
6.4.4 Analysis of fhite wordlength effects
6.4.5 Implementation of a fiter
6.5 Illustrative examples
6.6 Summary
Problems
Reference
Bibliography
7 Finite impulse response (FIR) fiter design
7.1 Introduction
7.1.1 Summary of key characteristic features of FIR filters
7.1.2 Linear phase response and its implications
7.1.3 Types of linear phase FIR flters
7.2 FIR fiter design
7.3 FIR fiter specif'cations
7.4 FIR coefficient calculation methods
7.5 Window method
7.5.1 Some common window functions
7.5.2 Summary of the window method of calculating FIR
flter coeffi:ients
7.5.3 Advantages and disadvantages of the window method
7.6 The optimal method
7.6.1 Basic concepts
7.6.2 Parameters required to use the optimal program
7.6.3 Relationships for estimating fiter length, N
7.6.4 Summary of procedure for calculating flter coeffi:ients by
the optimal method
7.6.5 Illustrative examples
7.7 Frequency sampling method
7.7.1 Nonrecursive frequency sampling flters
7.7.2 Recursive frequency sampling flters
7.7.3 Frequency sampling flters with simple coeffi:ients
7.7.4 Summary of the frequency sampling method
7.8 Comparison of the window, optimum and frequency
sampling methods
7.9 Special FIR fiter design topics
7.9.1 Half-band FIR fiters
7.9.2 Frequency transformation
7.9.3 Computationally efficient FIR flters
7.10 Realization structures for FIR fiters
7.10.1 Transversal structure
7.10.2 Linear phase structure
7.10.3 Other structures
7.10.4 Choosing between structures
7.11 Finite wordlength effects in FIR digital fiters
7.11.1 Coefficient quantization errors
7.11.2 Roundoff errors
7.11.3 Overfbw errors
7.12 FIR implementation techniques
7.13 Design example
7.14 Summary
7.15 Application examples of FIR flters
Problems
References
Bibliography
Appendices
7A C programs for FIR flter design
7B FIR fiter design with MATLAB
8 Design of infhite impulse response (IIR) digital flters
8.1 Introduction: summary of the basic features of IIR fiters
8.2 Design stages for digital IIR fiters
8.3 Performance specification
8.4 Coeff'cient calculation methods for IIR fiters
8.5 Pole-zero placement method of coeffcient calculation
8.5.1 Basic concepts and illustrative design examples
8.6 Impulse invariant method of coefficient calculation
8.6.1 Basic concepts and illustrative design examples
8.6.2 Summary of the impulse invariant method
8.6.3 Remarks on the impulse invariant method
8.7 Matched z-transform (MZT) method of coeffcient calculation
8.7.1 Basic concepts and illustrative design examples
8.7.2 Summary of the matched z-transform method
8.7.3 Remarks on the matched z-transform method
8.8 Bilinear z-transform (BZT) method of coeffcient calculation
8.8.1 Basic concepts and illustrative design examples
8.8.2 Summary of the BZT method of coeff'cient calculation
8.8.3 Comments on the bilinear transformation method
8.9 Use of BZT and classical analog fiters to design IIR fiters
8.9.1 Characteristic features of classical analog flters
8.9.2 The BZT methodology using classical analog fiters
8.9.3 Illustrative design examples (Iowpass, highpass, bandpass
and bandstop fiters)
8.10 Calculating IIR fiter coefircients by mapping s-plane poles and zeros
8.10.1 Basic concepts
8.10.2 Illustrative examples
8.11 Using IIR flter design programs
8.12 Choice of coefFcient calculation methods for IIR flters
8.12.1 Nyquist effect
8.13 Realization structures for IIR digital fiters
8.13.1 Practical building blocks for IIR fiters
8.13.2 Cascade and parallel realization structures for higher-order
IIR fiters
8.14 Finite wordlength effects in IIR fiters
8.14.1 Coefficient quantization errors
8.15 Implementation of IIR fiters
8.16 A detailed design example of an IIR digital flter
8.17 Summary
8.18 Application examples in digital audio and instrumentation
8.18.1 Digital audio
8.18.2 Digital control
8.18.3 Digital frequency oscillators
8.19 Application examples in telecommunication
8.19.1 Touch-tone generation and reception for digital telephones
8.19.2 Digital telephony: dual tone multifrequency (DTMF)
detection using the Goertzel algorithm
8.19.3 Clock recovery for data communication
Problems
References
Bibliography
Appendices
8A C programs for IIR digital fiter design
8B IIR flter design with MATLAB
8C Evaluation of complex square roots using real arithmetic
9 Multirate digital signal processing
9.1 Introduction
9.1.1 Some current uses of multirate processing in industry
9.2 Concepts of multirate signal processing
9.2.1 Sampling rate reduction: decimation by integer factors
9.2.2 Sampling rate increase: interpolation by integer factors
9.2.3 Sampling rate conversion by non-integer factors
9.2.4 Multistage approach to sampling rate conversion
9.3 Design of practical sampling rate converters
9.3.1 Filter specircation
9.3.2 Filter requirements for individual stages
9.3.3 Determining the number of stages and decimation factors
9.3.4 Illustrative design examples
9.4 Software implementation of sampling rate converters-decimators
9.4.1 Program for multistage decimation
9.4.2 Test example for the decimation program
9.5 Software implementation of interpolators
9.5.1 Program for multistage interpolation
9.5.2 Test example
9.6 Sample rate conversion using polyphase flter structure
9.6.1 Polyphase implementation of interpolators
9.7 Application examples
9.7.1 High quality analog-to-digital conversion for digital audio
9.7.2 Effcient digital-to-analog conversion in compact hi-fisystems
9.7.3 Application in the acquisition of high quality data
9.7.4 Multirate narrowband digital fitering
9.7.5 High resolution narrowband spectral analysis
9.8 Summary
Problems
References
Bibliography
Appendices
9A C programs for multirate processing and systems design
9B Multirate digital signal processing with MATLAB
10 Adaptive digital fiters
10.1 When to use adaptive fiters and where they have been used
10.2 Concepts of adaptive fitering
10.2.1 Adaptive fiters as a noise canceller
10.2.2 Other configurations of the adaptive flter
10.2.3 Main components of the adaptive fiter
10.2.4 Adaptive algorithms
10.3 Basic Wiener fiter theory
10.4 The basic LMS adaptive algorithm
10.4.1 Implementation of the basic LMS algorithm
10.4.2 Practical limitations of the basic LMS algorithm
10.4.3 Other LMS-based algorithms
10.5 Recursive least squares algorithm
10.5.1 Recursive least squares algorithm
10.5.2 Limitations of the recursive least squares algorithm
10.5.3 Factorization algorithms
10.6 Application example 1 - adaptive fltering of ocular artefacts from
the human EEG
10.6.1 The physiological problem
10.6.2 Artefact processing algorithm
10.6.3 Real-time implementation
10.7 Application example 2 - adaptive telephone echo cancellation
10.8 Other applications
10.8.1 Loudspeaking telephones
10.8.2 Multipath compensation
10.8.3 Adaptive jammer suppression
10.8.4 Radar signal processing
10.8.5 Separation of speech signals from background noise
10.8.6 Fetal monitoring - cancelling of matemal ECG during labour
Problems
References
Bibliography
Appendices
10A C language programs for adaptive fltering
10B MATLAB programs for adaptive fitering
11 Spectrum estimation and analysis
11.1 Introduction
11.2 Principles of spectrum estimation
11.3 Traditional methods
11.3.1 Pitfalls
11.3.2 Windowing
11.3.3 The periodogram method and periodogram properties
11.3.4 Modified periodogram methods
11.3.5 The Blackman-Tukey method
11.3.6 The fast correlation method
11.3.7 Comparison of the power spectral density estimation methods
11.4 Modern parametric estimation methods
11.5 Autoregressive spectrum estimation
11.5.1 Autoregressive model and flter
11.5.2 Power spectrum density of AR series
11.5.3 Computation of model parameters - Yule-Walker equations
11.5.4 Solution of the Yule-Walker equations
11.5.5 Model order
11.6 Comparison of estimation methods
11.7 Application examples
11.7.1 Use of spectral analysis by a DFT for differentiating between
brain diseases
11.7.2 Spectral analysis of EEGs using autoregressive modelling
11.8 Summary
11.9 Worked example
Problems
References
Appendix
11A MATLAB programs for spectrum estimation and analysis
12 General- and special-purpose digital signal processors
12.1 Introduction
12.2 Computer architectures for signal processing
12.2.1 Harvard architecture
12.2.2 Pipelining
12.2.3 Hardware multiplier-accumulator
12.2.4 Special instructions
12.2.5 Replication
12.2.6 On-chip memory/cache
12.2.7 Extended parallelism - SIMD, VLIW and static superscalar processing
12.3 General-purpose digital signal processors
12.3.1 Fixed-point digital signal processors
12.3.2 Floating-point digital signal processors
12.4 Selecting digital signal processors
12.5 Implementation of DSP algorithms on general-purpose digital
signal processors
12.5.1 FIR digital fltering
12.5.2 IIR digital fltering
12.5.3 FFT processing
12.5.4 Multirate processing
12.5.5 Adaptive fltering
12.6 Special-purpose DSP hardware
12.6.1 Hardware digital fiters
12.6.2 Hardware FFT processors
12.7 Summary
Problems
References
Bibliography
Appendix
12A TMS320 assembly language programs for real-time signal processing and a C language program for constant geometry radix-2 FFT
13 Analysis of fhite wordlength effects in fixed-point DSP systems
13.1 Introduction
13.2 DSP arithmetic
13.2.1 Fixed-point arithmetic
13.2.2 Floating-point arithmetic
13.3 ADC quantization noise and signal quality
13.4 Finite wordlength effects in IIR digital flters
13.4.1 InflJence of fiter structure on fnite wordlensth effects
13.4.2 Coeffcient quantization errors in IIR digital flters
13.4.3 Coeffcient wordlength requirements for stability and desired frequency response
13.4.4 Addition overfbw errors and their effects
13.4.5 Principles of scaling
13.4.6 Scaling in cascade realization
13.4.7 Scaling in parallel realization
13.4.8 Output overflow detection and prevention
15.4.9 Product roundoff errors in IIR digital flters
13.4.10 Effects of roundoff errors on flter performance
13,4.11 Roundoff noise in cascade and parallel realizations
13.4,12 Effects of product roundoff noise in modern DSP systems
13.4.13 Rouncloff noise reduction schemes
13.4,14 Determining practical values for error feedback coefficients
13.4.15 Limit cycles clue to product roundoff errors
13.4.16 Other nonlinear phenomena
13.5 Finite wordlength effects in FFT algorithms
13.5.1 Roundoff errors in FFT
13.5.2 Overfbw errors and scaling in FFT
13.5.3 Coeffi:ient quantization in FFT
13.6 Summary
Problems
References
Bibliography
Appendices
13A Finite wordlength analysis program for IIR flters
13B L2 scaling factor equations
14 Applications and design studies
14.1 Evaluation boards for real-time signal processing
14.1.] Backsround
14.1.2 TMS320C 10 target board
14.1.3 DSP56002 evaluation module for real-time DSP
14.1.4 TMS320C54 and DSP56300 evaluation boards
14.2 DSP applications
14.2.1 Detection of fetal heartbeats during labour
14.2.2 Adaptive removal of ocular artefacts from human ERGs
14.2.3 Equalization of digital audio signals
14.3 Design studies
14.4 Computer-based multiple choice DSP questions
14.5 Summary
Problems
References
Bibliography
Appendix
14A The modified UD factorization algorithm
Index