`Digital Signal Processing
`
`Second Edition
`
`Page 1 of 8
`
`SONOS EXHIBIT 1025
`
`
`
`Be sure to visit the book's website at:
`www.DSPguide.com
`
`Page 2 of 8
`
`SONOS EXHIBIT 1025
`
`
`
`The Scientist and Engineer's Guide to
`Digital Signal Processing
`
`Second Edition
`
`by
`Steven W. Smith
`
`California Technical Publishing
`San Diego, California
`
`Page 3 of 8
`
`SONOS EXHIBIT 1025
`
`
`
`The Scientist and Engineer's Guide to
`Digital Signal Processing
`Second Edition
`
`by
`Steven W. Smith
`
`copyright© 1997-1999 by California Technical Publishing
`
`All rights reserved. No portion of this book may be reproduced or
`transmitted in any form or by any means, electronic or mechanical,
`without written permission of the publisher.
`
`ISBN 0-966017 6-7-6
`ISBN 0-9660176-4-1
`ISBN 0-9660176-6-8
`LCCN 97-80293
`
`hardcover
`paperback
`electronic
`
`California Technical Publishing
`P.O. Box 502407
`San Diego, CA 92150-2407
`
`To contact the author or publisher through the internet:
`website: DSPguide.com
`Smith@DSPguide.com
`e-mail:
`
`Printed in the United States of America
`First Edition, 1997
`Second Edition, 1999
`
`Important Legal Information: W aming and Disclaimer
`This book presents the fundamentals of Digital Signal Processing using examples from common science and
`engineering problems. While the author believes that the concepts and data contained in this book are accurate and
`correct, they should not be used in any application without proper verification by the person making the application.
`Extensive and detailed testing is essential where incorrect functioning could result in personal injury or damage to
`property. The material in this book is intended solely as a teaching aid, and is not represented to be an appropriate
`or safe solution to any particular problem. For this reason, the author, publisher, and distributors make no
`warranties, express or implied, that the concepts, examples, data, algorithms, techniques, or programs contained
`in this book are free from error, conform to any industry standard, or are suitable for any application. The author,
`publisher, and distributors disclaim all liability and responsibility to any person or entity with respect to any loss
`or damage caused, or alleged to be caused, directly or indirectly, by the information contained in this book. If you
`do not wish to be bound by the above, you may return this book to the publisher for a full refund.
`
`Page 4 of 8
`
`SONOS EXHIBIT 1025
`
`
`
`CHAPTER
`
`28
`
`Digital Signal Processors
`
`Digital Signal Processing is carried out by mathematical operations. In comparison, word
`processing and similar programs merely rearrange stored data. This means that computers
`designed for business and other general applications are not optimized for algorithms such as
`digital filtering and Fourier analysis. Digital Signal Processors are microprocessors specifically
`designed to handle Digital Signal Processing tasks. These devices have seen tremendous growth
`in the last decade, finding use in everything from cellular telephones to advanced scientific
`instruments. In fact, hardware engineers use "DSP" to mean Digital Signal Processor, just as
`algorithm developers use "DSP" to mean Digital Signal Processing. This chapter looks at how
`DSPs are different from other types of microprocessors, how to decide if a DSP is right for your
`application, and how to get started in this exciting new field. In the next chapter we will take a
`more detailed look at one of these sophisticated products: the Analog Devices SHARC® family.
`
`How DSPs are Different from Other Microprocessors
`
`In the 1960s it was predicted that artificial intelligence would revolutionize the
`way humans interact with computers and other machines. It was believed that
`by the end of the century we would have robots cleaning our houses, computers
`driving our cars, and voice interfaces controlling the storage and retrieval of
`information. This hasn't happened; these abstract tasks are far more
`complicated than expected, and very difficult to carry out with the step-by-step
`logic provided by digital computers.
`
`However, the last forty years have shown that computers are extremely capable
`in two broad areas, (1) data manipulation, such as word processing and
`database management, and (2) mathematical calculation, used in science,
`engineering, and Digital Signal Processing. All microprocessors can perform
`both tasks; however, it is difficult (expensive) to make a device that is
`optimized for both. There are technical tradeoffs in the hardware design, such
`as the size of the instruction set and how interrupts are handled. Even
`
`503
`
`Page 5 of 8
`
`SONOS EXHIBIT 1025
`
`
`
`504
`
`The Scientist and Engineer's Guide to Digital Signal Processing
`
`Data Manipulation
`
`Math Calculation
`
`Typical
`Applications
`
`Word processing, database
`management, spread sheets,
`operating sytems, etc.
`
`Digital Signal Processing,
`motion control, scientific and
`engineering simulations, etc.
`
`Main
`Operations
`
`data movement (A ~ B)
`value testing (If A =B then ... )
`
`addition (A+B=C)
`multiplication (A xB=C)
`
`FIGURE28-1
`Data manipulation versus mathematical calculation. Digital computers are useful for two general
`tasks: data manipulation and mathematical calculation. Data manipulation is based on moving
`data and testing inequalities, while mathematical calculation uses multiplication and addition.
`
`more important, there are marketing issues involved: development and
`manufacturing cost, competitive position, product lifetime, and so on. As a
`broad generalization, these factors have made traditional microprocessors, such
`as the Pentium®, primarily directed at data manipulation. Similarly, DSPs are
`designed to perform the mathematical calculations needed in Digital Signal
`Processing.
`
`Figure 28-1 lists the most important differences between these two
`categories. Data manipulation involves storing and sorting information.
`For instance, consider a word processing program. The basic task is to
`store the information (typed in by the operator), organize the information
`(cut and paste, spell checking, page layout, etc.), and then retrieve the
`information (such as saving the document on a floppy disk or printing it
`with a laser printer). These tasks are accomplished by moving data from
`one location to another, and testing for inequalities (A=B, A<B, etc.). As
`an example, imagine sorting a list of words into alphabetical order. Each
`word is represented by an 8 bit number, the ASCII value of the first letter
`in the word. Alphabetizing involved rearranging the order of the words
`until the ASCII values continually increase from the beginning to the end
`of the list. This can be accomplished by repeating two steps over-and-over
`until the alphabetization is complete. First, test two adjacent entries for
`being in alphabetical order (IF A>B THEN ... ). Second, if the two entries
`are not in alphabetical order, switch them so that they are (A"'B). When
`this two step process is repeated many times on all adjacent pairs, the list
`will eventually become alphabetized.
`
`As another example, consider how a document is printed from a word
`processor. The computer continually tests the input device (mouse or keyboard)
`for the binary code that indicates "print the document." When this code is
`detected, the program moves the data from the computer's memory to the
`printer. Here we have the same two basic operations: moving data and
`inequality testing. While mathematics is occasionally used in this type of
`
`Page 6 of 8
`
`SONOS EXHIBIT 1025
`
`
`
`Chapter 28- Digital Signal Processors
`
`505
`
`application, it is infrequent and does not significantly affect the overall
`execution speed.
`
`In comparison, the execution speed of most DSP algorithms is limited almost
`completely by the number of multiplications and additions required. For
`example, Fig. 28-2 shows the implementation of an FIR digital filter, the most
`common DSP technique. Using the standard notation, the input signal is
`referred to by x[ ] , while the output signal is denoted by y[ ] . Our task is to
`calculate the sample at location n in the output signal, i.e., y[n]. An FIR filter
`performs this calculation by multiplying appropriate samples from the input
`signal by a group of coefficients, denoted by: a0, al' a2' a3, .. . , and then adding
`the products. In equation form, y[ n] is found by:
`
`This is simply saying that the input signal has been convolved with a filter
`kernel (i.e., an impulse response) consisting of: a0, al' a2' a3, -- ·. Depending on
`the application, there may only be a few coefficients in the filter kernel, or
`many thousands. While there is some data transfer and inequality evaluation
`in this algorithm, such as to keep track of the intermediate results and control
`the loops, the math operations dominate the execution time.
`
`Input Signal, x[]
`
`x[n-3] r x[n-2]
`···1 [(?
`
`FIGURE28-2
`FIR digital filter. In FIR filtering, each
`sample in the output signal, y[n], is found
`by multiplying samples from the input
`signal, x[n], x[n-1 ], x[n-2], ... , by the filter
`kernel coefficients, a0, a 1, al, a3 ... , and
`summing the products.
`
`Output signal, y[ ]
`
`y[n]
`
`Page 7 of 8
`
`SONOS EXHIBIT 1025
`
`
`
`506
`
`The Scientist and Engineer's Guide to Digital Signal Processing
`
`In addition to preforming mathematical calculations very rapidly, DSPs must
`also have a predictable execution time. Suppose you launch your desktop
`computer on some task, say, converting a word-processing document from one
`form to another. It doesn't matter if the processing takes ten milliseconds or
`ten seconds; you simply wait for the action to be completed before you give the
`computer its next assignment.
`
`In comparison, most DSPs are used in applications where the processing is
`continuous, not having a defined start or end. For instance, consider an
`engineer designing a DSP system for an audio signal, such as a hearing aid.
`If the digital signal is being received at 20,000 samples per second, the DSP
`must be able to maintain a sustained throughput of 20,000 samples per second.
`However, there are important reasons not to make it any faster than necessary.
`As the speed increases, so does the cost, the power consumption, the design
`difficulty, and so on. This makes an accurate knowledge of the execution time
`critical for selecting the proper device, as well as the algorithms that can be
`applied.
`
`Circular Buffering
`
`Digital Signal Processors are designed to quickly carry out FIR filters and
`similar techniques. To understand the hardware, we must first understand the
`algorithms. In this section we will make a detailed list of the steps needed to
`In the next section we will see how DSPs are
`implement an FIR filter.
`designed to perform these steps as efficiently as possible.
`
`To start, we need to distinguish between off-line processing and real-time
`processing. In off-line processing, the entire input signal resides in the
`computer at the same time. For example, a geophysicist might use a
`seismometer to record the ground movement during an earthquake. After the
`shaking is over, the information may be read into a computer and analyzed in
`some way. Another example of off-line processing is medical imaging, such
`as computed tomography and MRI. The data set is acquired while the patient
`is inside the machine, but the image reconstruction may be delayed until a later
`time. The key point is that all of the information is simultaneously available
`to the processing program. This is common in scientific research and
`engineering, but not in consumer products. Off-line processing is the realm of
`personal computers and mainframes.
`
`In real-time processing, the output signal is produced at the same time that the
`input signal is being acquired. For example, this is needed in telephone
`communication, hearing aids, and radar. These applications must have the
`information immediately available, although it can be delayed by a short
`amount. For instance, a 10 millisecond delay in a telephone call cannot be
`detected by the speaker or listener. Likewise, it makes no difference if a
`radar signal is delayed by a few seconds before being displayed to the
`operator. Real-time applications input a sample, perform the algorithm, and
`output a sample, over-and-over. Alternatively, they may input a group
`
`Page 8 of 8
`
`SONOS EXHIBIT 1025
`
`