Work through 11 Python notebook chapters to learn how to analyze, filter, and synthesize audio signals hands-on.
Run the notebooks free in Google Colab or Binder with no local Python installation needed.
Use the included exercises and solutions to self-study Fourier transforms, noise, and filtering concepts at your own pace.
No setup needed, open any notebook in Google Colab or Binder for free with a single click.
Think DSP is a free book about digital signal processing (DSP) written by Allen B. Downey, who teaches at Olin College. This repository contains the Jupyter notebook files that accompany the book, which is also available to read online as HTML or download as a PDF, and to purchase in print from Amazon. Digital signal processing is the study of how to analyze, modify, and generate signals such as audio, in a mathematical and computational way. Most textbooks on the subject start with heavy math from the beginning. This book takes the opposite approach: it assumes you already know how to program in Python, and uses that knowledge to build intuition for the concepts before introducing the formulas. The author argues that starting with working code lets readers get to interesting results much faster. By the end of the first chapter, you can break a sound apart into its frequency components (called harmonics), change them, and reassemble a new sound. The notebooks cover eleven chapters. Each chapter has an exercise notebook and a corresponding solutions notebook. Topics build from basic waveforms and spectrums through Fourier transforms, filtering, noise, modulation, linear time-invariant systems, differentiation and integration, and finally the discrete cosine transform. You can run the notebooks without installing anything by opening them in Google Colab or on Binder, both of which are free cloud-based services. Alternatively you can install the dependencies locally using Anaconda (a Python distribution that bundles the required scientific libraries) or using the poetry package manager. The book is free to use and share under a Creative Commons license that requires attribution and prohibits commercial use.
← allendowney on gitmyhub — every repo by this author, as a profile.
Verify against the repo before relying on details.