From personal music players to anti-lock brakes and advanced digital flight controllers, the demand for real-time digital signal processing (DSP) continues to grow. Mastering real-time DSP is one of the most challenging and time-consuming pursuits in the field, exacerbated by the lack of a resource that solidly bridges the gap between theory and practice. Recognizing that there is a better way forward, accomplished experts Welch, Wright, and Morrow offer Real-Time Digital Signal Processing from MATLAB to C with the TMS320C6x DSK. This book collects all of the necessary tools in a single, field-tested source of unrivaled authority. The authors seamlessly integrate theory with easy-to-use, inexpensive hardware and software tools in an approachable and hands-on manner. Using abundant examples and exercises in a step-by-step approach, they work from familiar interfaces such as MATLAB(R) to running algorithms in real-time on industry-standard DSP hardware.
For each concept, the book uses a four-step methodology: a brief review of relevant theory; demonstration of the concept in winDSK6, an easy-to-use software tool; explanation and demonstration of MATLAB techniques for implementation; and explanation of the necessary C code to implement the algorithms in real time. Covering a broad spectrum of topics in a hands-on, concise, and approachable way, Real-Time Digital Signal Processing from MATLAB to C with the TMS320C6x DSK paves the way toward mastery of real-time DSP. Essential source code is available for download.
Table of Contents
ENDURING FUNDAMENTALS Introduction and Organization . Why Do You Need This Book? . Real-Time DSP . How to Use This Book . Get Started Sampling and Reconstruction . Theory . winDSK6 Demonstration . Talk-Through Using Windows . Talk-Through Using MATLAB and Windows . DSK Implementation in C . Follow-On Challenges FIR Digital Filters . Theory . winDSK6 Demonstration . MATLAB Implementation . DSK Implementation in C . Follow-On Challenges IIR Digital Filters . Theory . winDSK6 Demonstration: Notch Filter Application . MATLAB Implementation . DSK Implementation in C . Follow-On Challenges Periodic Signal Generation . Theory . winDSK6 Demonstration . MATLAB Implementation . DSK Implementation in C . Follow-On Challenges Frame-Based DSP . Theory . winDSK6 Demonstration . MATLAB Implementation . DSK Implementation in C . Summary of Frame-Based Processing . Follow-On Challenges Digital Filters Using Frames . Theory . winDSK6 Demonstration . MATLAB Implementation . DSK Implementation in C . Follow-On Challenges The Fast Fourier Transform . Theory . winDSK6 Demonstration . MATLAB Implementation . DSK Implementation in C . Follow-On Challenges Spectral Analysis and Windowing . Theory . winDSK6 Demonstration . MATLAB Implementation . DSK Implementation in C . Conclusion . Follow-On Challenges PROJECTS Project 1: Guitar Special Effects Project 2: Graphic Equalizer Project 3: Peak Program Meter Project 4: AM Transmitter Project 5: AM Receiver Project 6: Phase-Locked Loop Project 7: Digital Communications Transmitters Project 8: Digital Communications Receivers *Each Project includes the following sections: Theory; winDSK6 Demonstration; MATLAB Implementation; DSK Implementation in C; and Follow-On Challenges APPENDICES Appendix A: Code Composer Studio: A Brief Tutorial . Introduction . Starting Code Composer Studio . Needed Files . Creating a New Project . Opening Existing Projects . Adding Files to a Project . Project Options . Building the Project . Loading the Program on the DSK . Running the Program on the DSK . Get to Know CCS . Typical Files for Our CCS Projects Appendix B: DSP/BIOS . Introduction . Using the DSP/BIOS Scheduler . A DSP/BIOS Talk-Through Application for the 6711 DSK . Modification Needed for the Stereo Codecs . A DSP/BIOS Talk-Through Application for the 6713 DSK Appendix C: Numeric Representations . Endianness . Integer Representations . Integer Division and Rounding . Floating-Point Representations . Fixed-Point Representations . Summary of Numeric Representations Appendix D: TMS320C6x Architecture . Computer Architecture Basics . TMS320C671x Architecture Appendix E: Related Tools for DSKs . Introduction . Windows Control Applications . MATLAB Exports . MATLAB Real-Time Interface Appendix F: Programming Perils and Pitfalls . Debug versus Release Builds . The Volatile Keyword . Function Prototypes and Return Types . Arithmetic Issues . Controlling the Location of Variables in Memory . Real-Time Schedule Failures Appendix G: Abbreviations REFERENCES INDEX