Preface |
|
xv | |
|
|
1 | (36) |
|
Digital signal processing and its benefits |
|
|
1 | (2) |
|
|
3 | (2) |
|
|
5 | (8) |
|
|
5 | (2) |
|
|
7 | (2) |
|
|
9 | (2) |
|
|
11 | (1) |
|
|
11 | (2) |
|
Digital signal processors |
|
|
13 | (1) |
|
Overview of real-world applications of DSP |
|
|
13 | (2) |
|
Audio applications of DSP |
|
|
15 | (8) |
|
|
15 | (1) |
|
Speech synthesis and recognition |
|
|
16 | (3) |
|
The compact disc digital audio system |
|
|
19 | (4) |
|
Telecommunication applications of DSP |
|
|
23 | (6) |
|
Digital cellular mobile telephony |
|
|
23 | (4) |
|
Set-top box for digital television reception |
|
|
27 | (1) |
|
Adaptive telephone echo cancellation |
|
|
28 | (1) |
|
Biomedical applications of DSP |
|
|
29 | (6) |
|
|
30 | (3) |
|
DSP-based closed loop controlled anaesthesia |
|
|
33 | (2) |
|
|
35 | (2) |
|
|
35 | (1) |
|
|
35 | (1) |
|
|
36 | (1) |
|
Analog I/O interface for real-time DSP systems |
|
|
37 | (67) |
|
Typical real-time DSP systems |
|
|
38 | (1) |
|
Analog-to-digital conversion process |
|
|
39 | (1) |
|
Sampling - lowpass and bandpass signals |
|
|
40 | (25) |
|
|
40 | (16) |
|
Sampling bandpass signals |
|
|
56 | (9) |
|
Uniform and non-uniform quantization and encoding |
|
|
65 | (6) |
|
Uniform quantization and encoding (linear pulse code modulation (PCM)) |
|
|
66 | (2) |
|
Non-uniform quantization and encoding (nonlinear PCM) |
|
|
68 | (3) |
|
Oversampling in A/D conversion |
|
|
71 | (13) |
|
|
71 | (1) |
|
Oversampling and anti-aliasing filtering |
|
|
71 | (3) |
|
Oversampling and ADC resolution |
|
|
74 | (4) |
|
An application of oversampling - single-bit (oversampling) ADC |
|
|
78 | (6) |
|
Digital-to-analog conversion process: signal recovery |
|
|
84 | (1) |
|
|
84 | (2) |
|
|
86 | (1) |
|
Oversampling in D/A conversion |
|
|
86 | (4) |
|
Oversampling D/A conversion in the CD player |
|
|
87 | (3) |
|
Constraints of real-time signal processing with analog input/output signals |
|
|
90 | (1) |
|
|
91 | (1) |
|
|
92 | (12) |
|
|
92 | (10) |
|
|
102 | (1) |
|
|
102 | (2) |
|
|
104 | (68) |
|
|
104 | (7) |
|
|
106 | (3) |
|
|
109 | (2) |
|
|
111 | (7) |
|
|
118 | (2) |
|
Computational complexity of the DFT |
|
|
120 | (1) |
|
The decimation-in-time fast Fourier transform algorithm |
|
|
121 | (11) |
|
|
127 | (1) |
|
|
128 | (4) |
|
Computational advantages of the FFT |
|
|
132 | (1) |
|
Inverse fast Fourier transform |
|
|
132 | (1) |
|
Implementation of the FFT |
|
|
133 | (2) |
|
The decimation-in-frequency FFT |
|
|
134 | (1) |
|
Comparison of DIT and DIF algorithms |
|
|
134 | (1) |
|
Modifications for increased speed |
|
|
134 | (1) |
|
Other discrete transforms |
|
|
135 | (16) |
|
Discrete cosine transform |
|
|
135 | (1) |
|
|
136 | (3) |
|
|
139 | (2) |
|
|
141 | (3) |
|
Multiresolution analysis by the wavelet method |
|
|
144 | (3) |
|
Signal representation by singularities: the wavelet transform method |
|
|
147 | (4) |
|
An application of the DCT: image compression |
|
|
151 | (3) |
|
The Discrete Cosine transform |
|
|
152 | (1) |
|
2D DCT coefficient quantization |
|
|
153 | (1) |
|
|
153 | (1) |
|
|
154 | (18) |
|
|
158 | (2) |
|
|
160 | (1) |
|
|
161 | (1) |
|
C language program for direct DFT computation |
|
|
161 | (6) |
|
C program for radix-2 decimation-in-time FFT |
|
|
167 | (3) |
|
|
170 | (1) |
|
References for Appendices |
|
|
171 | (1) |
|
The z-transform and its applications in signal processing |
|
|
172 | (70) |
|
Discrete-time signals and systems |
|
|
173 | (1) |
|
|
174 | (5) |
|
|
179 | (15) |
|
|
179 | (3) |
|
Partial fraction expansion method |
|
|
182 | (6) |
|
|
188 | (6) |
|
Comparison of the inverse z-transform methods |
|
|
194 | (1) |
|
Properties of the z-transform |
|
|
194 | (3) |
|
Some applications of the z-transform in signal processing |
|
|
197 | (21) |
|
Pole-zero description of discrete-time systems |
|
|
197 | (3) |
|
Frequency response estimation |
|
|
200 | (1) |
|
Geometric evaluation of frequency response |
|
|
201 | (3) |
|
Direct computer evaluation of frequency response |
|
|
204 | (1) |
|
Frequency response estimation via FFT |
|
|
205 | (1) |
|
Frequency units used in discrete-time systems |
|
|
205 | (3) |
|
|
208 | (1) |
|
|
209 | (2) |
|
Impulse response estimation |
|
|
211 | (2) |
|
Applications in digital filter design |
|
|
213 | (1) |
|
Realization structures for digital filters |
|
|
213 | (5) |
|
|
218 | (24) |
|
|
218 | (5) |
|
|
223 | (1) |
|
|
223 | (1) |
|
|
223 | (1) |
|
Recursive algorithm for the inverse z-transform |
|
|
223 | (2) |
|
C program for evaluating the inverse z-transform and for cascade-to-parallel structure conversion |
|
|
225 | (6) |
|
C program for estimating frequency response |
|
|
231 | (2) |
|
z-transform operations with MATLAB |
|
|
233 | (8) |
|
References for Appendices |
|
|
241 | (1) |
|
Correlation and convolution |
|
|
242 | (75) |
|
|
242 | (1) |
|
|
243 | (30) |
|
Cross - and autocorrelation |
|
|
249 | (8) |
|
Applications of correlation |
|
|
257 | (10) |
|
|
267 | (6) |
|
|
273 | (28) |
|
Properties of convolution |
|
|
282 | (1) |
|
|
283 | (1) |
|
|
283 | (2) |
|
|
285 | (1) |
|
|
286 | (2) |
|
|
288 | (1) |
|
Computational advantages of fast linear convolution |
|
|
289 | (1) |
|
Convolution and correlation by sectioning |
|
|
290 | (2) |
|
|
292 | (5) |
|
|
297 | (3) |
|
Computational advantages of fast convolution by sectioning |
|
|
300 | (1) |
|
The relationship between convolution and correlation |
|
|
301 | (1) |
|
Implementation of correlation and convolution |
|
|
301 | (1) |
|
|
302 | (8) |
|
|
302 | (5) |
|
|
307 | (3) |
|
|
310 | (7) |
|
|
311 | (4) |
|
|
315 | (1) |
|
|
316 | (1) |
|
C language program for computing cross- and autocorrelation |
|
|
316 | (1) |
|
A framework for digital filter design |
|
|
317 | (25) |
|
Introduction to digital filters |
|
|
318 | (1) |
|
Types of digital filters: FIR and IIR filters |
|
|
319 | (2) |
|
Choosing between FIR and IIR filters |
|
|
321 | (3) |
|
|
324 | (10) |
|
Specification of the filter requirements |
|
|
324 | (3) |
|
|
327 | (1) |
|
Representation of a filter by a suitable structure (realization) |
|
|
328 | (4) |
|
Analysis of finite wordlength effects |
|
|
332 | (1) |
|
Implementation of a filter |
|
|
333 | (1) |
|
|
334 | (5) |
|
|
339 | (3) |
|
|
339 | (2) |
|
|
341 | (1) |
|
|
341 | (1) |
|
Finite impulse response (FIR) filter design |
|
|
342 | (112) |
|
|
343 | (6) |
|
Summary of key characteristic features of FIR filters |
|
|
343 | (1) |
|
Linear phase response and its implications |
|
|
344 | (3) |
|
Types of linear phase FIR filters |
|
|
347 | (2) |
|
|
349 | (1) |
|
FIR filter specifications |
|
|
350 | (1) |
|
FIR coefficient calculation methods |
|
|
351 | (1) |
|
|
352 | (15) |
|
Some common window functions |
|
|
354 | (4) |
|
Summary of the window method of calculating FIR filter coefficients |
|
|
358 | (8) |
|
Advantages and disadvantages of the window method |
|
|
366 | (1) |
|
|
367 | (13) |
|
|
367 | (3) |
|
Parameters required to use the optimal program |
|
|
370 | (1) |
|
Relationships for estimating filter length, N |
|
|
371 | (1) |
|
Summary of procedure for calculating filter coefficients by the optimal method |
|
|
372 | (1) |
|
|
373 | (7) |
|
Frequency sampling method |
|
|
380 | (18) |
|
Nonrecursive frequency sampling filters |
|
|
380 | (9) |
|
Recursive frequency sampling filters |
|
|
389 | (1) |
|
Frequency sampling filters with simple coefficients |
|
|
390 | (8) |
|
Summary of the frequency sampling method |
|
|
398 | (1) |
|
Comparison of the window, optimum and frequency sampling methods |
|
|
398 | (4) |
|
Special FIR filter design topics |
|
|
402 | (5) |
|
|
402 | (2) |
|
|
404 | (2) |
|
Computationally efficient FIR filters |
|
|
406 | (1) |
|
Realization structures for FIR filters |
|
|
407 | (4) |
|
|
407 | (1) |
|
|
408 | (2) |
|
|
410 | (1) |
|
Choosing between structures |
|
|
410 | (1) |
|
Finite wordlength effects in FIR digital filters |
|
|
411 | (9) |
|
Coefficient quantization errors |
|
|
412 | (7) |
|
|
419 | (1) |
|
|
419 | (1) |
|
FIR implementation techniques |
|
|
420 | (2) |
|
|
422 | (3) |
|
|
425 | (1) |
|
Application examples of FIR filters |
|
|
425 | (29) |
|
|
426 | (9) |
|
|
435 | (1) |
|
|
436 | (1) |
|
|
437 | (1) |
|
C programs for FIR filter design |
|
|
437 | (3) |
|
FIR filter design with MATLAB |
|
|
440 | (14) |
|
Design of infinite impulse response (IIR) digital filters |
|
|
454 | (125) |
|
Introduction: summary of the basic features of IIR filters |
|
|
455 | (1) |
|
Design stages for digital IIR filters |
|
|
456 | (1) |
|
Performance specification |
|
|
457 | (2) |
|
Coefficient calculation methods for IIR filters |
|
|
459 | (1) |
|
Pole-zero placement method of coefficient calculation |
|
|
459 | (4) |
|
Basic concepts and illustrative design examples |
|
|
459 | (4) |
|
Impulse invariant method of coefficient calculation |
|
|
463 | (5) |
|
Basic concepts and illustrative design examples |
|
|
463 | (3) |
|
Summary of the impulse invariant method |
|
|
466 | (1) |
|
Remarks on the impulse invariant method |
|
|
466 | (2) |
|
Matched z-transform (MZT) method of coefficient calculation |
|
|
468 | (3) |
|
Basic concepts and illustrative design examples |
|
|
468 | (2) |
|
Summary of the matched z-transform method |
|
|
470 | (1) |
|
Remarks on the matched z-transform method |
|
|
471 | (1) |
|
Bilinear z-transform (BZT) method of coefficient calculation |
|
|
471 | (11) |
|
Basic concepts and illustrative design examples |
|
|
471 | (2) |
|
Summary of the BZT method of coefficient calculation |
|
|
473 | (5) |
|
Comments on the bilinear transformation method |
|
|
478 | (4) |
|
Use of BZT and classical analog filters to design IIR filters |
|
|
482 | (18) |
|
Characteristic features of classical analog filters |
|
|
483 | (2) |
|
The BZT methodology using classical analog filters |
|
|
485 | (6) |
|
Illustrative design examples (lowpass, highpass, bandpass and bandstop filters) |
|
|
491 | (9) |
|
Calculating IIR filter coefficients by mapping s-plane poles and zeros |
|
|
500 | (8) |
|
|
500 | (5) |
|
|
505 | (3) |
|
Using IIR filter design programs |
|
|
508 | (1) |
|
Choice of coefficient calculation methods for IIR filters |
|
|
509 | (8) |
|
|
510 | (7) |
|
Realization structures for IIR digital filters |
|
|
517 | (7) |
|
Practical building blocks for IIR filters |
|
|
518 | (2) |
|
Cascade and parallel realization structures for higher-order IIR filters |
|
|
520 | (4) |
|
Finite wordlength effects in IIR filters |
|
|
524 | (5) |
|
Coefficient quantization errors |
|
|
526 | (3) |
|
Implementation of IIR filters |
|
|
529 | (1) |
|
A detailed design example of an IIR digital filter |
|
|
530 | (5) |
|
|
535 | (1) |
|
Application examples in digital audio and instrumentation |
|
|
536 | (2) |
|
|
536 | (1) |
|
|
536 | (1) |
|
Digital frequency oscillators |
|
|
536 | (2) |
|
Application examples in telecommunication |
|
|
538 | (41) |
|
Touch-tone generation and reception for digital telephones |
|
|
538 | (2) |
|
Digital telephony: dual tone multifrequency (DTMF) detection using the Goertzel algorithm |
|
|
540 | (6) |
|
Clock recovery for data communication |
|
|
546 | (3) |
|
|
549 | (5) |
|
|
554 | (1) |
|
|
555 | (2) |
|
|
557 | (1) |
|
C programs for IIR digital filter design |
|
|
557 | (5) |
|
IIR filter design with MATLAB |
|
|
562 | (15) |
|
Evaluation of complex square roots using real arithmetic |
|
|
577 | (2) |
|
Multirate digital signal processing |
|
|
579 | (66) |
|
|
579 | (2) |
|
Some current uses of multirate processing in industry |
|
|
580 | (1) |
|
Concepts of multirate signal processing |
|
|
581 | (9) |
|
Sampling rate reduction: decimation by integer factors |
|
|
582 | (2) |
|
Sampling rate increase: interpolation by integer factors |
|
|
584 | (2) |
|
Sampling rate conversion by non-integer factors |
|
|
586 | (3) |
|
Multistage approach to sampling rate conversion |
|
|
589 | (1) |
|
Design of practical sampling rate converters |
|
|
590 | (11) |
|
|
590 | (1) |
|
Filter requirements for individual stages |
|
|
591 | (1) |
|
Determining the number of stages and decimation factors |
|
|
592 | (2) |
|
Illustrative design examples |
|
|
594 | (7) |
|
Software implementation of sampling rate converters-decimators |
|
|
601 | (5) |
|
Program for multistage decimation |
|
|
602 | (2) |
|
Test example for the decimation program |
|
|
604 | (2) |
|
Software implementation of interpolators |
|
|
606 | (6) |
|
Program for multistage interpolation |
|
|
610 | (1) |
|
|
610 | (2) |
|
Sample rate conversion using polyphase filter structure |
|
|
612 | (5) |
|
Polyphase implementation of interpolators |
|
|
612 | (5) |
|
|
617 | (15) |
|
High quality analog-to-digital conversion for digital audio |
|
|
618 | (1) |
|
Efficient digital-to-analog conversion in compact hi-fi systems |
|
|
618 | (2) |
|
Application in the acquisition of high quality data |
|
|
620 | (6) |
|
Multirate narrowband digital filtering |
|
|
626 | (5) |
|
High resolution narrowband spectral analysis |
|
|
631 | (1) |
|
|
632 | (13) |
|
|
633 | (4) |
|
|
637 | (1) |
|
|
638 | (1) |
|
|
639 | (1) |
|
C programs for multirate processing and systems design |
|
|
639 | (1) |
|
Multirate digital signal processing with MATLAB |
|
|
640 | (5) |
|
|
645 | (36) |
|
When to use adaptive filters and where they have been used |
|
|
646 | (1) |
|
Concepts of adaptive filtering |
|
|
647 | (4) |
|
Adaptive filters as a noise canceller |
|
|
647 | (1) |
|
Other configurations of the adaptive filter |
|
|
648 | (1) |
|
Main components of the adaptive filter |
|
|
648 | (1) |
|
|
648 | (3) |
|
Basic Wiener filter theory |
|
|
651 | (3) |
|
The basic LMS adaptive algorithm |
|
|
654 | (8) |
|
Implementation of the basic LMS algorithm |
|
|
655 | (3) |
|
Practical limitations of the basic LMS algorithm |
|
|
658 | (3) |
|
Other LMS-based algorithms |
|
|
661 | (1) |
|
Recursive least squares algorithm |
|
|
662 | (4) |
|
Recursive least squares algorithm |
|
|
663 | (1) |
|
Limitations of the recursive least squares algorithm |
|
|
664 | (1) |
|
|
665 | (1) |
|
Application example 1 - adaptive filtering of ocular artefacts from the human EEG |
|
|
666 | (2) |
|
The physiological problem |
|
|
666 | (1) |
|
Artefact processing algorithm |
|
|
667 | (1) |
|
|
668 | (1) |
|
Application example 2 - adaptive telephone echo cancellation |
|
|
668 | (2) |
|
|
670 | (11) |
|
|
670 | (1) |
|
|
670 | (1) |
|
Adaptive jammer suppression |
|
|
671 | (1) |
|
|
672 | (1) |
|
Separation of speech signals from background noise |
|
|
672 | (1) |
|
Fetal monitoring - cancelling of maternal ECG during labour |
|
|
673 | (1) |
|
|
674 | (1) |
|
|
674 | (1) |
|
|
675 | (1) |
|
|
676 | (1) |
|
C language programs for adaptive filtering |
|
|
676 | (4) |
|
MATLAB programs for adaptive filtering |
|
|
680 | (1) |
|
Spectrum estimation and analysis |
|
|
681 | (46) |
|
|
682 | (2) |
|
Principles of spectrum estimation |
|
|
684 | (3) |
|
|
687 | (20) |
|
|
687 | (3) |
|
|
690 | (13) |
|
The periodogram method and periodogram properties |
|
|
703 | (1) |
|
Modified periodogram methods |
|
|
704 | (1) |
|
The Blackman-Tukey method |
|
|
705 | (1) |
|
The fast correlation method |
|
|
706 | (1) |
|
Comparison of the power spectral density estimation methods |
|
|
706 | (1) |
|
Modern parametric estimation methods |
|
|
707 | (1) |
|
Autoregressive spectrum estimation |
|
|
708 | (7) |
|
Autoregressive model and filter |
|
|
708 | (1) |
|
Power spectrum density of AR series |
|
|
709 | (1) |
|
Computation of model parameters - Yule-Walker equations |
|
|
710 | (3) |
|
Solution of the Yule-Walker equations |
|
|
713 | (1) |
|
|
714 | (1) |
|
Comparison of estimation methods |
|
|
715 | (1) |
|
|
715 | (6) |
|
Use of spectral analysis by a DFT for differentiating between brain diseases |
|
|
715 | (4) |
|
Spectral analysis of EEGs using autoregressive modelling |
|
|
719 | (2) |
|
|
721 | (1) |
|
|
721 | (6) |
|
|
722 | (2) |
|
|
724 | (1) |
|
|
725 | (1) |
|
MATLAB programs for spectrum estimation and analysis |
|
|
725 | (2) |
|
General- and special-purpose digital signal processors |
|
|
727 | (78) |
|
|
728 | (1) |
|
Computer architectures for signal processing |
|
|
728 | (18) |
|
|
730 | (2) |
|
|
732 | (5) |
|
Hardware multiplier-accumulator |
|
|
737 | (1) |
|
|
738 | (3) |
|
|
741 | (1) |
|
|
742 | (1) |
|
Extended parallelism - SIMD, VLIW and static superscalar processing |
|
|
742 | (4) |
|
General-purpose digital signal processors |
|
|
746 | (13) |
|
Fixed-point digital signal processors |
|
|
747 | (9) |
|
Floating-point digital signal processors |
|
|
756 | (3) |
|
Selecting digital signal processors |
|
|
759 | (2) |
|
Implementation of DSP algorithms on general-purpose digital signal processors |
|
|
761 | (26) |
|
|
761 | (9) |
|
|
770 | (7) |
|
|
777 | (5) |
|
|
782 | (4) |
|
|
786 | (1) |
|
Special-purpose DSP hardware |
|
|
787 | (5) |
|
|
789 | (1) |
|
|
790 | (2) |
|
|
792 | (13) |
|
|
793 | (3) |
|
|
796 | (1) |
|
|
797 | (1) |
|
|
798 | (1) |
|
TMS320 assembly language programs for real-time signal processing and a C language program for constant geometry radix-2 FFT |
|
|
798 | (7) |
|
Analysis of finite wordlength effects in fixed-point DSP systems |
|
|
805 | (68) |
|
|
805 | (1) |
|
|
806 | (9) |
|
|
808 | (4) |
|
Floating-point arithmetic |
|
|
812 | (3) |
|
ADC quantization noise and signal quality |
|
|
815 | (2) |
|
Finite wordlength effects in IIR digital filters |
|
|
817 | (43) |
|
Influence of filter structure on finite wordlength effects |
|
|
818 | (4) |
|
Coefficient quantization errors in IIR digital filters |
|
|
822 | (1) |
|
Coefficient wordlength requirements for stability and desired frequency response |
|
|
823 | (5) |
|
Addition overflow errors and their effects |
|
|
828 | (1) |
|
|
829 | (3) |
|
Scaling in cascade realization |
|
|
832 | (2) |
|
Scaling in parallel realization |
|
|
834 | (1) |
|
Output overflow detection and prevention |
|
|
835 | (1) |
|
Product roundoff errors in IIR digital filters |
|
|
836 | (1) |
|
Effects of roundoff errors on filter performance |
|
|
837 | (4) |
|
Roundoff noise in cascade and parallel realizations |
|
|
841 | (4) |
|
Effects of product roundoff noise in modern DSP systems |
|
|
845 | (1) |
|
Roundoff noise reduction schemes |
|
|
846 | (7) |
|
Determining practical values for error feedback coefficients |
|
|
853 | (4) |
|
Limit cycles due to product roundoff errors |
|
|
857 | (2) |
|
Other nonlinear phenomena |
|
|
859 | (1) |
|
Finite wordlength effects in FFT algorithms |
|
|
860 | (4) |
|
|
860 | (2) |
|
Overflow errors and scaling in FFT |
|
|
862 | (2) |
|
Coefficient quantization in FFT |
|
|
864 | (1) |
|
|
864 | (9) |
|
|
865 | (3) |
|
|
868 | (1) |
|
|
868 | (2) |
|
|
870 | (1) |
|
Finite wordlength analysis program for IIR filters |
|
|
870 | (1) |
|
L2 scaling factor equations |
|
|
870 | (3) |
|
Applications and design studies |
|
|
873 | (52) |
|
Evaluation boards for real-time signal processing |
|
|
874 | (3) |
|
|
874 | (1) |
|
|
874 | (2) |
|
DSP56002 evaluation module for real-time DSP |
|
|
876 | (1) |
|
TMS320C54 and D5P56300 evaluation boards |
|
|
876 | (1) |
|
|
877 | (27) |
|
Detection of fetal heartbeats during labour |
|
|
877 | (8) |
|
Adaptive removal of ocular artefacts from human EEGs |
|
|
885 | (16) |
|
Equalization of digital audio signals |
|
|
901 | (3) |
|
|
904 | (7) |
|
Computer-based multiple choice DSP questions |
|
|
911 | (9) |
|
|
920 | (5) |
|
|
921 | (1) |
|
|
921 | (2) |
|
|
923 | (1) |
|
|
923 | (1) |
|
The modified UD factorization algorithm |
|
|
923 | (2) |
Index |
|
925 | |