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