throbber
The Scientist and Engineer's Guide to
`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
`
`

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket