
The Scientist and Engineer's Guide to Digital Signal Processing (1997) - kimburgess
http://www.dspguide.com/
======
SonOfLilit
I can't recommend this book highly enough to engineers, students and tinkerers
interested in DSP for audio or data analysis.

Just the first chapter on sampling made so many things click for me (I already
had a background in sound synthesis with synthesizers, bpt no theory), and it
made it all seem so _beautiful_ (I still think signal processing is one of the
most beautiful fields of math, probably because of how the Fourier Transform
"happens" to be almost identical to its inverse and this lets you do so much
with such a small and simple set of tools).

The book was clearly written by a good engineer, as it is full of wisdom,
tricks and intuition of the kind you only learn on the field. It has good
exercises and very simple code for everything.

The book takes the discrete-only approach - it doesn't even once show an
integral, only sums on arrays of floating point numbers. This is a very good
approach that I'm not aware of other texts taking.

I studied most of it while living with a friend who applied and taught DSP on
his day job. Every evening we would sit in front of a whiteboard and compare
my newly earned knowledge on a tool of discrete signals processing with the
continuous version that he used and taught. Invariably, we ended with the
conclusion that "my" version was much simpler and more intuitive while
preserving all the needed power in practice. So I never even tried to grok the
continuous Fourier Transform, and yet my intuition of linear systems has
served me very well ever since.

~~~
anigbrowl
Same here, and I did a lot of work in signal processing from designing digital
synthesizers to field and post sound engineering. Probably my single favorite
textbook, unusually well written.

------
ChuckMcM
I would be interested in knowing how it compares to Practical Signal
Processing ([https://www.amazon.com/Practical-Signal-Processing-Mark-
Owen...](https://www.amazon.com/Practical-Signal-Processing-Mark-
Owen/dp/1107411823/))

~~~
madengr
Or Richard Lyons book:

[https://www.amazon.com/Understanding-Digital-Signal-
Processi...](https://www.amazon.com/Understanding-Digital-Signal-
Processing-3rd/dp/0137027419)

~~~
hcrisp
Lyons' book is more thorough and complete, each chapter builds on the
foundation of the prior ones. He aimed for a hands-on approach, not
theoretical. It is very suitable for someone who isn't intimidated by math (of
which there is ample), but would prefer to see examples of it worked out
(especially visually). His list of tips and tricks at the end come in handy
for specific applications (some of which I didn't know I need until I later
came across them). Smith's book, on the other hand, is cursory and a bit more
brief. It might leave you feeling that there is more depth there which you do
not understand. Perhaps I feel this way because I read it online whereas I
read Lyons' as a physical copy. Smith treats similar subjects but with less
detail and fewer of the expert topics. On the other hand, it is a faster read
and free. Both are good for beginners who want to understand DSP better!

------
adamnemecek
If you want to practice your newly acquired DSP skills, you should check out
AudioKit [http://audiokit.io/](http://audiokit.io/)
[https://github.com/audiokit/AudioKit](https://github.com/audiokit/AudioKit)
an audio synthesis and processing framework for (mac|i|tv)OS.

~~~
ZenoArrow
Looks promising, shame it's only available for Apple devices.

~~~
rzzzt
The JACK Audio Connection Kit offers a cross-platform audio API; see their
comparison section for differences:
[http://www.jackaudio.org/faq/comparing_jack.html#macos--
ando...](http://www.jackaudio.org/faq/comparing_jack.html#macos--andor-
windows-centered-systems)

~~~
ZenoArrow
Unless I'm missing something, JACK isn't the same as a platform designed to
help create new DSP algorithms.

~~~
rzzzt
Not at all; it only covers a subset of AudioKit's features, such as low-
latency access to audio and MIDI, global timekeeping and routing between
clients. But its API is sufficiently terse to get started with smaller
clients, and you can chain these pieces together with existing applications.

------
ramzyo
This is a fantastic book. As a Software Engineer with little background in
DSP, this book has been invaluable in tackling DSP-related projects that have
come up at my current job. Really pragmatic approach to the subject matter,
which I've found can easily be lost in other texts.

~~~
tnecniv
What projects?

~~~
ramzyo
Primarily those involving frequency analysis and smoothing via bandpass
filters of time domain (audio) signals

~~~
swagv1
Is this even still relevant though? I had a DSP textbook in college back in
the 1980s.

~~~
madengr
HELL YES!

~~~
chillingeffect
Hell machine learning is largely a signals problem.

------
glial
This is one of the best technical books I've ever read. It is extremely to
read. It focus on building intuition, and then introduces the mathematics that
formally describes what you've just learned. Maybe it's just my learning
style, but I _love_ this book.

~~~
nayuki
I first read this book online over 10 years ago and it has helped me
tremendously in understanding the time domain, frequency domain, and Fourier
transforms. I can't recommend this free book enough!

------
chmaynard
Wavelet theory was an active area of research in mathematics when this book
was first published, but I'm unable to find any mention of the use of wavelets
in the book's table of contents.

~~~
ssalazar
In terms of an introductory DSP guide, wavelets aren't all that fundamental
compared to eg filters, impulse/frequency responses, and the DFT, unless
you're working specifically with something like image compression.

~~~
tejaswidp
Aren't wavelets analogous to the fourier transform. Wouldn't that mean it
would be a fundamental aspect of DSP these days?

~~~
ssalazar
True, the Fourier transform can be viewed as a specialization of wavelet
transforms, so in that sense wavelets are fundamental. Like many mathematical
subjects the specialization is treated before some historical generalization
in educational contexts (if the generalization is ever discussed, as it
doesn't seem to be here). Practically speaking, while wavelet theory is
fascinating, you can get plenty of DSP done without knowing it; but not having
some understanding of the DFT is crippling.

------
opticalflow
I for one, would like to see a DSP book that focuses less on algorithms but
rather on practical problem solving, such as memory bus limitations, red/write
coalescing schemes, register optimizations, caching, and other optimization
techniques. It's one thing to know how to conduct an FFT transform, quite
another when you've been handed the task to do in on, say, a live 4K video
stream.

~~~
trendia
This is a bit higher-level than what you're proposing, but a good introduction
is the "C++ in the Audio Industry" talk [0] given at CppCon 2015.

[https://www.youtube.com/watch?v=boPEO2auJj4](https://www.youtube.com/watch?v=boPEO2auJj4)

------
dopeboy
DSP is the ghost that haunted me in school. I took it in undergrad and just
tanked. Being the stubborn person I am, I tried again in grad school and
barely got by.

I couldn't figure out why I struggled so much. It always felt so abstract.

~~~
madengr
Probably because they shoved Z-transforms down your throat instead of focusing
on the concepts. Filtering, correlation, convolution, are easier to understand
in the discrete domain. It's a shame DSP is not taught prior to classical
signals & systems courses. Instead it's taught as an extension to analog
signal processing, at least in EE school.

------
mcguire
Another interesting book I've been reading lately is _Designing Sound_ by Andy
Farnell. The initial section is a simplified (i.e. not heavily mathematical,
focusing on intuitive understanding) discussion of sound generation and
transmission. Practical exercises are done with Pure Data.

[https://mitpress.mit.edu/designingsound/](https://mitpress.mit.edu/designingsound/)

------
iNerdier
I'm sure this book is fantastic but please, please ask someone (maybe some
design students, they always need good, live briefs) to design you a better
cover if you're writing an open access book like this. It might be the distant
graphic designer in me but it helps to have something at least bit prettier to
draw people in.

~~~
ZenoArrow
If someone needs a cover to draw them in then the chances are the book isn't
for them. Books like this require effort from the reader in order to
internalise the information contained within the book, even if the cover is
prettier that's not going to be enough to provide motivation to get through
the book.

~~~
cvigoe
You could extend that argument about aesthetic design to any application
though, but I think that may be framing it in the wrong way. It's (usually)
not much extra effort to, say, choose a nice font or use a pleasing colour
scheme. I don't think good aesthetic design should be reserved for the masses
or recreational media. Good aesthetic design isn't "beneath" anything; I don't
see a reason to justify bad aesthetic design in educational or instructional
resources.

~~~
ZenoArrow
> "Good aesthetic design isn't "beneath" anything"

I didn't say it was, however if I'm picking up a technical book I'm not fussed
what the cover looks like, because I'm already motivated to learn the
information contained in the book. It's best if that motivation to learn
exists before someone picks up a technical book. If it doesn't the chances of
getting through the book are slim to none, regardless of what the cover looks
like.

------
microDude
I printed, then read the first few chapters. After which, I decided to buy the
book to finish reading. A fantastic book, I could not recommend it more.

Especially, for those that feel that they missed something in their
undergraduate classes on this material. It really explains the concepts well.

------
raverbashing
I think I've known this website even before I joined university (before 2000)

A good reference

------
epberry
Whoa I didn't know about Benford's Law! That is wild.

~~~
mcguire
Are you familiar with Zipf's Law?

[https://en.wikipedia.org/wiki/Zipf's_law](https://en.wikipedia.org/wiki/Zipf's_law)

------
tbt43p
Can please someone convert it to a pdf?

------
zump
Too bad DSP is dead. No one is going to study it, compressive sensing has
underdelivered and now talented EE undergrads are going into Machine Learning.

~~~
stevehiehn
I am sincerly confused buy this comment. Are you implying DSP & machine
learning are not complementary? Don't you need and understanding of DSP in
order to extract features that can be used to perform machine learning?

~~~
zump
Not with a neural network...

~~~
stevehiehn
My passion/hobby project is to assembly music procedurally with NN. I really
cant see a NN being able to extract much meaningfully without billions of
perfectly annotated training sets (i dont think they exisit) The only success
i've experienced is to first extract features from the amplitues via FFT. From
there i can get information like pitches and feed those features into a NN. If
i had a large enough training set i would certainly try feeding in raw
amplitudes but i have my doubts.

~~~
chillingeffect
Have you studied chord extraction? I'm hoping modern NNS can help improve this
problem.

~~~
stevehiehn
Well i think about it alot but i havent accomplished much with that. But i
really like what you are implying though. If you have all the notes played at
a point in time that doesnt mean for know for sure which chord should be
played. But a NN could be told the context around it and make a chord
classification.

