Table of Content


Chapter 1 Introduction to Real-Time Digital Signal Processing
1.1 Basic Elements of Real-Time DSP Systems
1.2 Input and Output Channels
1.2.1 Input Signal Conditioning
1.2.2 Sampling
1.2.3 Quantizing and Encoding
1.2.4 Smoothing Filters
1.2.5 Input/Output Devices
1.3 DSP Hardware
1.3.1 DSP Hardware Options
1.3.2 Fixed- and Floating-Point Devices
1.3.3 Real-Time Constraints

1.4 DSP System Design
1.4.1 Algorithm Development
1.4.2 Selection of DSP Chips
1.4.3 Software Development
1.4.4 High-Level Software Development Tools
1.5 Experiments Using Code Composer Studio
1.5.1 Experiment 1A -Using Code Composer Studio and TMS320C55x Simulator
1.5.2 Experiment 1B - Debugging Program on Code Composer Studio
1.5.3 Experiment 1C - File Input and Output
1.5.4 Experiment 1D - Code Efficiency Analysis
1.5.5 Experiment 1E - General Extension Language
References
Exercises

Chapter 2 Introduction to TMS320C55x Digital Signal Processor
2.1 Introduction
2.2 TMS320C55x Architecture
2.2.1 TMS320C55x Architecture Overview
2.2.2 TMS320C55x Buses
2.2.3 TMS320C55x Memory Map
2.3 Software Development Tools
2.3.1 C Compiler
2.3.2 Assembler
2.3.3 Linker
2.3.4 Code Composer Studio
2.3.5 Assembly Statement Syntax
2.4 TMS320C55x Addressing Modes
2.4.1 Direct Addressing Mode
2.4.2 Indirect Addressing Mode
2.4.3 Absolute Addressing Mode
2.4.4 Memory-Mapped Register Addressing Mode
2.4.5 Register Bits Addressing Mode
2.4.6 Circular Addressing Mode
2.5 Pipeline and Parallelism
2.5.1 TMS320C55x Pipeline
2.5.2 Parallel Execution
2.6 TMS320C55x Instruction Set
2.6.1 Arithmetic Instructions
2.6.2 Logic and Bits Manipulation Instructions
2.6.3 Move Instruction
2.6.4 Program Flow Control Instructions
2.7 Mixed C and Assembly Language Programming
2.8 Assembly Programming Experiments
2.8.1 Experiment 2A - Interfacing C with Assembly Code
2.8.2 Experiment 2B - Addressing Mode Experiments
2.8.3 Experiment 2C - Experiments using TMS320C55x Evaluation Module
References
Exercises

Chapter 3 DSP Fundamentals and Implementation Considerations
3.1 Digital Signals and Systems
3.1.1 Elementary Digital Signals
3.1.2 Block Diagram Representation of Digital Systems
3.1.3 Impulse Response of Digital Systems
3.2 Introduction to Digital Filters
3.2.1 FIR Filters and Power Estimators
3.2.2 Response of Linear Systems
3.2.3 IIR Filters
3.3 Introduction to Random Variables
3.3.1 Review of Probability and Random Variables
3.3.2 Operations on Random Variables
3.4 Fixed-Point Representation and Arithmetic
3.5 Quantization Errors
3.5.1 Input Quantization Noise
3.5.2 Coefficient Quantization Noise
3.5.3 Roundoff Noise
3.6 Overflow and Solutions
3.6.1 Saturation Arithmetic
3.6.2 Overflow Handling
3.6.3 Scaling of Signals
3.7 Implementation Procedure for Real-Time Applications
3.8 Experiments of Fixed-Point Implementations
3.8.1 Experiment 3A - Quantization of Sinusoidal Signals
3.8.2 Experiment 3B - Quantization of Speech Signals
3.8.3 Experiment 3C - Overflow and Saturation Arithmetic
3.8.4 Experiment 3D - Quantization of Coefficients
3.8.5 Experiment 3E - Synthesizing Sine Function
References
Exercises

Chapter 4 Frequency Analysis
4.1 Fourier Series and Transform
4.1.1 Fourier Series
4.1.2 Fourier Transform
4.2 The z-Transforms
4.2.1 Definitions and Basic Properties
4.2.2 Inverse z-Transform
4.3 System Concepts
4.3.1 Transfer Functions
4.3.2 Digital Filters
4.3.3 Poles and Zeros
4.3.4 Frequency Responses
4.4 Discrete Fourier Transform
4.4.1 Discrete-Time Fourier Series and Transform
4.4.2 Aliasing and Folding
4.4.3 Discrete Fourier Transform
4.4.4 Fast Fourier Transform
4.5 Applications
4.5.1 Design of Simple Notch Filters
4.5.2 Analysis of Room Acoustics
4.6 Experiments Using the TMS320C55x
4.6.1 Experiment 4A - Twiddle Factor Generation
4.6.2 Experiment 4B - Complex Data Operation
4.6.3 IExperiment 4C - mplementation of DFT
4.6.4 Experiment 4D - Experiment Using Assembly Routines
References
Exercises

Chapter 5 Design and Implementation of FIR Filters
5.1 Introduction to Digital Filters
5.1.1 Filter Characteristics
5.1.2 Filter Types
5.1.3 Filter Specifications
5.2 FIR Filtering
5.2.1 Linear Convolution
5.2.2 Some Simple FIR Filters
5.2.3 Linear Phase FIR Filters
5.2.4 Realization of FIR Filters
5.3 Design of FIR Filters
5.3.1 Filter Design Procedure
5.3.2 Fourier Series Method
5.3.3 Gibbs Phenomenon
5.3.4 Window Functions
5.5.5 Frequency Sampling Method
5.4 Design of FIR Filters using MATLAB
5.5 Implementation Considerations
5.5.1 Software Implementation
5.5.2 Quantization Effects in FIR Filters
5.6 Experiments Using the TMS320C55x
5.6.1 Experiment 5A - Block FIR Filter Implementation
5.6.2 Experiment 5B - Symmetric FIR Filter Implementation
5.6.3 Experiment 5C - FIR Filter Implementation Using Dual-MAC
References
Exercises

Chapter 6 Design and Implementation of IIR Filters
6.1 Laplace Transform
6.1.1 Introduction
6.1.2 Relationships between the Laplace Transform and the z-Transform
6.1.3 Mapping Properties
6.2 Analog Filters
6.2.1 Introduction to Analog Filters
6.2.2 Characteristics of Analog Filters
6.2.3 Frequency Transforms
6.3 Design of IIR Filters
6.3.1 Review of IIR Filters
6.3.2 Impulse-Invariant Method
6.3.3 Bilinear Transform
6.3.4 Filter Design Using Bilinear Transform
6.4 Realization of IIR Filters
6.4.1 Direct Forms
6.4.2 Cascade Form
6.4.3 Parallel Form
6.4.4 Applications
6.5 Design of IIR Filters using MATLAB
6.6 Implementation Considerations
6.6.1 Stability
6.6.2 Finite-Precision Effects and Solutions
6.6.3 Software Implementations
6.6.4 Applications
6.7 Experiments From C to Assembly language - IIR Filter Design Examples
6.7.1 Experiment 6A - IIR Filter Implementation Using Floating-point C
6.7.2 Experiment 6B - Fixed-point C Implementation Using Intrinsics
6.7.3 Experiment 6C - Fixed-point C Programming Consideration
6.7.4 Experiment 6D - IIR Filter Assembly Language Implementation
References
Exercises

Chapter 7 Fast Fourier Transform and Its Applications
7.1 Discrete Fourier Transform
7.1.1 Definition
7.1.2 Important Properties of DFT
7.1.3 Circular Convolution
7.2 Fast Fourier Transforms
7.2.1 Decimation-in-Time
7.2.2 Decimation-in-Frequency
7.2.3 Inverse Fast Fourier Transform
7.2.4 MATLAB Implementations
7.3 Applications
7.3.1 Spectrum Estimation and Analysis
7.3.2 Spectral Leakage and Resolution
7.3.3 Power Density Spectrum
7.3.4 Fast Convolution
7.3.5 Spectrogram
7.4 Implementation Considerations
7.4.1 Computational Issues
7.4.2 Finite-Precision Effects
7.5 Experiments 7.5 Experiments Fast Fourier Transform (FFT) Applications
7.5.1 Experiment 7A - Radix2 Complex FFT
7.5.4 Experiment 7B - Real-time TMS320C55x implementation of FFT for spectrum estimation and analysis.
7.5.5 Experiment 7C - Real-time filtering using fast convolution
References
Exercises

Chapter 8 Adaptive Filtering
8.1 Introduction to Random Processes
8.1.1 Correlation Functions
8.1.2 Frequency-Domain Representations
8.2 Adaptive Filters
8.2.1 Introduction to Adaptive Filtering
8.2.2 Performance Function
8.2.3 Method of Steepest Descent
8.2.4 The LMS Algorithm
8.3 Performance Analysis
8.3.1 Stability Constraint
8.3.2 Convergence Rate
8.3.3 Excess Mean-Square Error
8.4 Modified LMS Algorithms
8.4.1 Normalized LMS Algorithm
8.4.2 Leaky LMS Algorithm
8.5 Applications
8.5.1 Adaptive System Identification
8.5.2 Adaptive Linear Prediction
8.5.3 Adaptive Noise Canceling
8.5.4 Adaptive Notch Filters
8.5.5 Adaptive Channel Equalization
8.6 Implementation Considerations
8.6.1 Computational Issues
8.6.2 Finite-Precision Effects
8.7 Experiments Adaptive Filters
8.7.1 Experiment 8A - System Identification Using Adaptive Filter
8.7.2 Experiment 8B - Self-tuned Leaky LMS Adaptive System
References
Exercises

Chapter 9 Practical DSP Applications in Communications
9.1 Sinewave Generator and Applications
9.1.1 Lookup-Table Method
9.1.2 Linear Chirp Signal
9.1.3 Siren Generator
9.1.4 DTMF Tones Generator
9.2 Noise Generators and Applications
9.2.1 Linear Congruential Sequence Generator
9.2.2 Pseudo-Random Binary Sequence Generator
9.2.3 Comfort Noise in Voice Communication Systems
9.2.4 Off-Line System Modeling
9.3 DTMF Tone Detection
9.3.1 Definition
9.3.2 Goertzel Algorithm
9.3.3 Implementation Considerations
9.4 Adaptive Echo Cancellation
9.4.1 Introduction
9.4.2 Adaptive Echo Canceler
9.4.3 Practical Considerations
9.4.4 Speech Detection and Control
9.4.5 Residual Echo Suppressor
9.4.6 Acoustic Echo Cancellation
9.4.7 Applications to Hands-Free Telephones
9.5 Acoustic Echo Cancellation
9.6 Speech Enhancement Techniques
9.6.1 Introduction
9.6.2 Spectral Subtraction Techniques
9.6.3 Subband Techniques
9.7 Speech Coding Techniques
9.7.1 Introduction
9.7.2 ADPCM
9.7.3 G.728/G.729
9.7.4 CELP (or VSELP)
9.8 Projects Using the TMS320C55x
References
Exercises

Appendix A Some Useful Formulas
A.1 Trigonometric Identities
A.2 Geometric Series
A.3 Complex Variables
A.4 Impulse Functions
A.5 Vector Concepts
A.6 Units of Power

Appendix B Introduction of MATLAB for DSP Applications
B.1 Elementary Operations
B.1.1 Initializing Variables and Vectors
B.1.2 Plots
B.1.3 Basic Operators
B.1.4 Files
B.2 Generation and Processing of Digital Signals
B.3 DSP Applications
B.4 User-Written Functions
B.5 Summary of Useful MATLAB Functions

Appendix C Introduction of C Programming for DSP Applications
C.1 A Simple C Program
C.1.1 Comments
C.1.2 Preprocessor Directives
C.1.3 Main Function
C.1.4 Variables and Assignment Operators
C.1.5 Numeric Data Types and Conversion
C.1.6 Arrays
C.2 Arithmetic and Bitwise Operators
C.2.1 Arithmetic Operators
C.2.2 Bitwise Operators
C.3 An Example of FIR Filter
C.3.1 Command-Line Arguments
C.3.2 Pointers
C.3.3 C Functions
C.3.4 Files and I/O Operations
C.4 Control Structures and Loops
C.4.1 Control Structures
C.4.2 Logical Operators
C.4.3 Loops


copyright © 2001 by Sen M. Kuo and Bob H. Lee.
Last revised: Jan 2, 2001.