Topics
Standalone explorations of specific DSP problems
Each topic is self-contained: theory, clean Python code, and a notebook with runnable experiments. Read them in any order. Topics marked [HW] include embedded C/C++ implementations for ESP32-S3 and STM32F4.
The tone here is research-flavored. Open questions are flagged, not hidden. Where something doesn’t work well, we say so.
Biquads, smoothing, multirate, and several applied techniques (zero-phase filtering, zero-crossing detection, detrending) are now part of the Basics learning path.
The STFT, spectral features, wavelets, MFCC, and statistical features form a deliberate sequence, from the richest spectral front end to the cheapest time-domain one. Feature extraction is the guided arc that threads all five in order and explains when to reach for which.
Seven pages that treat noise as a first-class DSP subject: where it comes from, how to measure it, how to build it, and when adding more of it actually helps. Noise & stochastic processing is the guided arc that threads them in order.
- Estimation basics: what makes one estimator better than another: bias, variance, MSE, the √N law, weighted least squares, and the Cramér-Rao speed limit
- Estimating a sinusoid: amplitude, phase, and frequency of a tone in noise; why frequency accuracy improves as N^-3/2 rather than N^-1/2, and the threshold SNR where every estimator breaks [HW]
- Outlier detection: streaming anomaly detection using robust statistics
- Noise whitening: characterising and whitening 1/f^α noise
- Random processes: the six process classes behind every noise type, and what breaks when you assume Gaussian [HW]
- PSD estimation: from the broken periodogram to Welch’s method, with confidence intervals [HW]
- Noise generation: building noise to a specification: Box-Muller, Voss-McCartney, Perlin, and Simplex [HW]
- Dither: deliberately adding noise to linearise quantisation; the TPDF that makes digital audio work [HW]
- ADC noise: beyond the 6.02 formula: jitter, ENOB, oversampling, and sigma-delta noise shaping [HW]
- Image noise: Gaussian, salt-and-pepper, speckle, and photon shot noise in two dimensions, including a real-time 3×3 median filter on an ESP32 camera [HW]
- Stochastic resonance: when adding noise improves signal detection; the counterintuitive closer
- Adaptive filtering: LMS, NLMS, and RLS for system identification and noise cancellation [HW]
- Matched filtering: detecting known signals in noise, from bat echolocation to LIGO [HW]
- Model-based filtering: optimal estimation when you model the signal and noise statistics, from the Wiener filter to a Kalman tracker on the metal [HW]
- Beamforming: direction-of-arrival estimation with sensor arrays, inspired by the scorpion [HW]
- Gammatone filters: the cochlea as a bank of bandpass filters, one auditory channel per four biquads [HW]
- Gabor filters: oriented visual-cortex receptive fields, from the uncertainty principle to 2-D convolution on hardware [HW]
- PSO for filter design: particle swarm optimization for the non-convex IIR designs where gradients get stuck, plus on-device adaptation [HW]
- Finite word-length effects: what quantization, round-off noise, coefficient sensitivity, and limit cycles do to a fixed-point filter, and why second-order sections survive where direct forms go unstable
- Short-Time Fourier Transform: the sliding-window DFT behind every spectrogram, the time-frequency resolution trade-off, and inverting it with overlap-add, plus a real-time block FFT on the metal [HW]
- Spectral features: describing a spectrum’s shape in five numbers (centroid, spread, rolloff, flux, flatness), the cheap front end of classifiers and voice-activity gates, all from the same FFT bins on the metal [HW]
- Wavelets: when one window size is not enough, a transform whose tiles change shape with frequency, from the scalogram to a filter-bank DWT, denoising, and integer lifting on the metal [HW]
- Mel-frequency cepstral coefficients: the speech feature front end, from pre-emphasis through the mel filterbank to the DCT, and a training-free wakeword detector on the metal [HW]
- Statistical features: summarising a window of samples with a handful of statistics (mean, variance, RMS, skew, kurtosis, ZCR), the cheapest feature front end there is, and an on-device activity classifier and voice gate from an 8-bit AVR up [HW]
- The Goertzel algorithm: evaluating a single DFT bin with a second-order IIR filter, from the math to a real-time DTMF decoder on the metal [HW]
- Pitch detection: estimating fundamental frequency from autocorrelation to real-time embedded systems [HW]
- Empirical mode decomposition: data-driven decomposition into intrinsic mode functions
- PPG signal processing: a complete DSP pipeline for heart rate extraction, case study with ESP32 and MAX30102 [HW]