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 Filters 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 I/f Noise Generators 745
B.4 Problems 749
C Complex Arithmetic in C 752
D MATLAB Functions 755
References 773
Index 790