Real-Time Digital Signal Processing - Sen M. Kuo - E-Book

Real-Time Digital Signal Processing E-Book

Sen M. Kuo

0,0
93,99 €

oder
-100%
Sammeln Sie Punkte in unserem Gutscheinprogramm und kaufen Sie E-Books und Hörbücher mit bis zu 100% Rabatt.

Mehr erfahren.
Beschreibung

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.

  • Combines both the DSP principles and real-time implementations and applications using the new eZdsp USB Stick, which is very low cost, portable and widely employed at many DSP labs is now used in the new edition
  • Places renewed emphasis on C-code experiments and reduces the exercises using assembly coding; effective use of C programming, fixed-point C code and INTRINSICS will become the main focus of the new edition.
  • Updates to application areas to reflect latest advances such as speech coding techniques used for next generation networks (NGN), audio coding with surrounding sound, wideband speech codec (ITU G.722.2 Standard), fingerprint for image processing, and biomedical signal processing examples.
  • Contains new addition of several projects that can be used as semester projects; as well as new many new real-time experiments using TI’s binary libraries – the experiments are prepared with flexible interface and modular for readers to adapt and modify to create other useful applications from the provided basic programs.
  • Consists of more MATLAB experiments, such as filter design, algorithm evaluation, proto-typing for C-code architecture, and simulations to aid readers to learn DSP fundamentals.

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:

Android
iOS
von Legimi
zertifizierten E-Readern

Seitenzahl: 782

Veröffentlichungsjahr: 2013

Bewertungen
0,0
0
0
0
0
0
Mehr Informationen
Mehr Informationen
Legimi prüft nicht, ob Rezensionen von Nutzern stammen, die den betreffenden Titel tatsächlich gekauft oder gelesen/gehört haben. Wir entfernen aber gefälschte Rezensionen.



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:

1. Focus on practical applications and provide step-by-step hands-on experiments for the complete design cycle starting from the evaluation of algorithms using MATLAB® to the implementation using floating-point C programming, and updated to fixed-point C programming, and software optimization using mixed C and assembly programming with C intrinsics and assembly routines for fixed-point digital signal processors. This methodology enables readers to concentrate on learning DSP fundamentals and innovative applications by relaxing the intensive programming efforts, especially the time-consuming assembly programming.
2. Enhance many examples and hands-on experiments to make the DSP principles more interesting and interactive with real-world applications. All the C and assembly programs are carefully updated using the most recent versions of development tools, the Code Composer Studio and the low-cost TMS320C5505 (a member of C55xx family) eZdsp USB stick, for real-time experiments. Due to its affordable cost and portability, the eZdsp enables students, engineers, professionals, and hobbyists to conduct DSP experiments and projects at more convenient locations instead of in traditional laboratories. This new hardware tool is widely used by universities and industrial organizations to replace the older and more expensive development tools.
3. Add attractive and challenging DSP applications such as speech coding techniques for next generation networks and cell (mobile) phones; audio coding for portable players; several audio effects including spatial sounds, graphic and parametric audio equalizers for music, and audio post-recording effects; two-dimensional discrete wavelet transform for JPEG2000; image filtering for special effects; and fingerprint image processing. Also develop real-time experiments with modular designs and flexible interfaces such that the software may serve as prototyping programs to create other related applications.
4. Organize chapters in a more flexible and logical manner. Some related applications are grouped together. We also removed some topics, such as channel coding techniques, that may not be suitable for a semester-long course. The hardware-dependent topics in the second edition have been greatly simplified and presented here as an appendix for readers who are required or interested to learn about TMS320C55xx architecture and assembly programming. All of these changes are made intentionally for the purpose of focusing on the fundamental DSP principles with enhanced hands-on experiments for practical applications.

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.

Software Availability

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:

1.Flexibility. Functions of a DSP system can be easily modified and upgraded with software that implements the specific operations. One can design a DSP system to perform a wide variety of tasks by executing different software modules. A digital device can be easily upgraded in the field through the on-board memory (e.g., flash memory) to meet new requirements, add new features, or enhance its performance.
2.Reproducibility. The functions of a DSP system can be repeated precisely from one unit to another. In addition, by using DSP techniques, digital signals can be stored, transferred, or reproduced many times without degrading the quality. By contrast, analog circuits will not have the same characteristics even if they are built following identical specifications, due to analog component tolerances.
3.Reliability. The memory and logic of DSP hardware do not deteriorate with age. Therefore, the performance of DSP systems will not drift with changing environmental conditions or aged electronic components as their analog counterparts do.
4.Complexity. DSP allows sophisticated applications such as speech recognition to be implemented using low-power and lightweight portable devices. Furthermore, there are some important signal processing algorithms such as image compression and recognition, data transmission and storage, and audio compression, which can only be performed using DSP systems.

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.

1.1 Basic Elements of Real-Time DSP Systems

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

1.2 Analog Interface

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!