DSP for Embedded and Real-Time Systems
This Expert Guide gives you the techniques and technologies in digital signal processing (DSP) to optimally design and implement your embedded system. Written by experts with a solutions focus, this encyclopedic reference gives you an indispensable aid to tackling the day-to-day problems you face in using DSP to develop embedded systems. With this book you will learn: - A range of development techniques for developing DSP code - Valuable tips and tricks for optimizing DSP software for maximum performance - The various options available for constructing DSP systems from numerous software components - The tools available for developing DSP applications - Numerous practical guidelines from experts with wide and lengthy experience of DSP application development Features: - Several areas of research being done in advanced DSP technology - Industry case studies on DSP systems development DSP for Embedded and Real-Time Systems is the reference for both the beginner and experienced, covering most aspects of using today's DSP techniques and technologies for designing and implementing an optimal embedded system. - The only complete reference which explains all aspects of using DSP in embedded systems development making it a rich resource for every day use - Covers all aspects of using today's DSP techniques and technologies for designing and implementing an optimal embedded system - Enables the engineer to find solutions to all the problems they will face when using DSP
1136506528
DSP for Embedded and Real-Time Systems
This Expert Guide gives you the techniques and technologies in digital signal processing (DSP) to optimally design and implement your embedded system. Written by experts with a solutions focus, this encyclopedic reference gives you an indispensable aid to tackling the day-to-day problems you face in using DSP to develop embedded systems. With this book you will learn: - A range of development techniques for developing DSP code - Valuable tips and tricks for optimizing DSP software for maximum performance - The various options available for constructing DSP systems from numerous software components - The tools available for developing DSP applications - Numerous practical guidelines from experts with wide and lengthy experience of DSP application development Features: - Several areas of research being done in advanced DSP technology - Industry case studies on DSP systems development DSP for Embedded and Real-Time Systems is the reference for both the beginner and experienced, covering most aspects of using today's DSP techniques and technologies for designing and implementing an optimal embedded system. - The only complete reference which explains all aspects of using DSP in embedded systems development making it a rich resource for every day use - Covers all aspects of using today's DSP techniques and technologies for designing and implementing an optimal embedded system - Enables the engineer to find solutions to all the problems they will face when using DSP
79.95 In Stock
DSP for Embedded and Real-Time Systems

DSP for Embedded and Real-Time Systems

by Robert Oshana
DSP for Embedded and Real-Time Systems

DSP for Embedded and Real-Time Systems

by Robert Oshana

eBook

$79.95 

Available on Compatible NOOK devices, the free NOOK App and in My Digital Library.
WANT A NOOK?  Explore Now

Related collections and offers


Overview

This Expert Guide gives you the techniques and technologies in digital signal processing (DSP) to optimally design and implement your embedded system. Written by experts with a solutions focus, this encyclopedic reference gives you an indispensable aid to tackling the day-to-day problems you face in using DSP to develop embedded systems. With this book you will learn: - A range of development techniques for developing DSP code - Valuable tips and tricks for optimizing DSP software for maximum performance - The various options available for constructing DSP systems from numerous software components - The tools available for developing DSP applications - Numerous practical guidelines from experts with wide and lengthy experience of DSP application development Features: - Several areas of research being done in advanced DSP technology - Industry case studies on DSP systems development DSP for Embedded and Real-Time Systems is the reference for both the beginner and experienced, covering most aspects of using today's DSP techniques and technologies for designing and implementing an optimal embedded system. - The only complete reference which explains all aspects of using DSP in embedded systems development making it a rich resource for every day use - Covers all aspects of using today's DSP techniques and technologies for designing and implementing an optimal embedded system - Enables the engineer to find solutions to all the problems they will face when using DSP

Product Details

ISBN-13: 9780123865366
Publisher: Butterworth-Heinemann
Publication date: 10/11/2012
Sold by: Barnes & Noble
Format: eBook
Pages: 656
File size: 12 MB
Note: This product may take a few minutes to download.

About the Author

Rob Oshana has over 25 years of experience in the real-time embedded industry, in both embedded application development as well as embedded tools development. He is currently director of engineering for the Development Technology group at Freescale Semiconductor. Rob is also a Senior Member of IEEE and an adjunct at Southern Methodist University. He can be contacted at robert.oshana@freescale.com

Read an Excerpt

DSP for Embedded and Real-Time Systems

Expert Guide
By Robert Oshana

Newnes

Copyright © 2012 Elsevier Inc.
All right reserved.

ISBN: 978-0-12-386536-6


Chapter One

Introduction to Digital Signal Processing

Robert Oshana

Chapter Outline

What is digital signal processing? 1 Advantages of DSP 2 DSP systems 3 Analog-to-digital conversion 4 The Nyquist criteria 6 Digital-to-analog conversion 9 Applications for DSPs 10 Low cost DSP applications 10 Power efficient DSP applications 11 High performance DSP applications 13 Conclusion 14

What is digital signal processing?

Digital signal processing (DSP) is the method of processing signals and data in order to enhance, modify, or analyze those signals to determine specific information content. It involves the processing of real-world signals that are converted to, and represented by, sequences of numbers. These signals are then processed using mathematical techniques, in order to extract certain information from the signal, or to transform the signal in some preferably beneficial way.

The term 'digital' in DSP requires processing using discrete signals to represent the data in the form of numbers that can be easily manipulated. In other words, the signal is represented numerically. This type of representation implies some form of quantization of one or more properties of the signal, including time.

This is just one type of digital data; other types include ASCII numbers and letters that have a digital representation as well.

The term 'signal' in DSP refers to a variable parameter. This parameter is treated as information as it flows through an electronic circuit. The signal usually starts out in the analog world as a constantly changing piece of information. Examples of real-world signals include:

• Air temperature

• Sound

• Humidity

• Speed

• Position

• Flow

• Light

• Pressure

• Volume

The signal is essentially a voltage that varies among a theoretically infinite number of values. This represents patterns of variation of physical quantities. Other examples of signals are sine waves, the waveforms representing human speech, and the signals from a conventional television. A signal is a detectable physical quantity. Messages or information can be transmitted based on these signals.

A signal is called one dimensional (1-D) when it describes variations of a physical quantity as a function of a single independent variable. An audio/speech signal is one dimensional because it represents the continuing variation of air pressure as a function of time.

Finally, the term 'processing' in DSP relates to the processing of data using software programs as opposed to hardware circuitry. A DSP is a device or a system that performs signal processing functions on signals from the real (analog) world, primarily using software programs to manipulate the signals. This is an advantage in the sense that the software program can be changed relatively easily to modify the performance or behavior of the signal processing. This is much harder to do with analog circuitry.

Since DSPs interact with signals in the environment, the DSP system must be 'reactive' to the environment. In other words the DSP must keep up with changes in the environment. This is the concept of 'real-time' processing and we will talk about this shortly.

Advantages of DSP

There are many advantages of using a digital signal processing solution over an analog solution. These include:

• Changeability; it is easy to reprogram digital systems for other applications, or to fine tune existing applications. A DSP allows for easy changes and updates to the application.

• Repeatability; analog components have characteristics that may change slightly over time or temperature variances. A programmable digital solution is much more repeatable due to the programmable nature of the system. Multiple DSPs in a system, for example, can also run the exact same program and be very repeatable. With analog signal processing, each DSP in the system would have to be individually tuned.

• Size, weight, and power; a DSP solution that requires mostly programming means the DSP device itself consumes less overall power than a solution using all hardware components.

• Reliability; analog systems are reliable to the extent to which the hardware devices function properly. If any of these devices fail due to physical condition, the entire system degrades or fails. A DSP solution implemented in software will function properly as long as the software is implemented correctly.

• Expandability; to add more functionality to an analog system, the engineer must add more hardware. This may not be possible. Adding the same functionality to a DSP involves adding software, which is much easier.

DSP systems

The signals that a DSP processor uses come from the real world. Because a DSP must respond to signals in the real world, it must be capable of changing based on the changes it sees in the real world. We live in an analog world in which the information around us changes, sometimes very quickly. A DSP system must be able to process these analog signals and respond back to the real world in a timely manner. A typical DSP system (Figure 1-1) consists of the following:

• Signal source; something that is producing the signal such as a microphone, a radar sensor, or a flow gauge.

• Analog signal processing (ASP); circuitry to perform some initial signal amplification or filtering.

• Analog-to-digital conversion (ADC); an electronic process in which a continuously variable signal is changed, without altering its essential content, into a multi-level (digital) signal. The output of the ADC has defined levels or states. The number of states is almost always a power of two – that is, 2, 4, 8, 16, etc. The simplest digital signals have only two states, and are called binary.

• Digital signal processing (DSP); the various techniques used to improve the accuracy and reliability of modern digital communications. DSP works by clarifying, or standardizing, the levels or states of a digital signal. A DSP system is able to differentiate, for example, between human-made signals, which are orderly, and noise, which is inherently chaotic.

• Computer; if additional processing is required in the system, additional computing resources can be applied, if necessary. For example, if the signals being processed by the DSP are to be formatted for display to a user, an additional computer can be used to perform these tasks.

• Digital-to-analog conversion (DAC); the process in which signals having a few (usually two) defined levels or states (digital) are converted into signals having a theoretically infinite number of states (analog). A common example is the processing, by a modem, of computer data into audio-frequency (AF) tones that can be transmitted over a twisted pair telephone line.

• Output; a system for realizing the processed data. This may be a terminal display, a speaker, or another computer.

Systems operate on signals to produce new signals. For example, microphones convert air pressure to electrical current, and speakers convert electrical current to air pressure.

Analog-to-digital conversion

The first step in a signal processing system is getting the information from the real world into the system. This requires transforming an analog signal to a digital representation suitable for processing by the digital system. This signal passes through a device called an analog-to-digital converter (A/D or ADC). The ADC converts the analog signal to a digital one by sampling or measuring the signal at a periodic rate. Each sample is assigned a digital code (Figure 1-2). These digital codes can then be processed by the DSP. The number of different codes or states is almost always a power of two (2, 4, 8, 16, etc.). The simplest digital signals have only two states. These are referred to as binary signals.

Examples of analog signals are waveforms representing human speech and signals from a television camera. Each of these analog signals can be converted to digital form using ADC and then processed using a programmable DSP.

Digital signals can be processed more efficiently than analog signals. Digital signals are generally well-defined and orderly which makes them easier for electronic circuits to distinguish from noise, which is chaotic. Noise is basically unwanted information. Noise can be anything from the background sound of an automobile engine, to a scratch on a picture that has been converted to digital format. In the analog world noise can be represented as electrical or electromagnetic energy that degrades the quality of signals and data. Noise, however, occurs in both digital and analog systems. Sampling errors (we'll talk more about this later) can degrade digital signals as well. Too much noise can degrade all forms of information including text, programs, images, audio and video, and telemetry. Digital signal processing provides an effective way to minimize the effects of noise by making it easy to filter this 'bad' information out of the signal.

As an example, assume that the analog signal in Figure 1-2 needs to be converted into a digital signal for further processing. The first question to consider is how often to sample or measure the analog signal in order to represent that signal accurately in the digital domain. The sample rate is the number of samples of an analog event (like sound) that are taken per second to represent the event in the digital domain. Let's assume that we are going to sample the signal at a rate of T seconds. This can be represented as:

Sampling period (T) = 1 / Sampling frequency (fs)

where the sampling frequency is measured in hertz (Hz).

If the sampling frequency is 8 kilohertz (kHz), this would be equivalent to 8000 cycles per second. The sampling period would then be:

T = 1 / 8000 = 125 microseconds = 0.000125 seconds

This tells us that, for this signal being sampled at this rate, we would have 0.000125 seconds to perform all the processing necessary before the next sample arrived (remember, these samples arrive on a continuous basis and we cannot fall behind in processing them). This is a common restriction for real-time systems which we will discuss shortly.

If we now know the time restriction, we can then determine the processor speed required to keep up with this sampling rate. Processor speed is measured not by how fast the clock rate is for the processor, but how fast the processor executes instructions. Once we know the processor instruction cycle time, we can determine how many instructions we have available to process the sample:

Sampling period (T) / Instruction cycle time = number of instructions per sample

For a 100 MHz processor that executes one instruction per cycle, the instruction cycle time would be:

1/100MHz = 10 nano seconds

125 us / 10 ns = 12,500 instructions per sample

125 us / 5 ns = 25,000 instructions per sample (for a 200 MHz processor)

125 us / 2 ns = 62,500 instruction per sample (for a 500 MHz processor)

As this example demonstrated, the higher the processor instruction cycle execution, the more processing we can do on each sample. If it were this easy, we could just choose the highest processor speed available and have plenty of processing margin. Unfortunately, it is not as easy as this. Many other factors including cost, accuracy, and power limitations must also be considered. Embedded systems have many constraints such as these, as well as size and weight (important for portable devices). For example, how do we know how fast we should sample the input analog signal to accurately represent it in the digital domain? If we do not sample often enough, the information we obtain will not be representative of the true signal. If we sample too much, we may be 'over-designing' the system, and overly constraining ourselves.

The Nyquist criteria

One of the most important rules of sampling is called the Nyquist Theorem, which states that the highest frequency which can be accurately represented is one-half of the sampling rate. The Nyquist rate specifies the minimum sampling rate that fully describes a given signal. Adhering to the Nyquist rate enables accurate reconstruction of the original signal from the samples. The actual sampling rate required to reconstruct the original signal must be somewhat higher than the Nyquist rate, because of various quantization errors introduced by the sampling process.

For example, human hearing ranges from 20 Hz to 20,000 Hz, so to imprint sound to a CD, the frequency must be sampled at a rate of 40,000 Hz to reproduce the 20,000 Hz signal. The CD standard is to sample 44,100 times per second, or 44.1 kHz.

(Continues...)



Excerpted from DSP for Embedded and Real-Time Systems by Robert Oshana Copyright © 2012 by Elsevier Inc. . Excerpted by permission of Newnes. All rights reserved. No part of this excerpt may be reproduced or reprinted without permission in writing from the publisher.
Excerpts are provided by Dial-A-Book Inc. solely for the personal use of visitors to this web site.

Table of Contents

1. Introduction to Digital Signal Processing2. Overview of Embedded and Real Time Systems3. Overview of Embedded Systems Lifecycle Development Using DSP4. Programmable DSP Architectures5. DSP Hardware components and FPGA6. The Hardware/Software Continuum for DSP7. Overview of Digital Signal Processing Algorithms8. High-Level Design Tools for Complex DSP Applications9. Benchmarking and Profiling DSP Systems10. Optimizing DSP Software – High Level Languages and Programming Models11. Optimizing DSP Software – Code Optimization12. Optimizing DSP Software – Memory Optimization13. Optimizing DSP Software – Power Optimization14. Real-Time Operating Systems Using DSP15. Managing the DSP Software Development Effort16. Multicore Software Development for DSP applications17. Developing and Debugging DSP Systems18. DSP Algorithm Development, Rules and Guidelines Case Studies1 Bringing it all together; A Case Study on a LTE Basestation Software Architecture for a Multicore DSP 2 DSP for medical applications3 Voiceover IP DSP Software System4 Software Performance Engineering of an Embedded System DSP Application5 Specifying Behavior of Embedded DSP Systems6 DSP in Software Defined Radio

What People are Saying About This

From the Publisher

Become an expert by reading the experts – an encyclopedic resource that gives you all the digital signal processing methods, techniques and technologies for optimizing your embedded system!

From the B&N Reads Blog

Customer Reviews