Basics
A learning path through the foundations of DSP
These chapters build on each other. Start at the beginning and work through in order; each one assumes you’ve read what came before.
The tone here is pedagogical. We take time to build intuition, work through examples, and make sure the concepts land before moving on.
- Mathematics: calculus (derivatives, integrals), basic probability (mean, variance), complex numbers (\(e^{j\theta}\))
- Programming: Python with NumPy basics (arrays, indexing, plotting with Matplotlib)
- No prior DSP knowledge required (we start from scratch)
By the end of this path you will understand how signals are sampled and reconstructed, how digital filters work in both time and frequency domains, and how to design filters that meet real-world specifications.
- Signals and sampling
- Discrete-time systems
- Noise and SNR
- The z-domain
- The frequency domain
- Filter design
- Filter structures
- Smoothing
- Biquad filters
- Multirate systems
- Convolution, correlation, and modulation
- DSP on a microcontroller
Applied techniques
Standalone techniques, each solving a specific practical problem. Read them in any order once you have the sequential chapters under your belt; they do not form a strict sequence.
- Zero-phase filtering: forward-backward filtering without phase distortion
- Zero-crossing detection: frequency estimation, event detection, and hysteresis
- Detrending: removing slow drifts for stationarity and clean spectra
Interactive tools
- Pole-Zero Explorer: drag poles and zeros around the z-plane and watch the magnitude and phase response update in real time. A hands-on companion to Chapter 4 and Chapter 5.
After working through the sequential chapters, try the capstone exercise, an end-to-end signal processing pipeline that ties everything together.
Each chapter takes roughly 1–2 hours to read and work through, including exercises.
Practice problems for each chapter: Exercises