93,99 €
Combines both the DSP principles and real-time implementations and applications, and now updated with the new eZdsp USB Stick, which is very low cost, portable and widely employed at many DSP labs.
Real-Time Digital Signal Processing introduces fundamental digital signal processing (DSP) principles and will be updated to include the latest DSP applications, introduce new software development tools and adjust the software design process to reflect the latest advances in the field. In the 3rd edition of the book, the key aspect of hands-on experiments will be enhanced to make the DSP principles more interesting and directly interact with the real-world applications. All of the programs will be carefully updated using the most recent version of software development tools and the new TMS320VC5505 eZdsp USB Stick for real-time experiments. Due to its lower cost and portability, the new software and hardware tools are now widely used in university labs and in commercial industrial companies to replace the older and more expensive generation. The new edition will have a renewed focus on real-time applications and will offer step-by-step hands-on experiments for a complete design cycle starting from floating-point C language program to fixed-point C implementation, code optimization using INTRINSICS, and mixed C-and-assembly programming on fixed-point DSP processors. This new methodology enables readers to concentrate on learning DSP fundamentals and innovative applications by relaxing the intensive programming efforts, namely, the traditional DSP assembly coding efforts. The book is organized into two parts; Part One introduces the digital signal processing principles and theories, and Part Two focuses on practical applications. The topics for the applications are the extensions of the theories in Part One with an emphasis placed on the hands-on experiments, systematic design and implementation approaches. The applications provided in the book are carefully chosen to reflect current advances of DSP that are of most relevance for the intended readership.
Includes supplementary material of program and data files for examples, applications, and experiments hosted on a companion website.
A valuable resource for Postgraduate students enrolled on DSP courses focused on DSP implementation & applications as well as Senior undergraduates studying DSP; engineers and programmers who need to learn and use DSP principles and development tools for their projects.
Sie lesen das E-Book in den Legimi-Apps auf:
Seitenzahl: 782
Veröffentlichungsjahr: 2013
Contents
Cover
Title Page
Copyright
Preface
Software Availability
Acknowledgments
Chapter 1: Introduction to Real-Time Digital Signal Processing
1.1 Basic Elements of Real-Time DSP Systems
1.2 Analog Interface
1.3 DSP Hardware
1.4 DSP System Design
1.5 Experiments and Program Examples
Exercises
References
Chapter 2: DSP Fundamentals and Implementation Considerations
2.1 Digital Signals and Systems
2.2 System Concepts
2.3 Introduction to Random Variables
2.4 Fixed-Point Representations and Quantization Effects
2.5 Overflow and Solutions
2.6 Experiments and Program Examples
Exercises
References
Chapter 3: Design and Implementation of FIR Filters
3.1 Introduction to FIR Filters
3.2 Design of FIR Filters
3.3 Implementation Considerations
3.4 Applications: Interpolation and Decimation Filters
3.5 Experiments and Program Examples
Exercises
References
Chapter 4: Design and Implementation of IIR Filters
4.1 Introduction
4.2 Design of IIR Filters
4.3 Realization of IIR Filters
4.4 Design of IIR Filters Using MATLAB®
4.5 Implementation Considerations
4.6 Practical Applications
4.7 Experiments and Program Examples
Exercises
References
Chapter 5: Frequency Analysis and the Discrete Fourier Transform
5.1 Fourier Series and Fourier Transform
5.2 Discrete Fourier Transform
5.3 Fast Fourier Transforms
5.4 Implementation Considerations
5.5 Practical Applications
5.6 Experiments and Program Examples
Exercises
References
Chapter 6: Adaptive Filtering
6.1 Introduction to Random Processes
6.2 Adaptive Filters
6.3 Performance Analysis
6.4 Implementation Considerations
6.5 Practical Applications
6.6 Experiments and Program Examples
Exercises
References
Chapter 7: Digital Signal Generation and Detection
7.1 Sine Wave Generators
7.2 Noise Generators
7.3 DTMF Generation and Detection
7.4 Experiments and Program Examples
Exercises
References
Chapter 8: Adaptive Echo Cancellation
8.1 Introduction to Line Echoes
8.2 Adaptive Line Echo Canceler
8.3 Practical Considerations
8.4 Double-Talk Effects and Solutions
8.5 Nonlinear Processor
8.6 Adaptive Acoustic Echo Cancellation
8.7 Experiments and Program Examples
Exercises
References
Chapter 9: Speech Signal Processing
9.1 Speech Coding Techniques
9.2 Speech Enhancement
9.3 VoIP Applications
9.4 Experiments and Program Examples
Exercises
References
Chapter 10: Audio Signal Processing
10.1 Introduction
10.2 Audio Coding
10.3 Audio Equalizers
10.4 Audio Effects
10.5 Experiments and Program Examples
Exercises
References
Chapter 11: Introduction to Digital Image Processing
11.1 Digital Images and Systems
11.2 Color Spaces
11.3 YCbCr Sub-sampled Color Space
11.4 Color Balance and Correction
11.5 Histogram Equalization
11.6 Image Filtering
11.7 Fast Convolution
11.8 Practical Applications
11.9 Experiments and Program Examples
Exercises
References
Appendix A: Some Useful Formulas and Definitions
A.1 Trigonometric Identities
A.2 Geometric Series
A.3 Complex Variables
A.4 Units of Power
References
Appendix B: Software Organization and List of Experiments
Appendix C: Introduction to the TMS320C55xx Digital Signal Processor
C.1 Introduction
C.2 TMS320C55xx Architecture
C.3 TMS320C55xx Addressing Modes
C.4 TMS320C55xx Assembly Language Programming
C.5 C Programming for TMS320C55xx
C.6 Mixed C and Assembly Programming
C.7 Experiments and Program Examples
References
Index
This edition first published in 2013
© 2013 John Wiley & Sons, Ltd
Registered office
John Wiley & Sons Ltd, The Atrium, Southern Gate, Chichester, West Sussex, PO19 8SQ, United Kingdom
For details of our global editorial offices, for customer services and for information about how to apply for permission to reuse the copyright material in this book please see our website at www.wiley.com.
The right of the author to be identified as the author of this work has been asserted in accordance with the Copyright, Designs and Patents Act 1988.
All rights reserved. No part of this publication may be reproduced, stored in a retrieval system, or transmitted, in any form or by any means, electronic, mechanical, photocopying, recording or otherwise, except as permitted by the UK Copyright, Designs and Patents Act 1988, without the prior permission of the publisher.
Wiley also publishes its books in a variety of electronic formats. Some content that appears in print may not be available in electronic books.
Designations used by companies to distinguish their products are often claimed as trademarks. All brand names and product names used in this book are trade names, service marks, trademarks or registered trademarks of their respective owners. The publisher is not associated with any product or vendor mentioned in this book
Limit of Liability/Disclaimer of Warranty: While the publisher and author have used their best efforts in preparing this book, they make no representations or warranties with respect to the accuracy or completeness of the contents of this book and specifically disclaim any implied warranties of merchantability or fitness for a particular purpose. It is sold on the understanding that the publisher is not engaged in rendering professional services and neither the publisher nor the author shall be liable for damages arising herefrom. If professional advice or other expert assistance is required, the services of a competent professional should be sought.
MATLAB® is a trademark of The MathWorks, Inc. and is used with permission. The MathWorks does not warrant the accuracy of the text or exercises in this book. This book's use or discussion of MATLAB® software or related products does not constitute endorsement or sponsorship by The MathWorks of a particular pedagogical approach or particular use of the MATLAB® software.
Library of Congress Cataloging-in-Publication
Kuo, Sen M. (Sen-Maw)
Real-time digital signal processing : implementations and applications / Sen M. Kuo, Bob H. Lee, Wenshun Tian. – Third edition.
pages cm
Includes bibliographical references and index.
ISBN 978-1-118-41432-3 (hardback)
1. Signal processing–Digital techniques. 2. Texas Instruments TMS320 series microprocessors. I. Lee, Bob H. II. Tian, Wenshun. III. Title.
TK5102.9.K86 2013
621.382′2–dc23
2013018929
A catalogue record for this book is available from the British Library.
ISBN: 978-1-118-41432-3
Preface
In recent years, real-time digital signal processing (DSP) using general-purpose DSP processors has provided an effective way to design and implement DSP systems for practical applications. Many companies are actively engaged in real-time DSP research for developing new applications. The study of real-time DSP applications has been and will continue to be a challenging field for students, engineers, and researchers. It is important to master not only the theory, but also the skill of system design and implementation techniques.
Since the publication of the first edition of the book entitled Real-Time Digital Signal Processing in 2001 and the second edition in 2006, the use of digital signal processors has penetrated into a much wider range of applications. This has led to curriculum changes in many universities to offer new real-time DSP courses that focus on implementations and applications, as well as enhancing the traditional theoretical lectures with hands-on real-time experiments. In the meantime, advances in new processors and development tools constantly demand up-to-date books in order to keep up with the rapid evolution of DSP developments, applications, and software updates. We intend with the third edition of this book to integrate the theory, design, applications, and implementations using hands-on experiments for the effective learning of real-time DSP technologies.
This book presents fundamental DSP principles along with many MATLAB® examples and emphasizes real-time applications using hands-on experiments. The book is designed to be used as a textbook for senior undergraduate/graduate students. The prerequisites for this book are concepts of signals and systems, basic microprocessor architecture, and MATLAB® and C programming. These topics are usually covered at the sophomore and junior levels in electrical and computer engineering, computer science, and other related science and engineering fields. This book can also serve as a reference for engineers, algorithm developers, and embedded system designers and programmers to learn DSP principles and implementation techniques for developing practical applications. We use a hands-on approach by conducting experiments and evaluating the results in order to help readers to understand the principles behind complicated theories. A list of textbooks and technical papers with mathematical proofs are provided as references at the end of each chapter for those who are interested in going beyond the coverage of this book.
The major aims and changes for this third edition are summarized as follows:
Many DSP algorithms and applications are available in MATLAB® and floating-point C programs. This book provides a systematic software development process for converting these programs to fixed-point C and optimizing them for implementation on fixed-point processors. To effectively illustrate DSP principles and applications, MATLAB® is used for the demonstration, design, and analysis of algorithms. This development stage is followed by floating-point and fixed-point C programming for implementing DSP algorithms. Finally, we integrate the CCS with the C5505 eZdsp for hands-on experiments. To utilize the advanced architecture and instruction set for efficient software development and maintenance, we emphasize using mixed C and assembly programs for real-time applications.
This book is organized into two parts: principles and applications. The first part (Chapters 1–6) introduces DSP principles, algorithms, analysis methods, and implementation considerations. Chapter 1 reviews the fundamentals of real-time DSP functional blocks, DSP hardware options, fixed- and floating-point DSP devices, real-time constraints, and algorithm and software development processes. Chapter 2 presents fundamental DSP concepts and practical considerations for the implementation of DSP algorithms. The theory, design, analysis, implementation, and application of finite impulse response and infinite impulse response filters are presented in Chapters 3 and 4, respectively. The concepts and considerations of using the discrete Fourier transform for frequency analysis, and the implementation and application of the fast Fourier transform, are introduced in Chapter 5. Basic principles of adaptive signal processing with many practical considerations for applications are presented in Chapter 6.
The second part (Chapters 7–11) introduces several important DSP applications that have played important roles in the realization of modern real-world systems and devices. These selected applications include digital signal generation and dual-tone multi-frequency (DTMF) detection in Chapter 7; adaptive echo cancellation especially for VoIP and hands-free phone applications in Chapter 8; speech processing algorithms including speech enhancement and coding techniques for mobile phones in Chapter 9; audio signal processing including audio effects, equalizers, and coding methods for portable players in Chapter 10; and image processing fundamentals for applications including JPEG2000 and fingerprints in Chapter 11. Finally, Appendix A summarizes some useful formulas used for the derivation of equations and solving exercise problems in the book, and Appendix C introduces the architecture and assembly programming of the TMS320C55xx for readers who are interested in these topics.
As with any book attempting to capture the state of the art at a given time, there will certainly be updates that are necessitated by the rapidly evolving developments in this dynamic field. We hope that this book can serve as a guide for what has already come and as an inspiration for what will follow.
This book utilizes various MATLAB®, floating-point and fixed-point C, and TMS320C55xx assembly programs in examples, experiments, and applications. These programs along with many data files are available in the companion software package from the Wiley website (http://www.wiley.com/go/kuo_dsp). The directory and the subdirectory structure and names of these software programs and data files are explained and listed in Appendix B. The software is required for conducting the experiments presented in the last section of each chapter and Appendix C, and can enhance the understanding of DSP principles. The software can also be modified to serve as prototypes for speeding up other practical uses.
Acknowledgments
We are grateful to Cathy Wicks and Gene Frantz of Texas Instruments, and to Naomi Fernandes and Courtney Esposito of MathWorks, for providing us with the support needed to write this book. We would like to thank several individuals at John Wiley & Sons, Ltd for their support of this project: Alexandra King, Commissioning Editor; Liz Wingett, Project Editor; and Richard Davies, Senior Project Editor. We would also like to thank the staff at John Wiley & Sons, Ltd for the final preparation of this book. Our thanks also go to Hui Tian for creating the special audio clips used in the examples and experiments. Finally, we thank our families for their endless love, encouragement, patience, and understanding they have shown since we began our work on the first edition in the late 1990s.
Sen M. Kuo, Bob H. Lee, and Wenshun Tian
1
Introduction to Real-Time Digital Signal Processing
Signals can be classified into three categories: continuous-time (analog) signals, discrete-time signals, and digital signals. The signals that we encounter daily are mostly analog signals. These signals are defined continuously in time, have infinite resolution of amplitude values, and can be processed using analog electronics containing both active and passive circuit elements. Discrete-time signals are defined only at a particular set of time instances, thus they can be represented as a sequence of numbers that have a continuous range of values. Digital signals have discrete values in both time and amplitude, thus they can be stored and processed by computers or digital hardware. In this book, we focus on the design, implementation, and applications of digital systems for processing digital signals [1–6]. However, the theoretical analysis usually uses discrete-time signals and systems for mathematical convenience. Therefore, we use the terms “discrete-time” and “digital” interchangeably.
Digital signal processing (DSP) is concerned with the digital representation of signals and the use of digital systems to analyze, modify, store, transmit, or extract information from these signals. In recent years, the rapid advancement in digital technologies has enabled the implementation of sophisticated DSP algorithms for real-time applications. DSP is now used not only in areas where analog methods were used previously, but also in areas where analog techniques are very difficult or impossible to apply.
There are many advantages in using digital techniques for signal processing rather than analog devices such as amplifiers, modulators, and filters. Some of the advantages of DSP systems over analog circuitry are summarized as follows:
With the rapid evolution in semiconductor technologies, DSP systems have lower overall cost compared to analog systems for most applications. DSP algorithms can be developed, analyzed, and simulated using high-level language software such as C and MATLAB®. The performance of the algorithms can be verified using low-cost, general-purpose computers. Therefore, DSP systems are relatively easy to design, develop, analyze, simulate, test, and maintain.
There are some limitations associated with DSP. For example, the bandwidth of a DSP system is limited by the sampling rate. Also, most of the DSP algorithms are implemented using a fixed number of bits with limited precision and dynamic range, resulting in undesired quantization and arithmetic errors.
There are two types of DSP applications: non-real-time and real-time. Non-real-time signal processing involves manipulating signals that have already been stored in digital form. This may or may not represent a current action, and the processing result is not a function of real time. Real-time signal processing places stringent demands on DSP hardware and software design to complete predefined tasks within a given timeframe. This section reviews the fundamental functional blocks of real-time DSP systems.
The basic functional blocks of DSP systems are illustrated in Figure 1.1, where a real-world analog signal is converted to a digital signal, processed by DSP hardware, and converted back to an analog signal. For some applications, the input signal may be already in digital form and/or the output data may not need to be converted to an analog signal, for example, the processed digital information may be stored in memory for later use. In other applications, DSP systems may be required to generate signals digitally, such as speech synthesis and signal generators.
Figure 1.1 Basic functional block diagram of a real-time DSP system
In this book, a time-domain signal is denoted with a lowercase letter. For example, x (t) in Figure 1.1 is used to name an analog signal of x which is a function of time t. The time variable t and the amplitude of x (t) take on a continuum of values between −∞ and ∞. For this reason we say x (t) and y (t) are continuous-time (or analog) signals. The signals x (n) and y (n) in Figure 1.1 depict digital signals which have values only at time instant (or index) n. In this section, we first discuss how to convert analog signals into digital signals. The process of converting an analog signal to a digital signal is called the analog-to-digital (A/D) conversion, usually performed by an A/D converter (ADC).
Lesen Sie weiter in der vollständigen Ausgabe!
Lesen Sie weiter in der vollständigen Ausgabe!
Lesen Sie weiter in der vollständigen Ausgabe!
Lesen Sie weiter in der vollständigen Ausgabe!
Lesen Sie weiter in der vollständigen Ausgabe!
Lesen Sie weiter in der vollständigen Ausgabe!
Lesen Sie weiter in der vollständigen Ausgabe!
Lesen Sie weiter in der vollständigen Ausgabe!
Lesen Sie weiter in der vollständigen Ausgabe!
Lesen Sie weiter in der vollständigen Ausgabe!
Lesen Sie weiter in der vollständigen Ausgabe!
Lesen Sie weiter in der vollständigen Ausgabe!
Lesen Sie weiter in der vollständigen Ausgabe!
Lesen Sie weiter in der vollständigen Ausgabe!
