Buy new:
-20% $24.07$24.07
Delivery Thursday, January 23
Ships from: Amazon.com Sold by: Amazon.com
Save with Used - Very Good
$15.19$15.19
Delivery January 27 - February 6
Ships from: Amazon Sold by: Cosmic Thing
Download the free Kindle app and start reading Kindle books instantly on your smartphone, tablet, or computer - no Kindle device required.
Read instantly on your browser with Kindle for Web.
Using your mobile phone camera - scan the code below and download the Kindle app.
Think DSP: Digital Signal Processing in Python 1st Edition
Purchase options and add-ons
If you understand basic mathematics and know how to program with Python, youâ??re ready to dive into signal processing. While most resources start with theory to teach this complex subject, this practical book introduces techniques by showing you how theyâ??re applied in the real world. In the first chapter alone, youâ??ll be able to decompose a sound into its harmonics, modify the harmonics, and generate new sounds.
Author Allen Downey explains techniques such as spectral decomposition, filtering, convolution, and the Fast Fourier Transform. This book also provides exercises and code examples to help you understand the material.
Youâ??ll explore:
- Periodic signals and their spectrums
- Harmonic structure of simple waveforms
- Chirps and other sounds whose spectrum changes over time
- Noise signals and natural sources of noise
- The autocorrelation function for estimating pitch
- The discrete cosine transform (DCT) for compression
- The Fast Fourier Transform for spectral analysis
- Relating operations in time to filters in the frequency domain
- Linear time-invariant (LTI) system theory
- Amplitude modulation (AM) used in radio
Other books in this series include Think Stats and Think Bayes, also by Allen Downey.
- ISBN-101491938455
- ISBN-13978-1491938454
- Edition1st
- PublisherO'Reilly Media
- Publication dateAugust 30, 2016
- LanguageEnglish
- Dimensions7.1 x 0.3 x 9 inches
- Print length165 pages
Frequently bought together

Products related to this item
Customer reviews
Customer Reviews, including Product Star Ratings help customers to learn more about the product and decide whether it is the right product for them.
To calculate the overall star rating and percentage breakdown by star, we don’t use a simple average. Instead, our system considers things like how recent a review is and if the reviewer bought the item on Amazon. It also analyzed reviews to verify trustworthiness.
Learn more how customers reviews work on AmazonTop reviews from the United States
There was a problem filtering reviews right now. Please try again later.
- Reviewed in the United States on March 10, 2018Excellent book to explore digital signal processing. Follow the author's advice to install "Anaconda" and use "Spyder" to open the programs he provides for download. This is a clear and concise way to play with advanced concepts for processing signals. Recommend "Practical Signal Processing" by Mark Owen as an adjunct which takes a deeper dive into the underlying math.
- Reviewed in the United States on December 31, 2020You could write this book in a month or two of studying DSP from free online resources. I'm pretty shocked how glossy this is. Don't expect to be able to write a production ready synth. I'd like to see one of these books go into audio encodings and formats. You know, the most basic and most important stuff you'll encounter when writing your own DSP application. Just another drone professor vomiting's up what he vomits in class. Add some practicality and realism.
- Reviewed in the United States on December 30, 2019Great well-written book on signal processing theory and practice in Python...
Joe
- Reviewed in the United States on June 14, 2017Simple and good book that explains signal processing basics with python samples. Very good approach for learning DSP and python.
- Reviewed in the United States on May 7, 2018Good intro to dsp for beginners
- Reviewed in the United States on March 29, 2018Echoing another reviewer, the custom code requirement means you learn their custom code rather than, you know, the standard modules numpy and scipy. For example, at least four separate classes are required, representing hundreds of lines of code, are required just to execute the first six lines of code in the book. All those lines do is define two signals, a cosine and a sine, sums them, then plots them. This, infuriatingly, hides some basic steps. Here's how you can create a cosine wave with frequency 440Hz:
duration = 0.5
framerate = 11025
n = round(duration*framerate)
ts = np.arange(n)/framerate
amp = 1.0
freq = 440
offset = 0.0
cos_sig = amp * numpy.cos( 2*numpy.pi*ts*freq + offset)
freq = 880
sin_sig = amp * numpy.sin( 2*numpy.pi*ts*freq + offset)
Instead, these clowns have
cos_sig = thinkdsp.CosSignal(freq=440,amp=1.0,offset=0)
sin_sig = thinkdsp.SinSignal(freq=440,amp=1.0,offset=0)
mix = cos_sig + sin_sig
where CosSignal and SinSignal are custom classes, not functions, which inherits four separate classes, NONE of which are necessary, and all of which serve to make things more complex than necessary, on the pretense this makes things easier. The classes these class inherit are a generic Sinusoid and SumSignal classes, which inherits a Signal class, which depends on a Wave class, which performs plotting using pyplot in matplotlib. None of which make anything really any easier, but does serve to hide a lot of basic functionality, like hiding how to use numpy, matplotlib, and pyplot.
In short, just to get through the first two pages, you have to have access to github to import their ridiculous thinkdsp, thinkplot, and thinkstats, totalling around 5500 lines of code, or you are just screwed and can't use this book. All decent teaching books develops code you need as necessary and do NOT require half a dozen files with thousands of lines of custom code just to get to page 2. What kind of clown does this when trying to write a book to show how to do basic signal processing? Someone not interested in teaching you DSP, but trying to show off their subpar programming skills by adding unnecessary complexity (a sure sign of a basic programmer, not a good).
The authors openly admit their custom code is nothing more than wrappers in numpy and scipy, so the authors KNEW they were writing a crappy book and filling it with a LOT of unnecessary complexity. Bad code is bad code. Using bad code to teach makes bad teaching. It's obvious Allen B. Downey has spent his career in academia, where writing quality code doesn't matter.
- Reviewed in the United States on May 23, 2020After a quick read for content, I am very pleased with this book. It is one of the few I've found with a mix of practical and theoretical. The examples and problems are excellent if a bit elementary. Some of the criticism about using his own packages is over-the-top but not unjustified -- straight use of NumPy, etc. would be nice, but the author was (successfully) attempting to hide some complexity.
- Reviewed in the United States on July 10, 2017O'Reilly needs to stop having their authors write custom code for their books. Teach with the standard toolboxes.
Top reviews from other countries
S A HUGHESReviewed in the United Kingdom on August 28, 20215.0 out of 5 stars Clearly written
This was just what I needed to extend my knowledge on the subject.
-
Div MasterReviewed in Italy on May 10, 20214.0 out of 5 stars Ottimo libro
l'unica peca è che scritto tutto in inglese, quindi nei concetti pratici non si capisce molto, e gli esempi sono un po datati, metto 4 stelle solo per questo per il resto non posso lamentarmi.
Xabier FernandezReviewed in Spain on October 13, 20191.0 out of 5 stars Doesn't explain anything.
As O'reilly has accustomed us lately, this is another book that teaches you a formula or function, and has the face of saying that 'now that we know how windowing works...', for example. Even if it doesn't explain anything.
Amazon CustomerReviewed in Germany on February 4, 20194.0 out of 5 stars Good book
Hi,
I like this book, it is written in a simple language.
However I would prefer code examples only using standard off the shelf, mainstream libraries.
Trading CentralReviewed in Canada on September 23, 20165.0 out of 5 stars Perfect Book for the Coder Wanting to Learn About Digital Signal Processing
Short, concise and to the point just the way it should be! For the python coder looking for good code this book will be your cookbook and starting point. The author has taken a complex subject area and made it accessible for the coder using python code and simple english explanations that provides a good starting point for understanding digital signal processing.


