streamlining digital signal processing
TRANSCRIPT
Streamlining Digital Signal Processing A Tricks of the Trade Guidebook
Edited by
Richard G. Lyons Besser Associates Mountain View, California
IEEE PRESS
3 I C E N T E N N I A L
1 8 O 7
©WILEY 2 O O 7
B I C E N T E N N I A L
WILEY-INTERSCIENCE A John Wiley & Sons, Inc., Publication
Contents
Preface xi
Contributors xiii
Part One Efficient Digital Filters
1. Lost Knowledge Refound: Sharpened FIR Filters 3
2. Quantized FIR Filter Design Using Compensating Zeros 11
3. Designing Nonstandard Filters with Differential Evolution 25
4. Designing HR Filters with a Given 3 dB Point 33
5. Filtering Tricks for FSK Demodulation 43
6. Reducing CIC Filter Complexity 51
7. Precise Filter Design 59
8. Turbocharging Interpolated FIR Filters 73
9. A Most Efficient Digital Filter: The Two-Path Recursive All-Pass Filter 85
vii
viii Contents
Part Two Signal and Spectrum Analysis Tricks
10. Fast, Accurate Frequency Estimators 107
11. Fast Algorithms for Computing Similarity Measures in
Signals 117
12. Efflcient Multi-tone Detection 127
13. Turning Overlap-Save into a Multiband, Mixing, Downsampling Filter Bank 135
14. Sliding Spectrum Analysis 145
Part Three Fast Function Approximation Algorithms
15. Another Contender in the Arctangent Race 161
16. High-Speed Square Root Algorithms 165
17. Function Approximation Using Polynomials 173
18. Efflcient Approximations for the Arctangent Function 187
19. A Differentiator with a Difference 199
Part Four Signal Generation Techniques
20. Recursive Discrete-Time Sinusoidal Oscillators 205
21. Direct Digital Synthesis: A Tool for Periodic Wave
Generation 223
22. Implementing a EA DAC in Fixed-Point Arithmetic 239
23. Efflcient 8-PSK/16-PSK Generation Using Distributed Arithmetic 247
Contents ix
Part Five Assorted High-Performance DSP Techniques
24. Frequency Response Compensation with DSP 267
25. Generating Rectangular Coordinates in Polar
Coordinate Order 277
26. The Swiss Army Knife of Digital Networks 283
27. JPEG2000—Choices and Trade-offs for Encoders 301
28. Using Shift Register Sequences 311
Index 319