Synopses & Reviews
The Only DSP Book 100% Focused On Step-by-Step Design & Implementation of Real Devices & Systems in Hardware and Software
Practical Applications in Digital Signal Processing is the first DSP book to focus entirely on designing today's most important DSP applications and implementing them in hardware and software. Focusing on practical design knowledge rarely taught in the classroom, Richard Newbold gives engineering students, and entry-level
and experienced engineers the critical DSP design information they need to be effective.
Newbold flattens the steep learning curve typically associated with DSP, equipping engineers and students to produce system-level, hardware-level, and software-level designs without having to reinvent technical solutions already known to industry veterans. Drawing on decades of experience, he shares an extraordinary toolbox of proven circuits, procedures, algorithms, and techniques.
Newbold begins by carefully introducing today's essential mathematical tools for DSP system design, including digital frequency, complex variables, Fourier transforms, and Z-transforms, as well as hardware and software used to implement these designs. Next, he presents complete tutorials on designing and developing nine complete applications– each of them illustrated with detailed diagrams and thoroughly annotated figures. Newbold concludes by demonstrating how to write mixed-language C/C++ FORTRAN programs that leverage your organization's treasure chest of proven code.
Applications covered include
· Finite Impulse Response (FIR) digital filtering, including CAD methodologies based on Parks McClellan Optimal Filter Design
· Multirate FIR filter design via polyphase, half-band, and CIC filters
· Converting complex to real signals for digital radio and other applications
· Digital frequency synthesis using programmable Numerically Controlled Oscillators (NCOs)
· Signal tuning in both continuous analog and discrete digital domains
· Elastic store memory interfaces between processing systems or data streams with asynchronous data rates
· Digital Data Locked Loop (DLL) design for de-multiplexing and synthesis
· Channelized filter banks (transmultiplexers) for FDM/TDM conversion, mixing consoles, wideband scanners, and wideband intercept processing
· Type I and Type II digital Automatic Gain Control (dAGC)
Synopsis
The Only DSP Book 100% Focused on Step-by-Step Design and Implementation of Real Devices and Systems in Hardware and Software
Practical Applications in Digital Signal Processing is the first DSP title to address the area that even the excellent engineering textbooks of today tend to omit. This book fills a large portion of that omission by addressing circuits and system applications that most design engineers encounter in the modern signal processing industry.
This book includes original work in the areas of Digital Data Locked Loops (DLLs), Digital Automatic Gain Control (dAGC), and the design of fast elastic store memory used for synchronizing independently clocked asynchronous data bit streams. It also contains detailed design discussions on Cascaded Integrator Comb (CIC) filters, including the seldom-covered topic of bit pruning. Other topics not extensively covered in other modern textbooks, but detailed here, include analog and digital signal tuning, complex-to-real conversion, the design of digital channelizers, and the techniques of digital frequency synthesis. This book also contains an appendix devoted to the techniques of writing mixed-language C\C++ Fortran programs. Finally, this book contains very extensive review material covering important engineering mathematical tools such as the Fourier series, the Fourier transform, the z transform, and complex variables.
Features of this book include
• Thorough coverage of the complex-to-real conversion of digital signals
• A complete tutorial on digital frequency synthesis
• Lengthy discussion of analog and digital tuning and signal translation
• Detailed coverage of the design of elastic store memory
• A comprehensive study of the design of digital data locked loops
• Complete coverage of the design of digital channelizers
• A detailed treatment on the design of digital automatic gain control
• Detailed techniques for the design of digital and multirate filters
• Extensive coverage of the CIC filter, including the topic of bit pruning
• An extensive review of complex variables
• An extensive review of the Fourier series, and continuous and discrete Fourier transforms
• An extensive review of the z transform
About the Author
Richard Newbold received B.S.E.E and M.S.E.E degrees in 1974 and 1978, respectively, and has spent more than thirty years as a digital hardware design engineer and as a self-taught software designer. His design experience includes special-purpose signal processing hardware and computers that process real-time wideband signals, direct sequence spread spectrum system processors, PCM multirate processing systems, high-speed signal processing systems implemented on special purpose Gallium Arsenide ASICS, transmultiplexers, channelizers, multirate filters, tuners, frequency synthesizers, data lock loops, SDH demultiplexers, fractional re-samplers, adaptive filters, elastic store memories, adaptive beam forming, asynchronous clock recovery, and fault tolerant signal processors. His software experience includes real-time signal processing, bit-level hardware simulations, microcode and bit slice programming, assembly programming, FORTRAN, C/C++, and Microsoft Windows graphics oriented test stations that were used to bit level simulate, graphically display, and to verify the proper operation of his digital creations.
Table of Contents
Preface xiii
Acknowledgments xxi
About the Author xxiii
Chapter 1: Review of Digital Frequency 1
1.1 Definitions 2
1.2 Defining Digital Frequencies 2
1.3 Mathematical Representation of Digital Frequencies 9
1.4 Normalized Frequency 12
1.5 Representation of Digital Frequencies 13
Chapter 2: Review of Complex Variables 15
2.1 Cartesian Form of Complex Numbers 17
2.2 Polar Form of Complex Numbers 21
2.3 Roots of Complex Numbers 27
2.4 Absolute Value of Complex Numbers 35
2.5 Exponential Form of Complex Numbers 36
2.6 Graphs of the Complex Variable z 38
2.7 Limits 40
2.8 Analytic Functions 41
2.9 Singularity 42
2.10 Entire Functions 42
2.11 The Complex Number 42
2.12 Complex Differentiation 43
2.13 Cauchy-Riemann Equations 47
2.14 Simply Connected Region 51
2.15 Contours 51
2.16 Line Integrals 52
2.17 Real Line Integrals 54
2.18 Complex Line Integrals 84
2.19 Cauchy’s Theorem 96
2.20 Table of Common Integrals 109
2.21 Cauchy’s Integral 109
2.22 Residue Theory 120
2.23 References 127
Chapter 3: Review of the Fourier Transform 129
3.1 A Brief Review of the Fourier Series 129
3.2 A Brief Review of the Fourier Transform 157
3.3 Review of the Discrete Fourier Transform (DFT) 187
3.4 DFT Processing Gain 254
3.5 Example DFT Signal Processing Application 261
3.6 Discrete Time Fourier Transform (DTFT) 263
3.7 Fast Fourier Transform (FFT) 267
3.8 References 268
Chapter 4: Review of the Z-Transform 271
4.1 Complex Number Representation 271
4.2 Mechanics of the Z-Transform 274
4.3 Left-Sided Z-Transform 277
4.4 Right-Sided Z-Transform 278
4.5 Two-Sided Z-Transform 278
4.6 Convergence of the Z-Transform 279
4.7 System Stability 290
4.8 Properties of the Z-Transform 292
4.9 Common Z-Transform Pairs 304
4.10 Inverse Z-Transform 308
4.11 Pole and Zero Standard Form Plug-In Equations 334
4.12 Applications of the Z-Transform 350
4.13 Summary of Useful Equations 380
4.14 References 381
Chapter 5: Finite Impulse Response Digital Filtering 383
5.1 Review of Digital FIR Filters 384
5.2 Parks-McClellan Method of FIR Filter Design 392
5.3 PM Implementation of Half Band Filters 425
5.4 References 433
Chapter 6: Multirate Finite Impulse Response Filter Design 435
6.1 Poly Phase Filter (PPF) 436
6.2 Half Band Filter 465
6.3 Cascaded Integrator Comb (CIC) Filter 470
6.4 References 531
Chapter 7: Complex to Real Conversion 533
7.1 A Typical Digital Signal Processing (DSP) System 534
7.2 Conversion of a Complex Signal to a Real Signal 540
7.3 Complex to Real Simulation Results 560
7.4 Reference 573
Chapter 8: Digital Frequency Synthesis 575
8.1 Numerically Controlled Oscillator (NCO) 575
8.2 Enhanced NCO Phase Accumulator 608
8.3 NCO Synthesized Output Frequency Error 613
8.4 Adding a Programmable Phase Offset to the NCO Output 622
8.5 Design of an Industry-Grade NCO 628
8.6 NCO Phase Dither 641
8.7 References 644
Chapter 9: Signal Tuning 645
9.1 Continuous Time (Analog) Fourier Transform 647
9.2 Discrete Time (Digital) Fourier Transform 689
9.3 Useful Equations 754
9.4 References 759
Chapter 10: Elastic Store Memory 761
10.1 Example Application of an Elastic Store Memory 762
10.2 PCM Multiplexing Hierarchy 763
10.3 DS-1C Multiplexer Design Overview 768
10.4 Design of the Elastic Store Memory 774
10.5 Hardware Implementation of the Elastic Store Memory 792
10.6 Overall DS-1C Multiplexer Design Block Diagram 801
10.7 Additional Information 803
10.8 References 805
Chapter 11: Digital Data Locked Loops 807
11.1 Digital Data Locked Design 808
11.2 Digital Data Locked Steady State Behavior 829
11.3 Digital Data Locked Transient Behavior 834
11.4 Data Locked Loop Bit-Level Simulation 845
11.5 Engineering Note 869
11.6 Summary of Useful Equations 869
11.7 References 871
Chapter 12: Channelized Filter Bank 873
12.1 Introductory Description 873
12.2 Channelizer Functional Overview 877
12.3 Channelizer Detailed Design Concepts 919
12.4 Channelizer Software Simulation Results 962
12.5 Channelizer Hardware Design Example 967
12.6 Summary of Useful Equations 974
12.7 References 975
Chapter 13: Digital Automatic Gain Control 977
13.1 Design of a Type I RMS AGC Circuit 981
13.2 Design of a Type II RMS AGC Circuit 1044
13.3 References 1047
Appendix A: Mixed Language C/C++ FORTRAN Programming 1049
A.1 Writing a C/C++ Main Program 1051
A.2 Calling Subroutines and Functions from a C/C++ Main 1051
A.3 Writing a FORTRAN Subroutine 1054
A.4 Writing a FORTRAN Function 1055
A.5 Passing Integer Arguments 1055
A.6 Passing Floating Point Arguments 1057
A.7 Passing Array Arguments 1059
A.8 Passing Pointer Arguments 1060
A.9 Compile/Link Mixed Language C/C++ FORTRAN Programs 1063
A.10 Parks-McClellan FORTRAN Subroutine Called from C Main 1064
A.11 References 1091
Index 1093