35
$\begingroup$

What are some recommended resources (books, tutorials, lectures, etc.) on digital signal processing, and how to begin working with it on a technical level?

$\endgroup$

13 Answers 13

33
$\begingroup$

My recommendation in terms of text books is Rick Lyons's Understanding DSP. My review of the latest edition is here.

I, and many others from the ${\tt comp.dsp}$ community and elsewhere, have helped Rick revise parts of the text since the first edition.

For self-study, I know of no better book.

As an on-line, free resource, I recommend Steve Smith's book. Personally, I prefer Rick's style, but Steve's book as the advantage of online accessibility (and the online version is free!).


Edit:

Rick sent me some feedback that I thought I'd share here:

For your colleagues that have a copy of my DSP book, I'll be happy to send them the errata for my book. All they have to do is send me an E-mail telling me (1) The Edition Number, and (2) the Printing Number of their copy of the book. The Printing Number can be found on the page just before the 'Dedication' page. My E-mail address is: R.Lyons [at] ieee.org

I recommend that your colleagues have a look at: http://www.redcedar.com/learndsp.htm

Rick also gave me a long list of online DSP references. There are way too many to put here. I will see about setting up a GoogleDocs version and re-post here later.

$\endgroup$
  • 1
    $\begingroup$ +1 for the Rick Lyons book recommendation - it's much more accessible than the more common and more academic recommendations such as Oppenheim & Schafer $\endgroup$ – Paul R Oct 15 '11 at 9:57
  • 2
    $\begingroup$ I have just started to read Rick Lyons book as a refresher/self-study - that man has made the field VERY accessible to the reader. He understands that there is more than math for understanding a subject, and that the reader must have an intuitive feel for it. He manages to teach it very very well. $\endgroup$ – Spacey Oct 15 '11 at 18:11
  • 2
    $\begingroup$ I'm accepting this one as the answer, although I give kudos to Dipan as well for the more theoretical recommendations. $\endgroup$ – Dulan Oct 16 '11 at 5:01
  • 1
    $\begingroup$ @someguy: Understood. For me, most of that stuff only makes sense (to me!) when put into the context of solving a problem. Just talking about it theoretically (even if well-explained), makes it harder to grasp. I'll bounce your feedback to Rick! If you have any suggestions about how it can be improved, I'm sure he'd love to hear it. $\endgroup$ – Peter K. Jun 21 '12 at 21:18
  • 1
    $\begingroup$ @IsaacKleinman : Do both! Steve's book is available for free to download: dspguide.com If that works for you, you're done. If not, take a look at Rick's book. $\endgroup$ – Peter K. Feb 11 '13 at 21:12
18
$\begingroup$

Paul Falstad's Java applets are a fantastic way to interact with systems and learn them intuitively. The Digital Filter applet is a revelation.

Check out the rest at http://www.falstad.com/mathphysics.html.

For a more informal introduction, I like A Digital Signal Processing Primer by Ken Steiglitz, which is exactly what it says it is. I TAed a class using this text and really liked the style. It's well written, and makes the material pretty interesting.

A DSP Primer is written for a broad audience including:

  • Students of DSP in Engineering and Computer Science courses.
  • Composers of computer music and those who work with digital sound.
  • WWW and Internet developers who work with multimedia.
  • General readers interested in science that want an introduction to DSP.

Features:

  • Offers a simple and uncluttered step-by-step approach to DSP for first-time users, especially beginners in computer music.
  • Designed to provide a working knowledge and understanding of frequency domain methods, including FFT and digital filtering.
  • Contains thought-provoking questions and suggested experiments that help the reader to understand and apply DSP theory and techniques.
$\endgroup$
  • $\begingroup$ If I hadn't already upvoted this one, it would get another +1 just for that Digital Filter applet. $\endgroup$ – datageist Oct 28 '11 at 18:07
18
$\begingroup$

The below three are the best referred Text books on this subject.

  1. Discrete-Time Signal Processing, Prentice-Hall Signal Processing Series by Alan V. Oppenheim, Ronald W. Schafer, John R. Buck.

  2. Digital Signal Processing: Principles, Algorithms and Applications, Prentice Hall John G. Proakis, Dimitris K Manolakis

  3. Signals and Systems, Prentice Hall Alan V. Oppenheim, Alan S. Willsky, with S. Hamid

If you need to pick one of them, pick - Discrete-Time Signal Processing Prentice-Hall Signal Processing Series by Alan V. Oppenheim, Ronald W. Schafer, John R. Buck. Of course, as listed in Hossein's answer Sanjit Mitra might just be easy for beginner.

Further books with their individual strengths:

  • Digital Processing of Signals, Wiley & Sons by M. Bellanger. Nice intro to filters, very cheap used.
  • A Foundation in Digital Communications, Cambridge University Press by Amos Lapidoth. *A really smooth and clean intro to signal theory. Available for free online.
  • A statistical Theory of Mobile-Radio Reception, The Bell System Technical Journal (BSTJ), July-Aug 1968. Ever wondered how to model random channels and what they do to signals? Great classical paper, available online.
$\endgroup$
  • $\begingroup$ Alan V. Oppenheim books are great and widely used! $\endgroup$ – Royi Oct 15 '11 at 12:55
  • $\begingroup$ You can see a list of Signal Processing books suggested by professor Oppenheim at [DoradoList](www.doradolist.com/alan-oppenheim.html) $\endgroup$ – TJ1 Jul 13 '18 at 12:47
10
$\begingroup$

For theoretical studies, Oppenheim is the god but if you're going to use it in practice, Mitra is one of the best:

Digital Signal Processing: A Computer-Based Approach, Sanjit K. Mitra

$\endgroup$
  • $\begingroup$ @hossein, do you know if it has exercises with solutions? $\endgroup$ – moshikafya Jul 6 '17 at 2:58
7
$\begingroup$

You can visit the MIT OpenCourseWare. A set of 20 video lectures by professor Alan V. Oppenheim.

$\endgroup$
5
$\begingroup$

In addition to the already mentioned books, if you are focused towards algorithm development, Proakis' Digital Signal Processing using MATLAB is an excellent resource for starters. The numerical recipes series is also an excellent resource regarding how to implement some core DSP algorithms (spectral decomposition, convolutions, interpolation and extrapolation etc.) in practical situations.

For me, Oppenheim gives a much more rigorous theoretical treatment to the subject as compared to Proakis. Proakis, I've always felt, provides somewhat more applicability to real world scenarios.

$\endgroup$
3
$\begingroup$

I found this applet very helpful when understanding the nature of convolution in time. The Joy of Convolution. It lets you "draw" your time signals and convolve them so you get a picture of what's happening in the time domain.

$\endgroup$
3
$\begingroup$

I would add to the list the book "Digital Filters", by Richard Hamming. A short classic, rather than a heavy tome.

$\endgroup$
3
$\begingroup$

The DSP neophyte who has some mathematical maturity may want to start with

which is freely available online. The authors have also made their two other books freely available online:

From the preface of Foundations of Signal Processing:

This book covers the foundations for an in-depth understanding of modern signal processing. It contains material that many readers may have seen before scattered across multiple sources, but without the Hilbert space interpretations, which are essential in signal processing. Our aim is to teach signal processing with geometry, that is, to extend Euclidean geometric insights to abstract signals; we use Hilbert space geometry to accomplish that. With this approach, fundamental concepts – such as properties of bases, Fourier representations, sampling, interpolation, approximation, and compression – are often unified across finite dimensions, discrete time, and continuous time, thus making it easier to point out the few essential differences. Unifying results geometrically helps generalize beyond Fourier-domain insights, pushing the understanding farther, faster.

$\endgroup$
2
$\begingroup$

https://www.amazon.com/dp/B01MS8W9XI

This book will go through different projects that will teach the reader how to write software: to improve their singing, synthesize different guitar sounds, change the human brainwave, break glass, help people to relax and learn about many different sound engineering and DSP tools : DFT, FFT, High pass filter, low pass filter, fundamental frequency, Karplus-strong algorithm. In this book they will learn about: Isochronic tones, Binaural beats, and Monaural beats and how to code them. Then they will be able to come up with their own beats. They will learn about sound waves and a lot more. There are very few books / websites that show people how to code DSP tools. There are a lot that show the theory but not many that show the application, so I think this Book would be very useful for high school students, college students, and inter level employees.

$\endgroup$
0
$\begingroup$

Some people like to focus on DSP as a subject in of itself. I like to think that learning is more of a spiral than a linear progression. I would suggest that you pursue an application that interests you that uses signal processing and there are many and growing. Most of the important breakthroughs in DSP were found by people solving their own problems. All the books suggested above are very good. An interesting problem with a simple solution is typically more appealing to a student to a page of proofs, unless you like a page a proofs and that works too.

$\endgroup$
0
$\begingroup$

Here you can find a list of great DSP books suggested by top experts such as Professor Alan Oppenheim from MIT.

$\endgroup$

Not the answer you're looking for? Browse other questions tagged or ask your own question.