Preface
1 Sampling and Reconstruction 1
l.1 introduction, l
l.2 Review of Anatog Signals, 1
l.3 Sampling Theorem, 4
1.3.l 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 Sample Signals*, 30
l.5.1 Discrete the Fourier Transform, 3l
l.5.2 Spectrum Replication, 33
l.5.3 Practical Antialiasing Prefiters, 38
1.6 Analog Reconstructors*. 43
1.6.1 Ideal R6constrUtors, 44
1.6.2 Staircase Reconstructors, 46
1.6.3 Anti-Image Postfiliters. 47
l.7 Basic Components of DSP Systems. S4
l.8 Problems. 57
2 Quantization 63
2.1 Quantization Process, 63
2.2 Oversampling and Noise Shaping*, 67
2.3 D/A Converfers, 73
2.4 A/D Converters, 77
2.5 Analog and Digital Dither, 86
2.6 Problems, 93
3 Discrete-Time Systems 98
3.l Input/Output Rules, 99
3.2 Linearity and Time Invariance, l03
3.3 Impulse Response, l06
3.4 FIR and IIR Filters, l08
3.5 Causality and Stability, ll5
3.6 Problems, l20
4 FIR Filtering and Convolution 124
4.l Block Processing Methods, l25
4.1.1 Convolution, l25
4.l.2 Direct Form, 126
4.l.3 Convolution Table, l29
4.l.4 LTI Form, l30
4.1.5 Matrix Form, l32
4.1.6 Flip-and-Slide Form, l34
4.1.7 Transient and Steady-State Behavior, l35
4.l.8 Convolution of Infinite Sequences, l37
4.1.9 Programming Considerations. 142
4.l.10 Overlap-Add Block Convolution Method, l46
4.2 Sample Processing Methods, 149
4.2.l Pure Delays, l50
4.2.2 FIR Filtering in Direct Form, l55
4.2.3 Programming Considerations, l63
4.2.4 Hardware Realizations and Circular Buffers. 165
4.3 Problems, 18l
5 z-Transforms 186
5.l 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, 2l4
6 Transfer Functions 217
6.1 Equivalent Descriptions of Digital Filters, 217
6.2 Transfer Functions, 217
6.3 Sinusoidal Response, 232
6.3.l Steady-State Response, 232
6.3.2 Transient Response, 235
6.4 Pole/Zero Designs, 246
6.4.l 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, 3l0
7.7 Problems, 31l
8 Signal Processing Applications 321
8.l Digital Waveform Generators, 321
8.1.1 Sinusoidal Generators, 32l
8.1.2 Periodic Waveform Generators, 326
8.1.3 Wavetable Generators, 33S
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 Delaye, 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.l Frequency Resolution and Windowing, 472
9.2 DTFT COmPtatiO4 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
l0.l Window Method, 541
l0.l.l Ideal Filters, 54l
l0.1.2 Rectangular Window, 544
l0.1.3 Hamming Window, 549
l0.2 Kaiser Window. 551l
l0.2.l Kaiser Window for Filter Design. 55l
l0.2.2 Kaiser Window for Spectral Analysis, 565
l0.3 Frequency Sampling Method, 567
l0.4 Other FIR Design Methods, 568
l0.5 Problems, S69
11 IIR Digital Filter Design 573
1l.l Bilinear Transformation, 573
ll.2 First-Order Lowpass and Highpass Filters, 576
ll.3 Second-Order Peaking and Notching Filters, S83
ll.4 Paramtric Equalizer Filters, 592
ll.5 Comb Filters. 60l
ll.6 Higher-Order Filters. 604
1l.6.l Analog Lowpass Butterworth Filters, 605
l1.6.2 Digital Lowpass Filters, 611
ll.6.3 Digital Highpass Filters, 6l4
ll.6.4 Digital Bandpass Filters, 618
l l.6.5 Digital Bandstop Filters, 623
ll.6.6 Chebyshev Filter Design*, 626
ll.7 Problems, 640
12 Interpolation Decimation' and Oversampling 644
l2.l interpolation and Oversmpling, 644
l2.2 Interpolation Filter Design*, 6S0
l2.2.l Direct Form, 650
l2.2.2 Polyphase Form, 652
12.2.3 Frequency Domain Characteristics. 6S7
12.2.4 Kaiser Window Designs, 660
12.2.5 Multistage Design, 661
l2.3 Linear and Hold interpolators*, 669
l2.4 Design Examples*, 674
l2.4.l 4-foldinterpolators, 674
l2.4.2 Multistage 4-fold Interpolators, 678
l2.4.3 DAC Equalization, 683
l2.4.4 Postfilter Design and Equalization, 687
l2.4.5 Multistage Equalization, 691
l2.5 Decimation and Oversmpling*, 699
l2.6 Sampling Rate Converters*, 704
l2.7 Noise Sh3ping Quantizers*, 7l2
l2.8 Problems, 720
13 Appendices 728
A Random Signals*, 728
A.l Autocorrelation Functions and Power Spectra, 728
A.2 Filtering of Random Signals, 732
B Random Number Generators, 734
B.l Uniform and Gaussian Generators, 734
B.2 Low-Frequency Noise Generators*, 740
B.3 I/f Noise Generators*, 745
B.4 Problems, 749
C Complex Arithmetic in C, 752
D MATLAB Functions, 755
References 773
Index 790