
The Scientist and Engineer's Guide to Digital Signal Processing (1999) - tzhenghao
https://www.analog.com/en/education/education-library/scientist_engineers_guide.html
======
newqer
Boy this brings back memories. When I was at school this was my bible. I
graduated my embedded systems programming study, with my field of study being
DSP. Soon after I started my changed careers pretty fast, but I still look
back on DSP with much love. I'm still fun at parties, though. E.g. when
somebody criticizes the CD, being worse than analogue LP's. Also when people
invest top dollar in speaker cables, while the single most area to invest is
being overlooked. Fixing the DA clock-source results is far better music
quality, then any speaker cable will ever can.

~~~
Tehchops
>Fixing the DA clock-source results is far better music quality, then any
speaker cable will ever can.

I read this as a having a decent quality DAC inline between the source and
listening device will do more than expensive speaker wire?

~~~
jdmoreira
Yes, I think that's what is being said. A lot of the usb hifi dacs have their
own clock for this exact reason

------
mattthebaker
Easier access to (I think) the same content here:
[http://www.dspguide.com/pdfbook.htm](http://www.dspguide.com/pdfbook.htm)

------
siddboots
When I first studied this book, and other related bits of Engineering Maths, I
remember being completely marveled by Laplace and Z transform methods. I could
learn to manipulate them and use them to solve equations, it felt like black
magic for a very long time even having working through all of the basic
derivations.

A book that did a lot to bring my understanding around was Complex Variables
and the Laplace Transform for Engineers by LePage. It's more-or-less a pretty
thorough introduction to complex analysis, but developed in the context of
linear systems and transfer functions. I would absolutely recommend it as a
sequel to this book.

~~~
claudiawerner
I feel similarly about using root locus diagrams in control theory with
Laplace transforms. I'm just beginning the DSP part of my EE degree.

~~~
HeyLaughingBoy
Ha!

The first time I did root locus diagrams in Linear Systems (or whatever the
course was called), we did everything by hand and I _hated_ it.

10 years after graduation I was in a certificate class for Mechatronics and we
had Matlab. The difference was night and day. Suddenly I could play with root
locations and see the effect immediately without having to do half an hour of
tedious hand calculation. It's amazing how much your attitude improves when
the work becomes "fun."

------
lambda
I've been wanting to learn more about DSP, and this looks like a good free
resource, but the examples in BASIC are just so hard to read, between the line
numbers and SHOUTY CASE.

While I suppose it would be a good exercise to translate the examples into the
language of my choice, are there any good resources on DSP that use a more
reasonable language for the examples? And I'd prefer to avoid proprietary
languages like Matlab.

~~~
durovo
The skills learnt should be transferrable to Octave which is Matlab
compatible.

~~~
lambda
This book uses BASIC, which I just find quite unreadable.

I don't know of what other resources are available, but I do know I've seen
some that use Matlab. I've never played with Octave much, so I don't know how
compatible it is; can you just directly copy Matlab code, or do you need to do
translations?

Anyhow, if there's a book that uses Matlab rather than BASIC, and could be
used in Octave, that might be more readable. I would find C, C++, Python, or
Rust more familiar, though.

~~~
mindcrime
_I 've never played with Octave much, so I don't know how compatible it is;
can you just directly copy Matlab code, or do you need to do translations?_

I'm not an expert, but I believe Octave is pretty compatible, at least with
the core language. I think there are some "extra" features and libraries that
don't exist in Octave, but it should be fine for many scenarios. FWIW, the
earlier version of Andrew Ng's machine learning class on Coursera was Matlab /
Octave based, and students using Octave were able to do everything required
there with no problems.

You can find some more detailed comparison here:

[https://en.wikibooks.org/wiki/MATLAB_Programming/Differences...](https://en.wikibooks.org/wiki/MATLAB_Programming/Differences_between_Octave_and_MATLAB)

~~~
kkylin
In my experience one can pretty much just copy and paste, and most things work
(though likely not 100%). There are two ways in which Octave still falls
short: (1) Matlab is faster, as it has (I believe) JIT compilation whereas
Octave doesn't; and (2) all things related to plotting & graphing are still
better in Matlab IMO, though that may be changing. This may not be important
for learning DSP, but does matter in day to day scientific work.

------
ultrasounder
As an EE who flunked his DSP graduate course,Can't recommend this book enough
to grok DSP basics. And it's Free!As a good programming practice I intend to
translate the codes from BASIC( pseudocode) to Python(NumPY fun).

~~~
twtw
No offense intended, but ... that isn't the most glowing recommendation.

I read it as "This book is great, really helped me understand the concepts. In
fact, it helped so much I failed the class."

~~~
rabito
I think he meant he read it after he failed the class which didn' give him a
proper understanding of the material while this book did the opposite.

So that sounds pretty encouraging.

~~~
ddingus
That is my take too.

BASIC is fine. I won't language quibble on a nice free resource.

------
achillesheels
A Godsend! I really appreciated the separation of the s-plane as rectangular
and the z-plane as polar. It is astonishing the depth to which we can analyze
the frequency harmonics of a signal.

;-)

------
microDude
Can not recommend the book enough. I read the entire book in PDF format first.
Then went out and bought a hard copy.

I work at ADI now, which is kind of weird to see the OP's link.

~~~
smcl
Ex-ADIer here, we had a couple of copies kicking around in our office. Shortly
after I joined I asked my team lead what an FFT is, he explained "it's a way
to transform a signal from the time domain to the frequency domain..." and
when he saw that my eyes had glazed over he pointed to this book and said
"read that". It's really readable and an excellent intro to DSP

~~~
sramsay
From the blog quoted above: "Advanced DSP can certainly get complicated with
quadrature processing, Hilbert transforms, and cascaded infinite impulse
response filters, but this series on DSP isn't going to get that complicated."

Gulp. I'm new to DSP, so I'm obviously not going to jump into "quadrature
processing," but what would you say are the basic mathematical prerequisites
for getting into this kind of thing? What sort of math should you know before
you even start?

~~~
smcl
I'm afraid I don't know that info - I worked with the compiler toolchain and
associated libraries so strictly speaking it _probably_ wasn't even necessary
to know the basics of signal processing. However it gets -complicated-
interesting enough to be challenging, and whatever the _next_ steps are this
will at least put the necessary groundwork in place :-)

------
anigbrowl
This has been a favorite for nearly 20 years.

------
person_of_color
I need something like this for Music Theory.

~~~
gloggy
Highly recommended:
[http://sites.music.columbia.edu/cmc/MusicAndComputers/](http://sites.music.columbia.edu/cmc/MusicAndComputers/)

------
signa11
also, there is canonical green-tea-press book 'think dsp' available here:
[http://greenteapress.com/wp/think-dsp/](http://greenteapress.com/wp/think-
dsp/)

which covers the basics in python.

------
peterlk
Does anyone have any suggestions for a book specific to audio synthesis DSP?

~~~
johnr2
This one's pretty good for audio DSP in general, including some fairly
detailed material on synthesis:

[https://mitpress.mit.edu/books/audio-programming-
book](https://mitpress.mit.edu/books/audio-programming-book)

Most of the code is C (and some C++). The first two chapters are a C tutorial,
followed by audio-specific C programming. If you already know C you may want
to skip the first couple of chapters.

If you're going to buy it I'd recommend a hard copy, as the DVD includes a lot
of stuff that isn't in the Kindle version.

------
Stenzel
This book contains some wrong and oversimplified statements, the explanation
of the sampling theorem is awkward and suggests that the author has not fully
understood it himself.

Example of wrong claims: "The heart of digital noise generation is the random
number generator." Not true, many digital noise generators use LFSR.

"Just as analog filters are designed using the Laplace transform, recursive
digital filters are developed with a parallel technique called the
z-transform." Hello no, there are gazillion ways to design filters - analog or
digital - without those transforms.

"The frequency domain becomes attractive whenever the complexity of the
Fourier Transform is less than the complexity of the convolution. This isn't a
matter of which you like better; it is a matter of which you hate less."

Clearly I hate both domains less than this book. It might serve as an
introduction to DSP, but please remain suspicious, if some claim herein seems
oversimplified, it probably is.

~~~
stefco_
I don't understand your issue with his statement on PRNGs... LFSRs are
functionally pseudorandom number generators in this context, so you haven't
invalidated his statement.

