Admin مدير المنتدى


عدد المساهمات : 18039 التقييم : 32911 تاريخ التسجيل : 01/07/2009 الدولة : مصر العمل : مدير منتدى هندسة الإنتاج والتصميم الميكانيكى
 | موضوع: كتاب Real-Time Digital Signal Processing from MATLAB to C with the TMS320C6x DSPs الأربعاء 03 نوفمبر 2021, 12:22 am | |
| 
أخواني في الله أحضرت لكم كتاب Real-Time Digital Signal Processing from MATLAB to C with the TMS320C6x DSPs Thad B. Welch Boise State University, Boise, ID, USA Cameron H.G. Wright University of Wyoming, Laramie, WY, USA Michael G. Morrow University of Wisconsin, Madison, USA
 و المحتوى كما يلي :
Contents List of Figures xix List of Tables xxv List of Program Listings xxvii Preface xxxi Acknowledgments xxxv Section I: Enduring Fundamentals 1 1 Introduction and Organization 3 1.1 Why Do You Need This Book? . 3 1.1.1 Other DSP Books 3 1.1.2 Demos and DSP Hardware . 4 1.1.3 Philosophy of This Book . 4 1.2 Real-Time DSP 5 1.3 How to Use This Book 5 1.3.1 Supported Boards 6 1.3.2 Host Computer to DSP Board Communication 9 1.3.3 Transition to Real-Time . 11 1.3.4 Chapter Coverage 12 1.3.5 Hardware and Software Installation 13 1.3.6 Reading Program Listings 14 1.4 Get Started 14 1.5 Problems . 14 2 Sampling and Reconstruction 17 2.1 Theory . 17 2.1.1 Choosing a Sampling Frequency 17 2.1.2 Input/Output Issues: Samples or Frames? . 17 2.1.3 The Talk-Through Concept . 18 2.2 winDSK Demonstration . 18 2.2.1 Starting winDSK . 18 2.2.2 Talk-Thru Application 18 2.3 Talk-Through Using Windows 21 2.4 Talk-Through Using MATLAB and Windows . 24 2.4.1 Talk-Through Using MATLAB Only 26 xixii CONTENTS 2.4.2 Talk-Through Using MATLAB and the DSK . 28 2.5 DSK Implementation in C 29 2.6 Follow-On Challenges 31 2.7 Problems . 31 3 FIR Digital Filters 33 3.1 Theory . 33 3.1.1 Traditional Notation . 33 3.1.2 FIR Filters Compared to IIR Filters 34 3.1.3 Calculating the Output of a Filter . 34 3.2 winDSK Demonstration . 36 3.2.1 Graphic Equalizer Application . 36 3.2.2 Notch Filter Application . 38 3.2.3 Audio Effects Application 39 3.3 MATLAB Implementation 41 3.3.1 Built-In Approach 41 3.3.2 Creating Your Own Filter Algorithm 45 3.4 DSK Implementation in C 46 3.4.1 Brute-Force FIR Filtering in C: Part 1 . 47 3.4.2 Brute-Force FIR Filtering in C: Part 2 . 49 3.4.3 Circular Buffered FIR Filtering . 51 3.5 Follow-On Challenges 54 3.6 Problems . 54 4 IIR Digital Filters 57 4.1 Theory . 57 4.2 winDSK Demonstration: Notch Filter Application 60 4.3 MATLAB Implementation 62 4.3.1 Filter Design and Analysis 62 4.3.2 IIR Filter Notation 72 4.3.3 Block Diagrams 73 4.3.4 Built-In Approach 80 4.3.5 Creating Your Own Filter Algorithm 80 4.4 DSK Implementation in C 82 4.4.1 Brute-Force IIR Filtering 82 4.4.2 More Efficient IIR Filtering . 83 4.5 Follow-On Challenges 84 4.6 Problems . 84 5 Periodic Signal Generation 85 5.1 Theory . 85 5.1.1 Periodic Signals in DSP . 85 5.1.2 Signal Generation 87 5.2 winDSK Demonstration . 94 5.2.1 Arbitrary Waveform . 94 5.2.2 DTMF . 95 5.3 MATLAB Implementation 96 5.3.1 Direct Digital Synthesizer Technique 96 5.3.2 Table Lookup Technique . 97 5.4 DSK Implementation in C 98 5.4.1 Direct Digital Synthesizer Technique 98CONTENTS xiii 5.4.2 Table Lookup Technique . 100 5.4.3 Table Lookup Technique with Table Creation . 101 5.4.4 Digital Resonator Technique 102 5.5 Pseudonoise Sequences 104 5.5.1 Theory 105 5.5.2 winDSK Demonstration . 109 5.5.3 MATLAB Implementation 109 5.5.4 DSK Implementation in C 114 5.6 Follow-On Challenges 120 5.7 Problems . 120 6 Frame-Based DSP 123 6.1 Theory . 123 6.1.1 Drawbacks of Sample-Based DSP 123 6.1.2 What Is a Frame? 124 6.2 winDSK Demonstration . 125 6.3 MATLAB Implementation 126 6.4 DSK Implementation in C 127 6.4.1 Triple Buffering 128 6.4.2 A Frame-Based DSP Example . 129 6.4.3 Using Direct Memory Access 132 6.5 Summary of Frame-Based Processing 140 6.6 Follow-On Challenges 141 6.7 Problems . 141 7 Digital Filters Using Frames 143 7.1 Theory . 143 7.2 winDSK Demonstration . 143 7.3 MATLAB Implementation 143 7.4 DSK Implementation in C 143 7.4.1 Understanding the FIR Process for Frames 144 7.4.2 How to Avoid the “Edge” Problems 145 7.4.3 Explanation of the C Code . 145 7.5 Follow-On Challenges 147 7.6 Problems . 148 8 The Fast Fourier Transform 149 8.1 Theory . 149 8.1.1 Defining the FFT . 149 8.1.2 The Twiddle Factors . 149 8.1.3 The FFT Process . 150 8.1.4 Bit-Reversed Addressing . 153 8.1.5 Using the FFT for Filtering . 153 8.1.6 Avoiding Circular Convolution . 154 8.1.7 Real-Time Fast Convolution . 156 8.2 winDSK Demonstration . 159 8.3 MATLAB Implementation 159 8.4 Implementation in C . 159 8.5 Follow-On Challenges 162 8.6 Problems . 163xiv CONTENTS 9 Spectral Analysis and Windowing 165 9.1 Theory . 165 9.1.1 Power Spectrum of a Signal . 165 9.1.2 The Need for Windowing 167 9.1.3 Window Characteristics . 169 9.2 winDSK Demonstration . 172 9.3 MATLAB Implementation 174 9.4 DSK Implementation in C 176 9.5 Conclusion 176 9.6 Follow-On Challenges 176 9.7 Problems . 177 Section II: Projects 179 10 Project 1: Guitar Special Effects 181 10.1 Introduction to Projects . 181 10.2 Theory . 181 10.2.1 Background 181 10.2.2 How the Effects Work 182 10.3 winDSK Demonstration . 194 10.4 MATLAB Implementation 194 10.4.1 FIR Comb Filter . 194 10.4.2 IIR Comb Filter . 196 10.4.3 Notch Filter 197 10.4.4 Flanger 198 10.4.5 Tremelo 199 10.5 DSK Implementation in C 200 10.5.1 Real-Time Comb Filters . 200 10.5.2 Other Real-Time Special Effects 203 10.6 Follow-On Challenges 203 11 Project 2: Graphic Equalizer 205 11.1 Theory . 205 11.2 winDSK Demonstration . 206 11.2.1 Graphic Equalizer Application . 206 11.2.2 Effect of the Graphic Equalizer . 207 11.3 MATLAB Implementation 208 11.4 DSK Implementation in C 211 11.4.1 Applying Gain to Filter Bands . 211 11.4.2 GEL File Slider Control . 212 11.5 Follow-On Challenges 213 12 Project 3: Second-Order Sections 215 12.1 Theory . 215 12.2 winDSK Demonstration: Notch Filter Application 219 12.3 MATLAB Implementation 219 12.4 DSK Implementation in C 220 12.4.1 Example SOS Code . 221 12.5 Points to Ponder . 222 12.6 Follow-On Challenges 222CONTENTS xv 13 Project 4: Peak Program Meter 225 13.1 Theory . 225 13.2 winDSK Demonstration: commDSK 226 13.3 MATLAB Implementation 226 13.4 DSK Implementation in C 227 13.4.1 Example PPM Code . 227 13.4.2 DSK LED Control 229 13.4.3 Another PPM Code Version . 229 13.5 Follow-On Challenges 230 14 Project 5: Adaptive Filters 231 14.1 Theory . 231 14.1.1 A Problem Solved by Adaptive Filters . 231 14.1.2 The LMS Adpative Filter 233 14.2 winDSK8 Demonstration 234 14.3 MATLAB Implementation 234 14.4 DSK Implementation in C 237 14.5 Follow-On Challenges 238 15 Project 6: AM Transmitters 241 15.1 Theory . 241 15.2 winDSK Demonstration . 244 15.3 MATLAB Implementation 244 15.4 DSK Implementation in C 246 15.5 Follow-On Challenges 248 16 Project 7: AM Receivers 249 16.1 Theory . 249 16.1.1 Envelope Detector 250 16.1.2 The Hilbert-Based AM Receiver 256 16.2 winDSK Demonstration . 259 16.3 MATLAB Implementation 260 16.4 DSK Implementation in C 261 16.5 Follow-On Challenges 263 17 Project 8: Phase-Locked Loop 265 17.1 Theory . 265 17.2 winDSK Demonstration . 266 17.3 MATLAB Implementation 266 17.3.1 PLL Simulation 266 17.3.2 A Few Updates to the MATLAB Implementation . 272 17.4 DSK Implementation in C 275 17.4.1 Components of the PLL . 275 17.4.2 System Testing 278 17.5 Follow-On Challenges 278 18 Project 9: BPSK Digital Transmitters 281 18.1 Theory . 281 18.1.1 Random Data and Symbol Generation . 281 18.1.2 BPSK Using Antipodal Rectangularly Shaped Bits 283 18.1.3 BPSK Using Impulse Modulated Raised-Cosine Shaped Bits 283xvi CONTENTS 18.2 winDSK Demonstration . 284 18.2.1 commDSK: Unfiltered BPSK 285 18.2.2 commDSK: Raised-Cosine Filtered BPSK . 286 18.3 MATLAB Implementation 289 18.3.1 Rectangular Shaped BPSK Signal Generator . 290 18.3.2 Impulse Modulated Raised-Cosine BPSK Signal Generator . 291 18.4 DSK Implementation in C 295 18.4.1 A Rectangular Pulse Shaped BPSK Transmitter . 295 18.4.2 A Raised-Cosine Pulse Shaped BPSK Transmitter 296 18.4.3 Summary of Real-Time Code 298 18.5 Follow-On Challenges 298 19 Project 10: BPSK Digital Receivers 301 19.1 Theory . 301 19.1.1 The Output of the Matched Filter . 303 19.1.2 The Eye-Pattern . 304 19.1.3 Maximum Likelihood Timing Recovery 305 19.2 winDSK Demonstration . 307 19.3 MATLAB Implementation 308 19.4 DSK Implementation in C 311 19.4.1 Components of the Digital Receiver 311 19.4.2 System Testing 316 19.5 Follow-On Challenges 318 20 Project 11: MPSK and QAM Digital Transmitters 319 20.1 Theory . 319 20.1.1 I- and Q-Based Transmitters 319 20.1.2 A Few Constellation Diagrams . 321 20.2 winDSK Demonstration . 324 20.2.1 commDSK: Root-Raised-Cosine Filtered QPSK 325 20.3 MATLAB Implementation 328 20.3.1 Impulse Modulated Root-Raised-Cosine QPSK Signal Generator 328 20.4 DSK Implementation in C 332 20.4.1 A Root-Raised-Cosine Pulse Shaped QPSK Transmitter . 332 20.4.2 A More Efficient RRC Pulse Shaped QPSK Transmitter . 334 20.4.3 Summary of Real-Time Code 337 20.5 Higher-Order Modulation Schemes . 337 20.6 Follow-On Challenges 338 21 Project 12: QPSK Digital Receivers 339 21.1 Theory . 339 21.2 winDSK8 Demonstration 343 21.3 MATLAB Implementation 343 21.3.1 Through the AGC 343 21.3.2 A Complete QPSK Receiver . 346 21.4 DSK Implementation in C 351 21.4.1 Through the AGC 352 21.4.2 A Complete QPSK Receiver . 356 21.4.3 System Testing 362 21.5 Follow-On Challenges 364CONTENTS xvii Section III: Appendices 365 A Code Composer Studio: An Overview 367 A.1 Introduction 367 A.2 Starting Code Composer Studio . 367 A.3 Conclusion 368 B DSP/BIOS 371 B.1 Introduction 371 B.1.1 DSP/BIOS Major Features . 371 B.1.2 DSP/BIOS Threads . 371 B.2 DSP/BIOS Sample Projects . 372 C Numeric Representations 373 C.1 Endianness 373 C.2 Integer Representations . 374 C.3 Integer Division and Rounding . 375 C.4 Floating-Point Representations . 376 C.5 Fixed-Point Representations . 379 C.6 Summary of Numeric Representations . 380 D TMS320C6x Architecture 383 D.1 Computer Architecture Basics 383 D.1.1 Instruction Set Architecture . 384 D.1.2 Register Architectures 384 D.1.3 Memory Architectures 385 D.1.4 Fetch-Execute Model . 386 D.1.5 Pipelining . 386 D.1.6 Single- versus Multiple-Issue 389 D.1.7 Scheduling 389 D.2 TMS320C671x Architecture . 390 D.2.1 Memory System . 392 D.2.2 Pipeline and Scheduling . 393 D.2.3 Peripherals 394 D.2.4 Host Port Interface 394 D.3 TMS320C674x Architecture . 394 E Related Tools for DSKs 397 E.1 Introduction 397 E.2 Windows Control Applications . 397 E.2.1 Sample Windows Control Application . 398 E.3 MATLAB Exports 398 E.3.1 Exporting Direct-Form II Implementations 398 E.3.2 Exporting Second-Order Section Implementations 399 E.4 MATLAB Real-Time Interface . 400 F Using the Code Generator with MATLAB 401 F.1 Introduction 401 F.2 An FIR Filter Example . 401 F.2.1 Before Using the MATLAB Coder . 401 F.2.2 Using the MATLAB Coder . 403 F.2.3 Transferring to a CCS Project . 408xviii CONTENTS F.2.4 Observations . 409 F.3 Conclusion 409 G Battery Power for the DSP Boards 411 G.1 Introduction 411 G.2 Method 411 G.3 Testing 413 G.3.1 Initial testing . 413 G.3.2 Final testing . 413 G.4 Conclusion 413 H Programming Perils and Pitfalls 415 H.1 Debug versus Release Builds . 415 H.2 The Volatile Keyword 415 H.3 Function Prototypes and Return Types 416 H.4 Arithmetic Issues . 417 H.5 Controlling the Location of Variables in Memory . 418 H.6 Real-Time Schedule Failures . 419 H.7 Variable Initialization 420 H.8 Integer Data Sizes 421 I Comparison of DSP Boards 423 I.1 Introduction 423 I.2 Three Boards . 423 I.3 Conclusion 426 J Abbreviations, Acronyms, and Symbols 427 References 433 Index 44 Index accurate unit circle, 68 adaptive filter, 231 adaptive noise cancellation, 231 ADC, 7 additive white Gaussian noise, 339 aliasing, 17, 21 allpass filter, 183, 187 analog filter, 57 arbitrary waveform, 94 arbitrary waveform generator, 94 ARM926EJ-S, 384, 394 ARM9x RISC processor, 6 ASIC, 5 Audacity digital audio editor, 22 audio cable, 20 audio file formats *.m4a, 21 *.mp3, 21 *.wav, 21 *.wma, 21 audio files, 21 audioinfo command, 25 audioread command, 24 audiorecorder.m, 26 automatic gain control, 339 AWGN, 339 baseline drift, 217 bilinear transformation method, 59 biquadratic sections, 73 biquads, 73 bit-reversed addressing, 153 block, 124 block diagram, 73 BPSK, 281, 301 butterfly diagrams, 151 C6713 DSK, 6, 397 C6748 DSP, 6 cache, 392 cache memories, 385 caller ID, 85 CCS, 6, see Code Composer Studio CCS tutorial, 367 CD player, 18, 125 central processing unit, 383 chorus, 39, 181, 190 circular buffering, 52 circular convolution, 154 circular correlation, 108 circular memory, 52 CISC, see complex instruction set computer clipped, 20 Code Composer Studio, 5, 367, 415 debug build, 415 pragma, 419 release build, 415, 416 variable locations, 418 codec, 9 coefficient quantization, 215 comb filter, 183, 184, 186 commercial AM, 241 compiler intrinsic function, 132 compiler pragma, 130 complex instruction set computer, 384 complex numbers, 159 complex oscillator, 266 compression/expansion, 181 computer architecture, 383 convolution, 167 convolution integral, 35 convolution sum, 35 CPLD, 5 CPU, see central processing unit DAC, 9 DDS, 87 decimation-in-frequency, 151 decimation-in-time, 151 delay, 184 delay blocks, 35 derivative operation, 306 DFT, 149 difference equation, 72 441442 INDEX digital resonator, 87, 92 direct digital synthesizer, 87, 302 direct form I, 73 direct form II, 73 direct form II transpose, 73 direct memory access, 132, 144, 392, 394 discrete Fourier transform, 149 distorted, 20 DMA, see direct memory access DSP, 5 DSP Board Configuration panel, 13 DSP books, 3 DSP/BIOS HWI, 371 IDL, 372 PRD, 372 SWI, 372 TSK, 372 DTFT, 34 DTMF, 85, 95 DVD player, 125 dwell time, 227 ECG, 216, 232 echo, 181 edge effects, 144, 145 EDMA, see direct memory access EDMA event, 133, 134 effects box, 182 efficient real-time programming, 46 electric guitars, 181 electrocardiogram, 216, 232 endianness, 373 envelope detector, 250 envelope recovery, 254 equalization, 181 equalizer, 36, 205 equivalent filter, 206 error vector magnitude, 289, 328 Euler’s formula, 160 eye-pattern, 289, 304, 340 fast convolution, 153, 154 fast Fourier transform, 149, 165 FFT, 149, 165 Fibonacci implementation, 106 filter coefficients, 35 Filter Design and Analysis Tool, 70 filter order, 46 finite state machine, 105 FIR filter, 34 flanger, 181 flanging, 39, 189 floating-point, 376 Fourier transform, 33, 149 FPGA, 5 frame, 124, 143 frame size, 124, 130, 134 frame-based DSP, 124, 143 frame-based processing, 17 frequency resolution, 166 frequency translation, 181 fuzz, 181, 193 fuzzy, 20 Galois implementation, 106 general extension language, 203, 212 GPU, 11 group delay, 70 hard real-time, 5 Harvard architecture, 385 HDTV, 125 Hilbert transform, 257 Hilbert-based AM receiver, 256 histogram, 317 Host Interface Configuration panel, 13 Host Port Interface, 9, 394, 397 HostInterfaceData, 397 HPI, see Host Port Interface I-eye-pattern, 328 IEEE 754, 376 IIR filter, 57 impulse invariance method, 59 impulse modulation, 339 impulse modulator, 87, 283, 319 impulse response, 34 input circuitry, 30 integer representations, 374 interrupt service routines, 46 intersymbol interference, 284 Invert Spectrum, 20 JTAG, 6, 9 JTAG emulator, 7 LabVIEW, 12, 27 LCDK, 6 LED indication/warning, 227 LFSR, 105 line wrap, 14 linear convolution, 154INDEX 443 Linear Feedback Shift Register, 105 linear memory, 52 linear pulse code modulation, 23 local oscillator, 266 LPCM, 23 m-sequence, 105 main lobe width, 169 marginally stable system, 93 matched filter, 303 matched filters, 339 MATLAB, 3 maximal length sequence, 105 maximum likelihood, 301, 340 menu boxes, 203, 212 microphones, 181 Microsoft Windows, 9 mini-plug, 20 modular shift register generator, 106 moving average, 42 MP3 player, 18 MSRG, 106 multi-core processor, 6 noise gating, 181 nonparametric methods, 165 normalized radian frequency, 65 notch filter, 60, 184, 188 nuclear submarines, 126, 172 numeric precision, 216 numeric representation 2’s-complement, 374 dynamic range, 380 fixed-point, 379 floating-point, 376 numeric precision, 380 numeric range, 380 sign-magnitude, 374 signed integer, 374 unsigned integer, 374 numerically controlled oscillator, 302 OMAP-L138, 394 OMAP-L138 DSK, 397 OMAP-L138 LCDK, 6 optimization method, 60 oscilloscope function, 125 overlap-add, 156 overlap-save, 158 parallel form, 75, 76 parametric methods, 165 peak program meter, 225 periodic signal generation, 85 phase accumulator, 88 phase cancellation, 184 phase increment, 88 phase-locked loop, 265 phasing, 181, 190 ping pong buffers, 128 pipeline, 386 PN, 85, 104 PN code, 104 PN sequence, 104 poles, 60 power spectrum, 165 pragma DATA SECTION, 130 precision, 216 PSD, 108 pseudonoise, 85, 104 pseudonoise sequence, 104 PSK 8-PSK, 319 16-PSK, 319 32-PSK, 319 Q of a filter, 38, 60 Q-eye-pattern, 328 Q-number notation, 379 QAM, 319 16-QAM, 319 QPSK, 319, 339 quadrature amplitude modulation, 266, 324 quantization, 20 raised cosine filter, 298 random number generator, 282 real-time, 3 reciprocal spreading property, 167 rect function, 167 rectangular window, 167 reduced instruction set computer, 384 regeneration, 183 reverb, 181, 191 ring modulation, 181, 192 RISC, 6, see reduced instruction set computer root-raised-cosine, 301, 339 root-raised-cosine filter, 319, 334 sample frequency, 17 sample-based DSP, 123 sample-by-sample processing, 17444 INDEX sampling, 17 scheduling, 389 dynamic, 390 static, 390 second-order section, 215 second-order sections, 73 shift register, 105 shift register generator, 105 shift registers, 35 sidelobe level, 169 Signal Processing Toolbox, 62 simple shift register generator, 106 Simulink, 12, 27, 126 sinc function, 167 sliders, 203, 212 smoothing window, 167 SoC, 7 soft real-time, 5 sonar, 126, 172 Sophocles, 14 SOS, 73, 215 sound command, 24 sound files, 21 special effects, 182 spectral analysis, 165 spectral inversion, 20 spectrum analyzer, 165 spint, see compiler intrinsic function SRG, 105 SSRG, 106 stability, 60 subharmonic generation, 181 symbol synchronization, 340 symbol timing, 301 symmetric FIR filter, 184 system-on-chip, 7 table lookup, 97 talk-through, 18 theremin, 172 timing error detector, 303 timing recovery, 305, 340 TLV320AIC23, 9 TLV320AIC3106, 9 TMS320C6713, 394 TMS320C6748, 394 TMS320C67xx, 390 TMS320C6x, 383 trajectory/constellation diagram, 289, 328 tremelo, 181, 192 triple buffering, 128 truncation, 20 twiddle factors, 149 unstable filter, 77, 215 update rate, 124 vector signal analyzer, 289, 325 very-long instruction word, 390, 393 VLIW, 6, see very-long instruction word voltage-controlled oscillator, 266 volume unit, 225 Von Neumann architecture, 385 wandering baseline, 216 waterfall spectral display, 126, 172 wav-files, 21 Welch periodogram, 167 Wiener-Khintchine theorem, 108 window characteristics, 169 windows, 169 Bartlett, 169 Blackman, 169 Blackman-Harris, 169 Chebyshev, 169 Dolph, 169 Dolph-Chebyshev, 169 Hamming, 169 Hanning, 169 Kaiser, 169 rectangular, 169 triangular, 169 von Hann, 169 Windows applications, 397 winDSK main user interface, 18 winDSK8, 13 XDS-100v2, 7 zero padding, 154 Zoom OMAP-L138 Experimenter Kit, 6 #ماتلاب,#متلاب,#Matlab,
كلمة سر فك الضغط : books-world.net The Unzip Password : books-world.net أتمنى أن تستفيدوا من محتوى الموضوع وأن ينال إعجابكم رابط من موقع عالم الكتب لتنزيل كتاب Real-Time Digital Signal Processing from MATLAB to C with the TMS320C6x DSPs رابط مباشر لتنزيل كتاب Real-Time Digital Signal Processing from MATLAB to C with the TMS320C6x DSPs 
|
|