Table of Contents
Preface xiii
About the Author xvii
Introduction to Digital Signal Processing 1
Basic Concepts of Digital Signal Processing 1
Basic Digital Signal Processing Examples in Block Diagrams 3
Digital Filtering 3
Signal Frequency (Spectrum) Analysis 4
Overview of Typical Digital Signal Processing in Real-World Applications 6
Digital Crossover Audio System 6
Interference Cancellation in Electrocardiography 7
Speech Coding and Compression 7
Compact-Disc Recording System 9
Digital Photo Image Enhancement 10
Digital Signal Processing Applications 11
Summary 12
Signal Sampling and Quantization 13
Sampling of Continuous Signal 13
Signal Reconstruction 20
Practical Considerations for Signal Sampling: Anti-Aliasing Filtering 25
Practical Considerations for Signal Reconstruction: Anti-Image Filter and Equalizer 29
Analog-to-Digital Conversion, Digital-to-Analog Conversion, and Quantization 35
Summary 49
MATLAB Programs 50
Problems 51
Digital Signalsand Systems 57
Digital Signals 57
Common Digital Sequences 58
Generation of Digital Signals 62
Linear Time-Invariant, Causal Systems 64
Linearity 64
Time Invariance 65
Causality 67
Difference Equations and Impulse Responses 68
Format of Difference Equation 68
System Representation Using Its Impulse Response 69
Bounded-in-and-Bounded-out Stability 72
Digital Convolution 74
Summary 82
Problems 83
Discrete Fourier Transform and Signal Spectrum 87
Discrete Fourier Transform 87
Fourier Series Coefficients of Periodic Digital Signals 88
Discrete Fourier Transform Formulas 92
Amplitude Spectrum and Power Spectrum 98
Spectral Estimation Using Window Functions 110
Application to Speech Spectral Estimation 117
Fast Fourier Transform 120
Method of Decimation-in-Frequency 121
Method of Decimation-in-Time 127
Summary 131
Problems 131
The z-Transform 135
Definition 135
Properties of the z-Transform 139
Inverse z-Transform 142
Partial Fraction Expansion Using MATLAB 148
Solution of Difference Equations Using the z-Transform 151
Summary 155
Problems 156
Digital Signal Processing Systems, Basic Filtering Types, and Digital Filter Realizations 159
The Difference Equation and Digital Filtering 159
Difference Equation and Transfer Function 165
Impulse Response, Step Response, and System Response 169
The z-Plane Pole-Zero Plot and Stability 171
Digital Filter Frequency Response 179
Basic Types of Filtering 188
Realization of Digital Filters 195
Direct-Form I Realization 195
Direct-Form II Realization 196
Cascade (Series) Realization 197
Parallel Realization 198
Application: Speech Enhancement and Filtering 202
Pre-Emphasis of Speech 202
Bandpass Filtering of Speech 205
Summary 208
Problems 209
Finite Impulse Response Filter Design 215
Finite Impulse Response Filter Format 215
Fourier Transform Design 217
Window Method 229
Applications: Noise Reduction and Two-Band Digital Crossover 253
Noise Reduction 253
Speech Noise Reduction 255
Two-Band Digital Crossover 256
Frequency Sampling Design Method 260
Optimal Design Method 268
Realization Structures of Finite Impulse Response Filters 280
Transversal Form 280
Linear Phase Form 282
Coefficient Accuracy Effects on Finite Impulse Response Filters 283
Summary of Finite Impulse Response (FIR) Design Procedures and Selection of FIR Filter Design Methods in Practice 287
Summary 290
MATLAB Programs 291
Problems 294
Infinite Impulse Response Filter Design 303
Infinite Impulse Response Filter Format 303
Bilinear Transformation Design Method 305
Analog Filters Using Lowpass Prototype Transformation 306
Bilinear Transformation and Frequency Warping 310
Bilinear Transformation Design Procedure 317
Digital Butterworth and Chebyshev Filter Designs 322
Lowpass Prototype Function and Its Order 322
Lowpass and Highpass Filter Design Examples 326
Bandpass and Bandstop Filter Design Examples 336
Higher-Order Infinite Impulse Response Filter Design Using the Cascade Method 343
Application: Digital Audio Equalizer 346
Impulse Invariant Design Method 350
Polo-Zero Placement Method for Simple Infinite Impulse Response Filters 358
Second-Order Bandpass Filter Design 359
Second-Order Bandstop (Notch) Filter Design 360
First-Order Lowpass Filter Design 362
First-Order Highpass Filter Design 364
Realization Structures of Infinite Impulse Response Filters 365
Realization of Infinite Impulse Response Filters in Direct-Form I and Direct-Form II 366
Realization of Higher-Order Infinite Impulse Response Filters via the Cascade Form 368
Application: 60-Hz Hum Eliminator and Heart Rate Detection Using Electrocardiography 370
Coefficient Accuracy Effects on Infinite Impulse Response Filters 377
Application: Generation and Detection of Dual-Tone Multifrequency Tones Using Goertzel Algorithm 381
Single-Tone Generator 382
Dual-Tone Multifrequency Tone Generator 384
Goertzel Algorithm 386
Dual-Tone Multifrequency Tone Detection Using the Modified Goertzel Algorithm 391
Summary of Infinite Impulse Response (IIR) Design Procedures and Selection of the IIR Filter Design Methods in Practice 396
Summary 401
Problems 402
Hardware and Software for Digital Signal Processors 413
Digital Signal Processor Architecture 413
Digital Signal Processor Hardware Units 416
Multiplier and Accumulator 416
Shifters 417
Address Generators 418
Digital Signal Processors and Manufactures 419
Fixed-Point and Floating-Point Formats 420
Fixed-Point Format 420
Floating-Point Format 429
IEEE Floating-Point Formats 434
Fixed-Point Digital Signal Processors 437
Floating-Point Processors 439
Finite Impulse Response and Infinite Impulse Response Filter Implementation in Fixed-Point Systems 441
Digital Signal Processing Programming Examples 447
Overview or TMS320C67x DSK 447
Concept of Real-Time Processing 451
Linear Buffering 452
Sample C Programs 455
Summary 460
Problems 461
Adaptive Filters and Applications 463
Introduction to Least Mean Square Adaptive Finite Impulse Response Filters 463
Basic Wiener Filter Theory and Least Mean Square Algorithm 467
Applications: Noise Cancellation, System Modeling, and Line Enhancement 473
Noise Cancellation 473
System Modeling 479
Line Enhancement Using Linear Prediction 484
Other Application Examples 486
Canceling Periodic Interferences Using Linear Prediction 487
Electrocardiography Interference Cancellation 488
Echo Cancellation in Long-Distance Telephone Circuits 489
Summary 491
Problems 491
Waveform Quantization and Compression 497
Linear Midtread Quantization 497
[Mu]-law Companding 501
Analog [Mu]-Law Companding 501
Digital [Mu]-Law Companding 506
Examples of Differential Pulse Code Modulation (DPCM), Delta Modulation, and Adaptive DPCM G.721 510
Examples of Differential Pulse Code Modulation and Delta Modulation 510
Adaptive Differential Pulse Code Modulation G.721 515
Discrete Cosine Transform, Modified Discrete Cosine Transform, and Transform Coding in MPEG Audio 522
Discrete Cosine Transform 522
Modified Discrete Cosine Transform 525
Transform Coding in MPEG Audio 530
Summary 533
MATLAB Programs 534
Problems 550
Multirate Digital Signal Processing, Oversampling of Analog-to-Digital Conversion, and Undersampling of Bandpass Signals 557
Multirate Digital Signal Processing Basics 557
Sampling Rate Reduction by an Integer Factor 558
Sampling Rate Increase by an Integer Factor 564
Changing Sampling Rate by a Non-Integer Factor L/M 570
Application: CD Audio Player 575
Multistage Decimation 578
Polyphase Filter Structure and Implementation 583
Oversampling of Analog-to-Digital Conversion 589
Oversampling and Analog-to-Digital Conversion Resolution 590
Sigma-Delta Modulation Analog-to-Digital Conversion 593
Application Example: CD Player 599
Undersampling of Bandpass Signals 601
Summary 609
Problems 610
Image Processing Basics 617
Image Processing Notation and Data Formats 617
8-Bit Gray Level Images 618
24-Bit Color Images 619
8-Bit Color Images 620
Intensity Images 621
Red, Green, Blue Components and Grayscale Conversion 622
MATLAB Functions for Format Conversion 624
Image Histogram and Equalization 625
Grayscale Histogram and Equalization 625
24-Bit Color Image Equalization 632
8-Bit Indexed Color Image Equalization 633
MATLAB Functions for Equalization 636
Image Level Adjustment and Contrast 637
Linear Level Adjustment 638
Adjusting the Level for Display 641
Matlab Functions for Image Level Adjustment 642
Image Filtering Enhancement 642
Lowpass Noise Filtering 643
Median Filtering 646
Edge Detection 651
MATLAB Functions for Image Filtering 655
Image Pseudo-Color Generation and Detection 657
Image Spectra 661
Image Compression by Discrete Cosine Transform 664
Two-Dimensional Discrete Cosine Transform 666
Two-Dimensional JPEG Grayscale Image Compression Example 669
JPEG Color Image Compression 671
Creating a Video Sequence by Mixing Two Images 677
Video Signal Basics 677
Analog Video 678
Digital Video 685
Motion Estimation in Video 687
Summary 690
Problems 692
Introduction to the MATLAB Environment 699
Basic Commands and Syntax 699
MATLAB Array and Indexing 703
Plot Utilities: Subplot, Plot, Stem, and Stair 704
MATLAB Script Files 704
MATLAB Functions 705
Review of Analog Signal Processing Basics 709
Fourier Series and Fourier Transform 709
Sine-Cosine Form 709
Amplitude-Phase Form 710
Complex Exponential Form 711
Spectral Plots 714
Fourier Transform 721
Laplace Transform 726
Laplace Transform and Its Table 726
Solving Differential Equations Using Laplace Transform 727
Transfer Function 730
Poles, Zeros, Stability, Convolution, and Sinusoidal Steady-State Response 731
Poles, Zeros, and Stability 731
Convolution 733
Sinusoidal Steady-State Response 735
Problems 736
Normalized Butterworth and Chebyshev Fucntions 741
Normalized Butterworth Function 741
Normalized Chebyshev Function 744
Sinusoidal Steady-State Response of Digital Filters 749
Sinusoidal Steady-State Response 749
Properties of the Sinusoidal Steady-State Response 751
Finite Impulse Response Filter Design Equations by the Frequency Sampling Design Method 753
Some Useful Mathematical Formulas 757
Bibliography 761
Answers to Selected Problems 765
Index 791