Real-Time Digital Signal Processing from MATLAB to C with the TMS320C6x DSPs: 3rd Edition (Hardback) book cover

Real-Time Digital Signal Processing from MATLAB to C with the TMS320C6x DSPs

3rd Edition

By Thad B. Welch, Cameron H.G. Wright, Michael G. Morrow

CRC Press

444 pages | 175 Color Illus.

Purchasing Options:$ = USD
Hardback: 9781498781015
pub: 2017-01-27
SAVE ~$26.00
$130.00
$104.00
x
eBook (VitalSource) : 9781315365688
pub: 2016-12-19
from $65.00


FREE Standard Shipping!

Description

This updated edition gives readers hands-on experience in real-time DSP using a practical, step-by-step framework that also incorporates demonstrations, exercises, and problems, coupled with brief overviews of applicable theory and MATLAB applications. Organized in three sections that cover enduring fundamentals and present practical projects and invaluable appendices, this new edition provides support for the most recent and powerful of the inexpensive DSP development boards currently available from Texas Instruments: the OMAP-L138 LCDK. It includes two new real-time DSP projects, as well as three new appendices: an introduction to the Code Generation tools available with MATLAB, a guide on how to turn the LCDK into a portable battery-operated device, and a comparison of the three DSP boards directly supported by this edition.

Reviews

"Great text for moving students from theory to real-time implementation on the TI LCDK platform. What makes this book work so well is that it takes signal and systems students from their theory background and the mathematical modeling tool MATLAB, to real-time implementation in C. The specifics of the LCDK hardware platform (and older related platforms) are explain in intimate detail, making it very easy to get up and running in a short time (less than one class meeting). In summary this 3rd edition carrier in the tradition set by the previous editions by providing updated content via new chapters and updated coverage of the newer LCDK hardware platform. Universities using MATLAB and the LCDK should not hesitate to move on to the third edition of this well written text."

— Mark Wickert, University of Colorado, USA

"I use this as one of the texts in a DSP course in an engineering technology program. As engineering technology focuses on the hands-on application of technology, this textbook is invaluable to teaching students the practical issues of programming DSP hardware. The provided software and instructions are excellent and I am able to getting students working with DSP hardware the first week of the course."

Erik Mayer, Pittsburg State University, USA

"The book covers all the relevant topics for a course on DSP in embedded systems and applications at the senior undergraduate and graduate level. It uses the latest DSP board. The Matlab programs described are very useful. The examples and projects described are very relevant to the current year."

Subramaniam Ganesan, Oakland University, USA

Table of Contents

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.2 Real-Time DSP

1.3 How to Use This Book

1.4 Get Started

1.5 Problems

2 Sampling and Reconstruction

2.1 Theory

2.2 winDSK Demonstration

2.3 Talk-Through Using Windows

2.4 Talk-Through Using MATLAB and Windows

2.5 DSK Implementation in C

2.6 Follow-On Challenges

2.7 Problems

3 FIR Digital Filters

3.1 Theory

3.2 winDSK Demonstration

3.3 MATLAB Implementation

3.4 DSK Implementation in C

3.5 Follow-On Challenges

3.6 Problems

4 IIR Digital Filters

4.1 Theory

4.2 winDSK Demonstration: Notch Filter Application

4.3 MATLAB Implementation

4.4 DSK Implementation in C

4.5 Follow-On Challenges

4.6 Problems

5 Periodic Signal Generation

5.1 Theory

5.2 winDSK Demonstration

5.3 MATLAB Implementation

5.4 DSK Implementation in C

5.5 Pseudonoise Sequences

5.6 Follow-On Challenges

5.7 Problems

6 Frame-Based DSP

6.1 Theory

6.2 winDSK Demonstration

6.3 MATLAB Implementation

6.4 DSK Implementation in C

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.5 Follow-On Challenges

7.6 Problems

8 The Fast Fourier Transform

8.1 Theory

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.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.3 winDSK Demonstration

10.4 MATLAB Implementation

10.5 DSK Implementation in C

10.6 Follow-On Challenges

11 Project 2: Graphic Equalizer

11.1 Theory

11.2 winDSK Demonstration

11.3 MATLAB Implementation

11.4 DSK Implementation in C

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.5 Follow-On Challenges

14 Project 5: Adaptive Filters

14.1 Theory

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.4 DSK Implementation in C

17.5 Follow-On Challenges

18 Project 9: BPSK Digital Transmitters

18.1 Theory

18.2 winDSK Demonstration

18.3 MATLAB Implementation

18.4 DSK Implementation in C

18.5 Follow-On Challenges

19 Project 10: BPSK Digital Receivers

19.1 Theory

19.2 winDSK Demonstration

19.3 MATLAB Implementation

19.4 DSK Implementation in C

19.5 Follow-On Challenges

20 Project 11: MPSK and QAM Digital Transmitters

20.1 Theory

20.2 winDSK Demonstration

20.3 MATLAB Implementation

20.4 DSK Implementation in C

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.4 DSK Implementation in C

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.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.2 TMS320C671x Architecture

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.4 MATLAB Real-Time Interface

F Using the Code Generator with MATLAB

F.1 Introduction

F.2 An FIR Filter Example

F.3 Conclusion

G Battery Power for the DSP Boards

G.1 Introduction

G.2 Method

G.3 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

About the Authors

Thad B. Welch, Ph.D., P.E., is a Professor and past Chair of the Department of Electrical and Computer Engineering at Boise State University. He previously taught in the Department of Electrical and Computer Engineering at both the U.S. Naval Academy (USNA) and the U.S. Air Force Academy (USAFA). A retired Commander in the U.S. Navy, he was the inaugural 2011 SPEN Fellow. Additionally, he won the 2001 ECE Outstanding Educator Award, the 2002 Raouf Award for Excellence in the Teaching of Engineering, the John A. Curtis Lecture Award from the Computers in Education Division of ASEE in 1998, 2005, and 2010, the 2003 ECE Outstanding Researcher Award at USNA, and the 1997 Clements Outstanding Educator Award at USAFA. Dr. Welch is the former Chair and a founding member of the Technical Committee on Signal Processing Education for the Institute of Electrical and Electronic Engineers (IEEE) Signal Processing Society. He is a senior member of the IEEE and a member of the American Society for Engineering Education (ASEE), Tau Beta Pi (the engineering honor society), and Eta Kappa Nu (the electrical engineering honor society).

Cameron H. G. Wright, Ph.D., P.E., is a Professor in the Department of Electrical and Computer Engineering at the University of Wyoming. He previously taught at the U.S. Air Force Academy (USAFA) in the Department of Electrical Engineering, where he was a Professor and Deputy Department Head. A retired Lieutenant Colonel in the U.S. Air Force, he won the Brigadier General R. E. Thomas Award for Outstanding Contributions to Cadet Education in 1992 and 1993. In 2005 and 2008, he won the IEEE Student Choice Award for Outstanding Professor of the Year, the Mortar Board "Top Prof" Award at the University of Wyoming in 2005, 2007, and 2015, the Outstanding Teaching Award from the ASEE Rocky Mountain Section in 2007, the John A. Curtis Lecture Award from the Computers in Education Division of ASEE in 1998, 2005, and 2010, the Tau Beta Pi WY-A chapter Undergraduate Teaching Award in 2011, and the University of Wyoming Ellbogen Meritorious Classroom Teaching Award in 2012. Dr. Wright is a founding member of the Technical Committee on Signal Processing Education for the IEEE Signal Processing Society, a senior member of the IEEE, and a member of ASEE, the National Society of Professional Engineers, the Biomedical Engineering Society, SPIE (The International Society of Optical Engineering), Tau Beta Pi, and Eta Kappa Nu.

Michael G. Morrow, M.Eng.E.E., P.E., is a Faculty Associate in the Department of Electrical and Computer Engineering at the University of Wisconsin-Madison. A retired Lieutenant Commander in the U.S. Navy, he previously taught in the Electrical and Computer Engineering Department at the U.S. Naval Academy and in the Department of Electrical and Computer Engineering at Boise State University. Mr. Morrow won both the 2002 Department of Electrical and Computer Engineering Outstanding Educator Award and the 2003 Gerald Holdridge Teaching Excellence Award at the University of Wisconsin-Madison. He is the founder and president of Educational DSP (eDSP), LLC, a company devoted to the development of affordable DSP solutions for educators and students worldwide. He is a member of the Technical Committee on Signal Processing Education for the Institute of Electrical and Electronic Engineers (IEEE) Signal Processing Society, a senior member of the IEEE, and a member of the American Society for Engineering Education (ASEE).

Subject Categories

BISAC Subject Codes/Headings:
COM059000
COMPUTERS / Computer Engineering
TEC007000
TECHNOLOGY & ENGINEERING / Electrical
TEC061000
TECHNOLOGY & ENGINEERING / Mobile & Wireless Communications