Digital Signal Processing and the Microcontroller



This page summarizes known errors--I mean features--in the first edition of Digital Signal Processing and the Microcontroller by Grover and Deller.  The most up-to-date copy of this errata can be found at  Send any new errors (aack!) to  (With your permission, we'd be happy to credit you.)

The typos and formatting are kind of expected.  But I'm very sorry about some of the real gaffes that slipped by (especially on pages 101, 110, and 168).  A few of these I can see where they came from (and they're all my (Dale's) fault), but a few are just out of left field.  Check out page 101 in particular--how the heck could that slip by?  It's a mystery.  Guess it looked too simple to get wrong...

Bold entries are errors that affect content, most other entries are just formatting issues and mild typographical errors.
Underlined bold entries are errors that are important.

Page    Description of change
(CIP)    Change subject headings
xvii    Motorola is not hosting the website for this book (at the moment, at least), so this should be changed to point elsewhere for software sources on the web.  (Such as
xx    The wording in the acknowledgments should actually be "Nick Radhuber and Bernard Goodwin at Prentice Hall and Susan Zilkowski at Motorola University Press took what appeared to us to be a simple job, was in fact a time-consuming, complex set of interconnected tasks, and made it look simple to us." (Not even on page 1 and already the typos and errors are creeping in.  And what a place to start with.  Sorry Nick, Bernard, and Susan.)
4    Figure 1-2, the numbers should look more like they're in a sequence.
17,18  Cartoon illustration #1 is missing!  Put it on page 17, and move illustration #2 to page 18 (now blank).  (See for the missing cartoon.)
21    Footnote formatting problem.
26    Second paragraph, missing final parenthesis.
34    Footnote 8, Avis(R) and Hertz(R) should have registered trademarks by their names.
43    Third paragraph, parenthetical comment with equation is lacking a closing parenthesis.
45    Table 2-3, the entry for 0.316... should also equate to 1 over the square root of 10.
50    Tension the rebar prior to pouring the cement.  (You would'nt believe how many folks get this backwards.)
59    Figure 2-33, the "x3" are not consistent in size.  (Use a special symbol?)
59    First paragraph, second sentence, should be "Linear systems don't have to be time-invariant, nor are time-invariant systems always linear."
66    Figure 3-2, the input signal should be a copy of the "corrupted signal" in Figure 3-1.
68    Last paragraph, second sentence, add "be" to "for analog circuits this might (be) in the kHz ..."
76    Figure 3-15, 3-16, formatting problems.
76    Figure 3-16, missing "delta sub s" on figure.
77    Equation 3.1, d_sub_p should be delta_sub_p.
83    Footnote 13, formatting of symbols.
84    The preferred cutting speed for a 2-flute end mill in 6061 T-6 alloy aluminum is somewhat slower.
85    Whoa--the results are correct, but the first equation has H(s) equal to Vin(s)/Vout(s)--it should be Vout(s)/Vin(s).  Also change page 84, second sentence, to read "H(s) as the ratio of the output to input voltages."  Note too that "as" in that sentence is tagged symbolic, and so appears in italics.  (Thanks to Ted Cory.)
87    Footnote 15, formatting of symbols.
90    Last paragraph, parenthetical comment has "There is a theorem to this effect tthat..."; spell as "that."
101    The frequency for the radio station should be 850 kHz, not 870 kHz.  This requires changes to Figure 4-8, references to 870 kHz in the first paragraph of page 101 and in the first paragraph of page 102.  While references on page 103 and 104 refer to 870-880, this could be left intact, or all the examples revised.  (By the way, if 870 kHz is used with a sampling rate of 50 kHz, the signal ends up at 20 Hz.)  (Thanks to Ted Cory.)
102    First paragraph, "kHz", not "KHz". 

106    If we say the range for normalized frequency w (lower case omega) is 0 to pi, then the range for f should be 0 to 0.5.  The equations from here are fine.   So change the sentence "or in terms of f, from 0 to 1" to read "or in terms of f, from 0 to 0.5".  (Thanks to Sean McGarigle.)
    Instead use the following more accurate coefficients in equation 4.5:

H(e^jw)= 0.3763 / ( 1 - 1.5928 e^-jw + 0.9691 e^-2jw )
which should yield 12.7219 - 16.3496j, or a magnitude of 20.7161 = 26.32 dB.  (Thanks to Ted Cory.)
128    Last paragraph, insert "Equation 4.24" after the word "Using" at the start of the sentence.
110    Both equations 4.6 and 4.7 are wrong--for our use of the notation.  Didn't we read the note on page 35?!  In fact, Omega = w/Ts = wFs (eq 4.6), and F = (wFs)/(2pi) = w/(2piTs) (equation 4.7).  (Thanks to Ted Cory. Twice.)
113    Footnote (20), third sentence, extraneous "it" in "regions where it this transform is valid."
134    Figure 4-23, formatting of text in figure.
137    Second paragraph, in the parenthetical sentence, change "delta-sigma" to "sigma-delta".
138    Table 4-5, 2nd & 3rd columns thinner, last column wider.
145    Figure 4-30, formatting of text in figure.
154    Second paragraph, could change "omega=OmegaT" to "omega=OmegaTs".  (For consistency.)
158    Fourth full paragraph, sentence starting "Listing compares" should be "Listing 5-1 compares".
167    Second paragraph, first sentence, drop the "the" in "and is 'optimal' in its the magnitude".
168    Paragraph under equation 5.2, last sentence, should read "thus, an even N is good only...".  Here is a useful table:

Even Odd # of coefs
Lowpass ok ok
Bandpass ok ok
Highpass no ok
Bandstop no ok

Odd Even # of zeros
N is the number of coefficients, so N-1 is the number of zeros in the FIR filter.  For all the coefficients to be real, the zeros must either be real, or occur in complex conjugate pairs.  The Parks-McClellan program will, at most, have one real zero, and that is when N-1 is odd (N is even).  This zero only occurs at w=pi, so will attenuate high frequencies, obviously a bad thing if you want a highpass or bandstop filter.  (Thanks to Ted Cory.)
178    Table 5-2, omit "Am" from header of 3rd column (or else change it to "A" in symbol font).  "Am" isn't used/defined; instead a more generic "A" is used as stopband attenuation.  (Thanks to Ted Cory)
178    Table 5-2 again.  There are some real problems here.  Here's how the stopband attenuation column of the table should be:

Stopband Attenuation (dB) A
Kaiser A=30
31 (some sources give 32)
Kaiser A=50
41 (some sources 43)
Kaiser A=70
Kaiser A=90

The "first side lobe" level is usually the same as the stopband (not for Hamming, though), so this column can be dropped from the table.  The plots of Figure 5-5 (pg 180) give good qualitative pictures of the first side lobe versus the rest of the stop band behavior if that is important.
Not sure why this table got so messed up (where did those figures come from??), but the figures above should be good.  Just cross out the "first side lobe" column.  (Thanks to Sean McGarigle.)
181    First paragraph, parenthetical list of stopbands should use "A" instead of "Ap".  (Or, could use As here.)
(Note:  this section uses "A" instead of the specific "As"; probably it would be clearer to change all stopband attenuations to use "As", even if the context is clear.)  (Thanks to Ted Cory.)
181    Table under 2nd paragraph (Kaiser window coefficients):  change the symbol "British pounds" to "less than or equals".
187    First paragraph, last sentence, change "The difference equation is just:" to read "The difference equation, scaled for unity passband, is just:"  (Thanks to Ted Cory.)
191    Figure 5-22, scale figure to make ellipsoid circular.
191    Last paragraph, last sentence, change reference to "Figure 5-22" to be "Figure 5-20".  (Thanks to Ted Cory)
193    Table 5-4, eliminate bolding or apply to symbols.
199    3rd paragraph, allow non-fixed line spacing (formatting of in-line equation).
202    Both Figures 5-29 and 5-30 have an extra path that should be removed.  In Figure 5-29, this is between the second delay and the fifth delay; for Figure 5-30, it is between the second delay and the fourth.  (In case that's not clear, just look for the delay--"z^-1"--with two inputs, and remove the input that is coming from above it in both figures.)  Thanks to Fred Ngo of St. Lawrence College in Kingston, Ontario, for pointing this out.
222    Change the "Yen" symbol to "times".
301    Replace the phrase "tiny-brained cow-tipper" with "esteemed colleague."
240    Footnote 17, change to non-fixed line spacing (formatting of in-line equation).
251    Table 6-5, make second column thinner, 3rd column wider.
342    Figure 8-5, bottom right plot, the "i" of "input" is in a strange size.
352    2nd paragraph, remove the parenthetical statement about the DFT approximating the periodogram. This topic is getting a bit too far afield.  (See p. 597 of Ifeachor & Jervis, or Oppenheim & Schafer for detailed discussions of what is being estimated and how best to perform this estimation.)
358    Figure 8-16, the coefficients along the bottom have been dropped. Also, formatting problem with x(1).  Along the bottom flow of data (from x(7)), the first arrow should be W(0/N) (W, superscript 0, subscript N), then the arrow after the first summation should be labeled W(2/N), then the arrow after the second summation should be W(3/N).
396    5th paragraph, change to non-fixed line spacing (formatting of in-line equation).
397    Footnote 12, in-line equation formatting.
447    Add to last paragraph:  "Note that it is possible, using feedback, to implement sinusoid generators using IIR filters without the problem noted here.  In fact, if you need a sinusoid (and not just a sine function), it might be a pretty compact solution."  (The reference I have at the moment is to some postings on comp.dsp in August or September 1998.  Also, future editions should mention the characteristics of the CORDIC algorithms and the circumstances when they might be appropriate, though they might not be the best match to the 68HC16.  They also have some nice characteristics for hardware implementations.)
464    Next to last paragraph, add a negative for the result, which should be "-7-6j" (Thanks to Ted Cory.)
522    In the definition of normalized frequency, change the range for f to be 0 to 0.5.  (Sean McGarigle.)  See discussion pg 106.

General note:
The C programs were written for a 16-bit environment (such as MSDOS-based C compilers); check them for correct operation under other environments.