Log In
Or create an account ->
Imperial Library
Home
About
News
Upload
Forum
Help
Login/SignUp
Index
Cover
Half Title
Title Page
Copyright Page
Dedication
Foreword
Authors
Table of Contents
List of Figures
List of Tables
List of Program Listings
Preface
Acknowledgments
Section I: Enduring Fundamentals
1 Introduction and Organization
1.1 Why Do You Need This Book?
1.1.1 Other DSP Books
1.1.2 Demos and DSP Hardware
1.1.3 Philosophy of This Book
1.2 Real-Time DSP
1.3 How to Use This Book
1.3.1 Supported Boards
1.3.2 Host Computer to DSP Board Communication
1.3.3 Transition to Real-Time
1.3.4 Chapter Coverage
1.3.5 Hardware and Software Installation
1.3.6 Reading Program Listings
1.4 Get Started
1.5 Problems
2 Sampling and Reconstruction
2.1 Theory
2.1.1 Choosing a Sampling Frequency
2.1.2 Input/Output Issues: Samples or Frames?
2.1.3 The Talk-Through Concept
2.2 winDSK Demonstration
2.2.1 Starting winDSK
2.2.2 Talk-Thru Application
2.3 Talk-Through Using Windows
2.4 Talk-Through Using MATLAB and Windows
2.4.1 Talk-Through Using MATLAB Only
2.4.2 Talk-Through Using MATLAB and the DSK
2.5 DSK Implementation in C
2.6 Follow-On Challenges
2.7 Problems
3 FIR Digital Filters
3.1 Theory
3.1.1 Traditional Notation
3.1.2 FIR Filters Compared to IIR Filters
3.1.3 Calculating the Output of a Filter
3.2 winDSK Demonstration
3.2.1 Graphic Equalizer Application
3.2.2 Notch Filter Application
3.2.3 Audio Effects Application
3.3 MATLAB Implementation
3.3.1 Built-In Approach
3.3.2 Creating Your Own Filter Algorithm
3.4 DSK Implementation in C
3.4.1 Brute-Force FIR Filtering in C: Part 1
3.4.2 Brute-Force FIR Filtering in C: Part 2
3.4.3 Circular Buffered FIR Filtering
3.5 Follow-On Challenges
3.6 Problems
4 IIR Digital Filters
4.1 Theory
4.2 win DSK Demonstration: Notch Filter Application
4.3 MATLAB Implementation
4.3.1 Filter Designand Analysis
4.3.2 IIR Filter Notation
4.3.3 Block Diagrams
4.3.4 Built-In Approach
4.3.5 Creating Your Own Filter Algorithm
4.4 DSK Implementation in C
4.4.1 Brute-Force IIR Filtering
4.4.2 More Efficient IIR Filtering
4.5 Follow-On Challenges
4.6 Problems
5 Periodic Signal Generation
5.1 Theory
5.1.1 Periodic Signals in DSP
5.1.2 Signal Generation
5.2 winDSK Demonstration
5.2.1 Arbitrary Waveform
5.2.2 DTMF
5.3 MATLAB Implementation
5.3.1 Direct Digital Synthesizer Technique
5.3.2 Table Lookup Technique
5.4 DSK Implementation in C
5.4.1 Direct Digital Synthesizer Technique
5.4.2 Table Lookup Technique
5.4.3 Table Lookup Technique with Table Creation
5.4.4 Digital Resonator Technique
5.5 Pseudonoise Sequences
5.5.1 Theory
5.5.2 winDSK Demonstration
5.5.3 MATLAB Implementation
5.5.4 DSK Implementation in C
5.6 Follow-On Challenges
5.7 Problems
6 Frame-Based DSP
6.1 Theory
6.1.1 Drawbacks of Sample-Based DSP
6.1.2 What Is a Frame?
6.2 winDSK Demonstration
6.3 MATLAB Implementation
6.4 DSK Implementation in C
6.4.1 Triple Buffering
6.4.2 A Frame-Based DSP Example
6.4.3 Using Direct Memory Access
6.5 Summary of Frame-Based Processing
6.6 Follow-On Challenges
6.7 Problems
7 Digital Filters Using Frames
7.1 Theory
7.2 winDSK Demonstration
7.3 MATLAB Implementation
7.4 DSK Implementation in C
7.4.1 Understanding the FIR Process for Frames
7.4.2 How to Avoid the “Edge” Problems
7.4.3 Explanation of the C Code
7.5 Follow-On Challenges
7.6 Problems
8 The Fast Fourier Transform
8.1 Theory
8.1.1 Defining the FFT
8.1.2 The Twiddle Factors
8.1.3 The FFT Process
8.1.4 Bit-Reversed Addressing
8.1.5 Using the FFT for Filtering
8.1.6 Avoiding Circular Convolution
8.1.7 Real-Time Fast Convolution
8.2 winDSK Demonstration
8.3 MATLAB Implementation
8.4 Implementation in C
8.5 Follow-On Challenges
8.6 Problems
9 Spectral Analysis and Windowing
9.1 Theory
9.1.1 Power Spectrum of a Signal
9.1.2 The Need for Windowing
9.1.3 Window Characteristics
9.2 winDSK Demonstration
9.3 MATLAB Implementation
9.4 DSK Implementation in C
9.5 Conclusion
9.6 Follow-On Challenges
9.7 Problems
Section II: Projects
10 Project 1: Guitar Special Effects
10.1 Introduction to Projects
10.2 Theory
10.2.1 Background
10.2.2 How the Effects Work
10.3 winDSK Demonstration
10.4 MATLAB Implementation
10.4.1 FIR Comb Filter
10.4.2 IIR Comb Filter
10.4.3 Notch Filter
10.4.4 Flanger
10.4.5 Tremelo
10.5 DSK Implementation in C
10.5.1 Real-Time Comb Filters
10.5.2 Other Real-Time Special Effects
10.6 Follow-On Challenges
11 Project 2: Graphic Equalizer
11.1 Theory
11.2 winDSK Demonstration
11.2.1 Graphic Equalizer Application
11.2.2 Effect of the Graphic Equalizer
11.3 MATLAB Implementation
11.4 DSK Implementation in C
11.4.1 Applying Gain to Filter Bands
11.4.2 GEL File Slider Control
11.5 Follow-On Challenges
12 Project 3: Second-Order Sections
12.1 Theory
12.2 winDSK Demonstration: Notch Filter Application
12.3 MATLAB Implementation
12.4 DSK Implementation in C
12.4.1 Example SOS Code
12.5 Points to Ponder
12.6 Follow-On Challenges
13 Project 4: Peak Program Meter
13.1 Theory
13.2 winDSK Demonstration: commDSK
13.3 MATLAB Implementation
13.4 DSK Implementation in C
13.4.1 Example PPM Code
13.4.2 DSK LED Control
13.4.3 Another PPM Code Version
13.5 Follow-On Challenges
14 Project 5: Adaptive Filters
14.1 Theory
14.1.1 A Problem Solved by Adaptive Filters
14.1.2 The LMS Adpative Filter
14.2 winDSK8 Demonstration
14.3 MATLAB Implementation
14.4 DSK Implementation in C
14.5 Follow-On Challenges
15 Project 6: AM Transmitters
15.1 Theory
15.2 winDSK Demonstration
15.3 MATLAB Implementation
15.4 DSK Implementation in C
15.5 Follow-On Challenges
16 Project 7: AM Receivers
16.1 Theory
16.1.1 Envelope Detector
16.1.2 The Hilbert-Based AM Receiver
16.2 winDSK Demonstration
16.3 MATLAB Implementation
16.4 DSK Implementation in C
16.5 Follow-On Challenges
17 Project 8: Phase-Locked Loop
17.1 Theory
17.2 winDSK Demonstration
17.3 MATLAB Implementation
17.3.1 PLL Simulation
17.3.2 A Few Updates to the MATLAB Implementation
17.4 DSK Implementation in C
17.4.1 Components of the PLL
17.4.2 System Testing
17.5 Follow-On Challenges
18 Project 9: BPSK Digital Transmitters
18.1 Theory
18.1.1 Random Data and Symbol Generation
18.1.2 BPSK Using Antipodal Rectangularly Shaped Bits
18.1.3 BPSK Using Impulse Modulated Raised-Cosine Shaped Bits
18.2 winDSK Demonstration
18.2.1 commDSK: Unfiltered BPSK
18.2.2 commDSK: Raised-Cosine Filtered BPSK
18.3 MATLAB Implementation
18.3.1 Rectangular Shaped BPSK Signal Generator
18.3.2 Impulse Modulated Raised-Cosine BPSK Signal Generator
18.4 DSK Implementation in C
18.4.1 A Rectangular Pulse Shaped BPSK Transmitter
18.4.2 A Raised-Cosine Pulse Shaped BPSK Transmitter
18.4.3 Summary of Real-Time Code
18.5 Follow-On Challenges
19 Project 10: BPSK Digital Receivers
19.1 Theory
19.1.1 The Output of the Matched Filter
19.1.2 The Eye-Pattern
19.1.3 Maximum Likelihood Timing Recovery
19.2 winDSK Demonstration
19.3 MATLAB Implementation
19.4 DSK Implementation in C
19.4.1 Components of the Digital Receiver
19.4.2 System Testing
19.5 Follow-On Challenges
20 Project 11: MPSK and QAM Digital Transmitters
20.1 Theory
20.1.1 I- and Q-Based Transmitters
20.1.2 A Few Constellation Diagrams
20.2 winDSK Demonstration
20.2.1 commDSK: Root-Raised-Cosine Filtered QPSK
20.3 MATLAB Implementation
20.3.1 Impulse Modulated Root-Raised-Cosine QPSK Signal Generator
20.4 DSK Implementation in C
20.4.1 A Root-Raised-Cosine Pulse Shaped QPSK Transmitter
20.4.2 A More Efficient RRC Pulse Shaped QPSK Transmitter
20.4.3 Summary of Real-Time Code
20.5 Higher-Order Modulation Schemes
20.6 Follow-On Challenges
21 Project 12: QPSK Digital Receivers
21.1 Theory
21.2 winDSK8 Demonstration
21.3 MATLAB Implementation
21.3.1 Through the AGC
21.3.2 A Complete QPSK Receiver
21.4 DSK Implementation in C
21.4.1 Through the AGC
21.4.2 A Complete QPSK Receiver
21.4.3 System Testing
21.5 Follow-On Challenges
Section III: Appendices
A Code Composer Studio: An Overview
A.1 Introduction
A.2 Starting Code Composer Studio
A.3 Conclusion
B DSP/BIOS
B.1 Introduction
B.1.1 DSP/BIOS Major Features
B.1.2 DSP/BIOS Threads
B.2 DSP/BIOS Sample Projects
C Numeric Representations
C.1 Endianness
C.2 Integer Representations
C.3 Integer Division and Rounding
C.4 Floating-Point Representations
C.5 Fixed-Point Representations
C.6 Summary of Numeric Representations
D TMS320C6x Architecture
D.1 Computer Architecture Basics
D.1.1 Instruction Set Architecture
D.1.2 Register Architectures
D.1.3 Memory Architectures
D.1.4 Fetch-Execute Model
D.1.5 Pipelining
D.1.6 Single- versus Multiple-Issue
D.1.7 Scheduling
D.2 TMS320C671x Architecture
D.2.1 Memory System
D.2.2 Pipeline and Scheduling
D.2.3 Peripherals
D.2.4 Host Port Interface
D.3 TMS320C674x Architecture
E Related Tools for DSKs
E.1 Introduction
E.2 Windows Control Applications
E.2.1 Sample Windows Control Application
E.3 MATLAB Exports
E.3.1 Exporting Direct-Form II Implementations
E.3.2 Exporting Second-Order Section Implementations
E.4 MATLAB Real-Time Interface
F Using the Code Generator with MATLAB
F.1 Introduction
F.2 An FIR Filter Example
F.2.1 Before Using the MATLAB Coder
F.2.2 Using the MATLAB Coder
F.2.3 Transferring to a CCS Project
F.2.4 Observations
F.3 Conclusion
G Battery Power for the DSP Boards
G.1 Introduction
G.2 Method
G.3 Testing
G.3.1 Initial testing
G.3.2 Final testing
G.4 Conclusion
H Programming Perils and Pitfalls
H.1 Debug versus Release Builds
H.2 The Volatile Keyword
H.3 Function Prototypes and Return Types
H.4 Arithmetic Issues
H.5 Controlling the Location of Variables in Memory
H.6 Real-Time Schedule Failures
H.7 Variable Initialization
H.8 Integer Data Sizes
I Comparison of DSP Boards
I.1 Introduction
I.2 Three Boards
I.3 Conclusion
J Abbreviations, Acronyms, and Symbols
References
Index
← Prev
Back
Next →
← Prev
Back
Next →