1 Sampling and Reconstruction 1
1.1 Introduction, 1
1.2 Review of Analog Signals, 1
1.3 Sampling Theorem, 4
1.3.1 Sampling Theorem, 6
1.3.2 Antialiasing Prefilters, 7
1.3.3 Hardware Limits, 8
1.4 Sampling of Sinusoids, 9
1.4.1 Analog Reconstruction and Aliasing, 10
1.4.2 Rotational Motion, 27
1.4.3 DSP, Frequency Units, 30
1.5 Spectra of Sampled Signals*, 30
1.5.1 Discrete-Time Fourier Transform, 31
1.5.2 Spectrum Replication, 33
1.5.3 Practical Antialiasing Prefilters, 38
1.6 Analog Reconstructors*, 43
1.6.1 Ideal Reconstructors, 44
1.6.2 Staircase Reconstructors, 46
1.6.3 Anti-Image Postfilters, 47
1.7 Basic Components of DSP Systems, 54
1.8 Problems, 57
2 Quantization 63
2.1 Quantization Process, 63
2.2 Oversampling and Noise Shaping*, 67
2.3 D/A Converters, 73
2.4 A/D Converters, 77
2.5 Analog and Digital Dither*, 86
2.6 Problems, 93
3 Discrete-Time Systems 98
3.1 Input/Output Rules, 99
3.2 Linearity and Time Invariance, 103
3.3 Impulse Response, 106
3.4 FIR and IIR Fllters, 108
3.5 Causality and Stability, 115
3.6 Problems, 120
4 FIR Filtering and Convolution 124
4.1 Block Processing Methods, 125
4.1.1 Convolution, 125
4.1.2 Direct Form, 126
4.1.3 Convolution Table, 129
4.1.4 LTI Form, 130
4.1.5 Matrix Form, 132
4.1.6 Flip-and-Slide Form, 134
4.1.7 Transient and Steady-State Behavior, 135
4.1.8 Convolution of Infinite Sequences, 137
4.1.9 Programming Considerations, 142
4.1.10 Overlap-Add Block Convolution Method, 146
4.2 Sample Processing Methods, 149
4.2.1 Pure Delays, 150
4.2.2 FIR Filtering in Direct Form, 155
4.2.3 Programming Considerations, 163
4.2.4 Hardware Realizations and Circular Buffers, 165
4.3 Problems, 181
5 z-Transforms 186
5.1 Basic Properties, 186
5.2 Region of Convergence, 189
5.3 Causality and Stability, 196
5.4 Frequency Spectrum, 200
5.5 Inverse z-Transforms, 205
5.6 Problems, 214
6 Transfer Functions 217
6.1 Equivalent Descriptions of Digital Filters, 217
6.2 Transfer Functions, 217
6.3 Sinusoidal Response, 232
6.3.1 Steady-State Response, 232
6.3.2 Transient Response, 235
6.4 Pole/Zero Designs, 246
6.4.1 First-Order Filters, 246
6.4.2 Parametric Resonators and Equalizers, 248
6.4.3 Notch and Comb Filters, 253
6.5 Deconvolution, Inverse Filters, and Stability, 258
6.6 Problems, 263
7 Digital Filter Realizations 269
7.1 Direct Form, 269
7.2 Canonical Form, 275
7.3 Cascade Form, 281
7.4 Cascade to Canonical, 288
7.5 Hardware Realizations and Circular Buffers, 297
7.6 Quantization Effects in Digital Filters, 310
7.7 Problems, 311
8 Signal Processing Applications 321
8.1 Digital Waveform Generators, 321
8.1.1 Sinusoidal Generators, 321
8.1.2 Periodic Waveform Generators, 326
8.1.3 Wavetable Generators, 335
8.2 Digital Audio Effects, 355
8.2.1 Delays, Echoes, and Comb Filters, 355
8.2.2 Flanging, Chorusing, and Phasing, 360
8.2.3 Digital Reverberation, 367
8.2.4 Multitap Delays, 379
8.2.5 Compressors, Limiters, Expanders, and Gates, 384
8.3 Noise Reduction and Signal Enhancement, 388
8.3.1 Noise Reduction Filters, 388
8.3.2 Notch and Comb Filters, 404
8.3.3 Line and Frame Combs for Digital TV, 416
8.3.4 Signal Averaging, 429
8.3.5 Savitzky-Golay Smoothing Filters*, 434
8.4 Problems, 462
9 DFT/FFT Algorithms 472
9.1 Frequency Resolution and Windowing, 472
9.2 DTFT Computation, 483
9.2.1 DTFT at a Single Frequency, 483
9.2.2 DTFT over Frequency Range, 486
9.2.3 DFT, 488
9.2.4 Zero Padding, 490
9.3 Physical versus Computational Resolution, 491
9.4 Matrix Form of DFT, 495
9.5 Modulo-N Reduction, 497
9.6 Inverse DFT, 505
9.7 Sampling of Periodic Signals and the DFT, 508
9.8 FFT, 513
9.9 Fast Convolution, 524
9.9.1 Circular Convolution, 524
9.9.2 Overlap-Add and Overlap-Save Methods, 530
9.10 Problems, 533
10 FIR Digital Filter Design 541
10.1 Window Method, 541
10.1.1 Ideal Filters, 541
10.1.2 Rectangular Window, 544
10.1.3 Hamming Window, 549
10.2 Kaiser Window, 551
10.2.1 Kaiser Window for Filter Design, 551
10.2.2 Kaiser Window for Spectral Analysis, 565
10.3 Frequency Sampling Method, 567
10.4 Other FIR Design Methods, 568
10.5 Problems, 569
11 IIR Digital Filter Design 573
11.1 Bilinear Transformation, 573
11.2 First-Order Lowpass and Highpass Filters, 576
11.3 Second-Order Peaking and Notching Filters, 583
11.4 Parametric Equalizer Filters, 592
11.5 Comb Filters, 601
11.6 Higher-Order Filters, 604
11.6.1 Analog Lowpass Butterworth Filters, 605
11.6.2 Digital Lowpass Filters, 611
11.6.3 Digital Highpass Filters, 614
11.6.4 Digital Bandpass Filters, 618
11.6.5 Digital Bandstop Filters, 623
11.6.6 Chebyshev Filter Design*, 626
11.7 Problems, 640
12 Interpolation, Decimation, and Oversampling 644
12.1 Interpolation and Oversampling, 644
12.2 Interpolation Filter Design*, 650
12.2.1 Direct Form, 650
12.2.2 Polyphase Form, 652
12.2.3 Frequency Domain Characteristics, 657
12.2.4 Kaiser Window Designs, 660
12.2.5 Multistage Designs, 661
12.3 Linear and Hold Interpolators*, 669
12.4 Design Examples*, 674
12.4.1 4-fold Interpolators, 674
12.4.2 Multistage 4-fold Interpolators, 678
12.4.3 DAC Equalization, 683
12.4.4 Postfilter Design and Equalization, 687
12.4.5 Multistage Equalization, 691
12.5 Decimation and Oversampling*, 699
12.6 Sampling Rate Converters*, 704
12.7 Noise Shaping Quantizers*, 712
12.8 Problems, 720
13 Appendices 728
A Random Signals*, 728
A.1 Autocorrelation Functions and Power Spectra, 728
A.2 Filtering of Random Signals, 732
B Random Number Generators, 734
B.1 Uniform and Gaussian Generators, 734
B.2 Low-Frequency Noise Generators*, 740
B.3 1/f Noise Generators*, 745
B.4 Problems, 749
C Complex Arithmetic in C, 752
D MATLAB Functions, 755
References 773
Index 790