Learning Signal Processing
A three-year plan for signal processing, from the first Fourier transform to reproducing papers. I am working through it alongside the field radio plan and an electrical engineering master's.
The checklist and the gate log are mine. Signed out, the page is read-only.A block is done when its gate passes. A gate is a thing built or a problem set finished, with a tolerance or a clock on it.
Each block lists scored practice: problem sets with answers, graded courses, plots that are right or wrong. Their results go in the gate log: a score, a time, an error in decibels.
The ideas
Eight ideas. Each stage returns to all of them at more depth. The second column is what knowing one looks like.
| Idea | You own it when |
|---|---|
Two views of every signal Time and frequency are the same information in different coordinates, and the Fourier transform is the change of basis. Every operation has a meaning in both. | You say what a time-domain operation does to the spectrum, and the reverse, before running it, and the plot agrees. |
Linear time-invariant systems A linear time-invariant system is its impulse response. Convolution in time is multiplication in frequency, which is filtering, echo, blur and a radio channel in one sentence. | Given an impulse response you sketch the frequency response by hand. Given a spectrum you say what the system does to a step. |
Sampling and aliasing Sampling below twice the bandwidth folds high frequencies onto low ones, and no later processing can undo it. This is why anti-alias filters exist and why sampling faster is rarely the first fix. | You choose a sample rate and an anti-alias filter for a new sensor from its bandwidth, and you can show an alias on a plot and name where it came from. |
The time-frequency tradeoff Resolution in time and in frequency trade off. A short window locates an event and smears its frequency. Spectrograms, wavelets and filter banks are different bargains with the same limit. | You pick a window and its length for a given signal, say what the choice costs, and read leakage off a spectrum without being told it is there. |
Poles and zeros A discrete filter is a rational function of z. Zeros carve notches, poles make resonances, the pole radius decides stability, and the phase response is a design choice. | You place poles and zeros by hand to meet a rough specification, and say whether the result is stable and what its group delay does to a pulse. |
Noise is a signal too Real work is estimating something from a noisy measurement. Signal-to-noise ratio, power spectral density, correlation, the matched filter and the Cramér-Rao bound are the vocabulary. | You say how much averaging a measurement needs for a target signal-to-noise ratio, and why the matched filter is the best you can do against white noise. |
Finite precision Quantization adds noise, coefficient rounding moves poles, and fixed-point arithmetic overflows and wraps. Textbook filters fail in hardware for these reasons and no others. | You take a floating-point filter to fixed point, predict its noise floor before running it, and show on a pole-zero plot where the rounding moved the poles. |
It is all linear algebra Every transform is a change of basis. Fourier, cosine and wavelet bases are chosen. Principal components are learned from the data. Seeing transforms as projections is what lets you invent one. | You write the discrete Fourier transform as a matrix, say when it is orthogonal, and derive a new transform from a property you want it to have. |
Rules
- Look at it in both domains. Before and after every operation, plot the signal in time and in frequency. Most mistakes are visible in a plot nobody made.
- Never read past an exercise. A chapter whose problems are not done is a chapter not read.
- Build it before you trust it. Every transform, filter and estimator in the plan is written once by hand, from the definition, before a library version is allowed.
- Real signals wherever the block allows. The radio, a microphone and a sensor are the sources. The noise, drift and clipping they bring are the lesson.
- Write the derivation down. A result you cannot rederive on paper in ten minutes is a result you are borrowing.
- Keep the log. A block is done when its gate passes, and the gate is scored from the log.
Every week
| Study | Five hours a week from the block's reading, in sittings of at least an hour, with the problems done as they come rather than saved for later. |
|---|---|
| Code | Three hours a week in Python with NumPy and SciPy, or MATLAB. Every idea from the week's reading is run against a signal the same week. |
| Derive | Twenty minutes a day rederiving one result from memory on paper: a transform pair, a filter's response, an estimator's variance. Timed, checked against the book, kept. |
| Real signals | One recording a week from the radio, a microphone or a sensor, processed end to end and plotted in both domains. |
| Review | Sunday evening: read the week's log, score the derivations, write the next week's three priorities. |
Beginner
Months 1 to 6
The goal is intuition: to read a spectrum and predict what a filter will do before running it. Everything is done in code against real signals, and the mathematics is only what the code needs.
You leave when aliasing, leakage and phase distortion are things you have caused on purpose, fixed, and can explain with a plot.
1. The mathematics the field assumes
Months 1 to 2
Signal processing is complex numbers, linear algebra and a little probability worn smooth. The block is short because the point is fluency. The proofs come in the journeyman stage.
- Complex numbers until they are boring: rectangular and polar forms, Euler's formula both ways, multiplication as rotation, roots of unity. Smith's chapter 30 and 3Blue1Brown's Euler video.
- Watch the Essence of Linear Algebra series, then work MIT 18.06 through eigenvalues and orthogonal projections, with the problem sets. Vectors as signals and matrices as systems is the reading you are doing it for.
- Stat 110 through expectation, variance and the normal distribution, with its strategic practice problems. Independence and the variance of a sum are what every later noise calculation rests on.
- Set up Python with NumPy, SciPy, Matplotlib and Jupyter. Generate a sine, a square wave, white noise and a chirp. Plot each and save the notebook. Everything after runs in it.
- Start an Anki deck for the formulas, and add to it in every block from here on: transform pairs, filter relations, bounds.
Practice
- MIT 18.06 problem sets and exams
Solutions are posted. Do the problem set before the solution, score it, log the fraction right.
- Stat 110 strategic practice
Problems grouped by theme with solutions. Log each set as a fraction right.
- Anki
Spaced repetition for the formulas. The daily review count and the retention rate are the score.
Gate
Twenty problems in ten minutes with no errors: complex multiplication and division in both forms, Euler's formula in both directions, a two by two inverse and its eigenvalues, and the mean and variance of a sum of independent variables.
Reading
- The Scientist and Engineer's Guide to DSP, chapter 30: Complex numbers
Free. The only chapter of this book to read out of order.
- Essence of Linear Algebra
Free. Sixteen short videos. The pictures the rest of the plan assumes you carry.
- MIT 18.06 Linear Algebra
Free. Strang's lectures, problem sets and exams.
- Introduction to Applied Linear Algebra
Free. Boyd and Vandenberghe. Vectors, matrices and least squares with the signals already in the examples. The book to keep open through the whole plan.
- Stat 110: Probability
Free. Blitzstein's lectures and the book, which is also free online.
2. Signals in two domains
Months 2 to 4
The Fourier transform is the field's one trick, and it is learned by computing it, plotting it and being surprised. Smith's book is the text because every chapter ends in something you can run.
- Read Smith chapters 1 to 13: statistics and noise, the ADC, linear systems, convolution and its properties, the discrete Fourier transform and its applications. Do every example in code.
- Write the discrete Fourier transform from its definition, as a double loop and then as a matrix. Check it against the FFT to one part in a million. Then time both at a thousand points and at a million.
- Write convolution by hand, then prove to yourself in code that it is multiplication in frequency: convolve two signals both ways and plot the difference.
- Build a spectrogram from scratch: frame, window, transform, stack. Try a rectangular, a Hann and a Blackman window on the same recording and keep the three plots side by side.
- Alias a chirp on purpose. Sample it too slowly, plot what comes back, and explain on the plot where each folded frequency came from. Then put an anti-alias filter in front and do it again.
- Record a minute from a microphone and a minute of IQ from the radio. Find the tones, the hum, the noise floor and the carrier in each, in both domains, and label them.
- Work Think DSP chapters 1 to 7 in its notebooks. It is the same material a second way, in code first, and the exercises are the point.
Practice
- Digital Signal Processing 1: Basic Concepts and Algorithms
Prandoni and Vetterli, EPFL. The first of four courses. Graded quizzes and programming assignments, free to audit. Log every quiz score.
- Think DSP exercises
Every chapter ends in exercises with solution notebooks. Do them before looking. Log which you got without the solution.
- Table of Fourier transform pairs
Ten pairs from memory in ten minutes, checked against the table. Log the count right. Twenty is the standard by the end of the block.
Gate
From a bare Python session: write the DFT from its definition, check it against the FFT to within one part in a million, then build a spectrogram of a recording you made and point to the leakage, the aliasing you introduced deliberately, and the window's main lobe, all inside sixty minutes.
Reading
- The Scientist and Engineer's Guide to Digital Signal Processing
Free. Steven W. Smith. The beginner's text: no proofs, every idea shown, every chapter runnable.
- Think DSP
Free. Allen Downey. Signal processing in Python, code before mathematics, with notebooks for every chapter.
- Seeing Circles, Sines, and Signals
Free. Jack Schaedler. An interactive primer on the DFT. An evening, before Smith's chapter 8.
- But what is the Fourier transform? A visual introduction
3Blue1Brown. Twenty minutes. Watch it before Smith's chapter 8 and again after.
- The Fast Fourier Transform (FFT): most ingenious algorithm ever?
Reducible. Why the FFT is fast, from polynomial multiplication up.
- SciPy signal processing tutorial
The library you will lean on once you have written each thing once yourself.
3. Filters
Months 4 to 6
A filter is the first thing anyone is paid to build, and the first place the two domains have to be held in mind at once. Finite and infinite impulse response, windows, poles and zeros, and the phase you did not think about.
- Read Smith chapters 14 to 21: filter basics, moving average, windowed sinc, custom filters, FFT convolution, recursive filters, Chebyshev filters, and comparing the two families.
- Design a windowed-sinc lowpass by hand: sinc, window, truncate, normalise. Compare its response to SciPy's firwin with the same specification and explain every difference.
- Remove mains hum from a real recording with a second-order notch you designed from its pole-zero plot. Show the before and after spectra and the hum's harmonics you missed.
- Pass a square wave through a linear-phase FIR and a Butterworth IIR with the same magnitude response. Plot both outputs and the group delay of each. The ringing is the lesson.
- Implement a biquad in direct form II transposed and run it on a live audio stream in real time. Add a control that moves the pole radius and listen to what stability sounds like.
- Resample a recording between 44.1 and 48 kilohertz with your own polyphase interpolator, then back, and measure the error against the original in decibels.
- Read Julius Smith's Introduction to Digital Filters through the chapters on transfer functions, poles and zeros, and frequency response. It is the same ground as Smith with the mathematics put back.
Practice
- Digital Signal Processing 2: Filtering
The second EPFL course, on filters. Graded. Log every quiz and assignment score.
- fiiir: FIR filter design tool
Design a filter there, then reproduce its coefficients yourself from the same specification. Log the largest coefficient difference and the response difference in decibels.
- Filter design drill
Pick a random specification, design by hand, check against the library. Five in an hour, each within one decibel of specification, is the standard.
Gate
Given a specification with a passband edge, a stopband edge, a ripple and an attenuation: design one FIR and one IIR filter that meet it, implement both without a filter design library, and show the measured response meets every number within half a decibel, inside two hours.
Reading
- The Scientist and Engineer's Guide to DSP, chapter 14: Introduction to digital filters
Free. Chapters 14 to 21 are the block.
- Introduction to Digital Filters with Audio Applications
Free. Julius O. Smith, Stanford. The clearest treatment of poles, zeros and the z-transform that exists, with audio to listen to.
- Understanding Digital Signal Processing
Richard G. Lyons, third edition. The practitioner's book: what the equations mean and the tricks nobody writes down. Read alongside Smith, and keep it for the journeyman stage.
Journeyman
Months 7 to 18
The goal is rigor, and the ability to design rather than apply. This is where most people stall, because the mathematics gets real and the problem sets are long. The two Oppenheim books are the spine, with their problems done, and the master's courses land here.
You leave when you can take a vague requirement, choose the transform and the filter structure, justify the choice on paper, and predict the failure modes before testing.
4. Signals and systems, rigorously
Months 7 to 10
The beginner stage was pictures and code. This is the same material with proofs, done through the problem sets of the course everyone else took. It is where the intuition gets checked against the mathematics and found to be mostly right.
- Oppenheim and Willsky chapters 1 to 7 and 9 to 10: signals, linear time-invariant systems, Fourier series, the continuous and discrete-time Fourier transforms, time and frequency characterisation, sampling, the Laplace and z-transforms. Every basic problem, half the advanced ones.
- Follow MIT 6.003 on OpenCourseWare alongside the book: the lectures, the recitations and every problem set, done before the posted solution.
- Prove the sampling theorem on paper from the Fourier transform of an impulse train, then write the reconstruction and show where it fails for a signal that is not bandlimited.
- For one analog circuit, a second-order RLC: derive the transfer function, the poles, the step response and the frequency response, then measure them on the bench or in a simulator.
- Work Schaum's Outline as the drill book: fifty solved problems a week across the chapters already covered, timed, and the mistakes logged by kind.
Practice
- MIT 6.003 problem sets
Eleven sets with solutions. Score each before reading the solution. Log the fraction right.
- MIT 6.003 exams
Two quizzes and a final, with solutions. These are the gate. Take them under the clock and log the percentage.
Gate
MIT 6.003's two quizzes and the final, taken closed book under their own time limits from the archive, each scored at eighty percent or better.
Reading
- Signals and Systems
Oppenheim and Willsky, second edition. The standard text for a reason: the problems.
- Signals and Systems: Theory and Applications
Free. Ulaby and Yagle, second edition, from Michigan. The same ground as Oppenheim and Willsky, with solutions on the site, if the paid book is out of reach.
- MIT 6.003 Signals and Systems
Free. Lectures, recitations, problem sets, exams, all with solutions.
- Schaum's Outline of Signals and Systems
Hwei Hsu, fourth edition. Hundreds of solved problems. The drill book for this block and the next.
- Barry Van Veen: All Signal Processing
Free. Short lectures on every topic in the block, with a map of what each one assumes. For the one idea a chapter that did not land.
- Stanford EE261: The Fourier Transform and its Applications
Free. Brad Osgood's lectures. The Fourier transform in more depth than either textbook, including distributions. Watch after the sampling chapter.
5. Discrete-time signal processing
Months 10 to 14
The professional core of the subject, from the book every practitioner has on the shelf and the lectures its author gave. Multirate, filter design done properly, spectral analysis, and what finite precision does to all of it.
- Oppenheim and Schafer chapters 2 to 10: discrete-time signals and systems, the z-transform, sampling, transform analysis of systems, structures, filter design, the DFT, the FFT, and Fourier analysis with the DFT. The problems are long. Do them anyway.
- Watch Oppenheim's own lecture series alongside the book, one lecture per chapter section, and the MIT 6.341 problem sets with them.
- Write a radix-2 decimation-in-time FFT from the butterfly up, then a mixed-radix one. Match NumPy to one part in a billion and profile where the time goes.
- Implement the Parks-McClellan algorithm from the Remez exchange and reproduce the equiripple filter in the book's example to the last coefficient.
- Build a rational sample-rate converter from polyphase decimation and interpolation, then a cascade of half-band stages, and show the aliasing budget of each in a plot.
- Take a fourth-order IIR to sixteen-bit fixed point on a microcontroller with CMSIS-DSP: choose the structure, scale each section, predict the noise floor and the pole movement on paper, then measure both.
- Estimate a power spectrum three ways, periodogram, Bartlett and Welch, on the same noise recording, and show the bias and variance of each against what the book predicts.
- Read Lyons in full now. Every chapter you found obvious is one Oppenheim taught you. Every one you did not is a gap to log.
Practice
- MIT 6.341 problem sets
With solutions. Score each before reading the solution. Log the fraction right and the time taken.
- Cambridge Digital Signal Processing exercises
Markus Kuhn's course: compact notes and short programming exercises with a radio and radar flavour. Do the exercise sheets. Log the fraction right.
- Digital signal processing exercises, Rostock
Notebooks on the DFT, filter design, spectral estimation and quantisation, runnable in the browser. Each ends in a result to check. Log which matched.
- Digital Signal Processing 3: Analog vs Digital
The third EPFL course: sampling, interpolation, multirate and quantization. Graded. Log the scores.
- Digital Signal Processing 4: Applications
The fourth EPFL course: a modem, image processing, and real-time. Graded. The modem is the bridge to the radio block.
Gate
A fixed-point IIR filter running on a microcontroller in real time, with the measured noise floor and passband within one decibel of what you predicted on paper before flashing it, and the prediction in the log before the measurement.
Reading
- Discrete-Time Signal Processing
Free. Oppenheim and Schafer, third edition, the whole book as a PDF on MIT OpenCourseWare since 2026. Everything in the block is in it.
- MIT RES.6-008 Digital Signal Processing
Free. Oppenheim's twenty lectures, filmed. Older than the book and the same author, so they agree.
- MIT 6.341 Discrete-Time Signal Processing
Free. The graduate course on the book, with problem sets and solutions.
- Mathematics of the Discrete Fourier Transform
Free. Julius O. Smith. The DFT from complex numbers up, with every proof.
- Rich Radke: Digital Signal Processing
Free. Twenty-five full lectures from Rensselaer, following Proakis and Manolakis. The second angle on every chapter, filmed in a real classroom.
- Digital Signal Processing: Principles, Algorithms, and Applications
Proakis and Manolakis, fifth edition. The other standard text, with more problems than Oppenheim and a chapter on filter banks and wavelets the older book lacks.
- CMSIS-DSP
Arm's fixed and floating-point library for Cortex-M. The fixed-point task runs on it.
6. Noise, estimation and detection
Months 14 to 18
Everything so far assumed you knew the signal. Real work is pulling one out of noise, and saying how well that can be done at all. Statistical signal processing is the half of the subject the deterministic books leave out, and it is where most industrial work lives.
- Random processes properly: stationarity, autocorrelation, power spectral density and the Wiener-Khinchin theorem, and what a linear system does to each. Kay's probability book, then MIT 6.011's notes.
- Derive the matched filter, implement it, and measure its signal-to-noise gain on a pulse in white noise against the theory. Then colour the noise and show it stop being optimal.
- Derive the Cramér-Rao bound for the frequency of a sinusoid in white noise. Implement the maximum likelihood estimator and plot its variance against the bound across signal-to-noise ratio. Find the threshold.
- Build a Wiener filter for a noisy recording from measured spectra, and compare it to the best fixed filter you can design by hand for the same recording.
- Work through Kalman and Bayesian Filters in Python, then write a Kalman filter for a tone whose frequency drifts, and for a position track from noisy range measurements, and tune each from the innovation sequence.
- Neyman-Pearson detection: an energy detector and a matched detector for a known signal in noise, with measured receiver operating characteristic curves against the theoretical ones.
- Kay's Estimation Theory chapters 1 to 8 and 10 to 13, and Detection Theory chapters 1 to 7. Both books' problems are the reading.
Practice
- MIT 6.011 problem sets
With solutions. Score each before the solution. Log the fraction right.
- Kalman and Bayesian Filters in Python, exercises
Each chapter's exercises have solutions in the notebook. Do them blind. Log which needed the solution.
- Cramér-Rao bound drill
Derive the bound for a new parameter from memory, one a week: amplitude, phase, delay, frequency, direction. Timed. Log the minutes and whether it matched the book.
Gate
A frequency estimator for a tone in noise whose measured variance sits within one decibel of the Cramér-Rao bound above the threshold, with the bound derived by hand in the log and the threshold effect shown on the plot.
Reading
- Fundamentals of Statistical Signal Processing, Volume I: Estimation Theory
Steven M. Kay. The estimation book. The Cramér-Rao bound, maximum likelihood and least squares done once and properly.
- Fundamentals of Statistical Signal Processing, Volume II: Detection Theory
Steven M. Kay. The detection book, same author, same care.
- Intuitive Probability and Random Processes using MATLAB
Steven M. Kay. The probability the two volumes assume, taught by the same hand, with code.
- MIT 6.011 Signals, Systems and Inference
Free. Oppenheim and Verghese's course, with the full text of their book as lecture notes. The bridge from deterministic to statistical.
- Kalman and Bayesian Filters in Python
Free. Roger Labbe. The Kalman filter taught by building it in notebooks, from the one-dimensional case up to the unscented and particle filters.
7. A domain: radio
Months 12 to 18, alongside the two blocks above
Depth in one application is what makes the theory stick, and radio is the one whose signals are already in the pack. Every idea in the plan appears in a receiver, and a receiver you wrote every line of is the proof you understood them.
- Work PySDR end to end with the receiver from the radio plan: IQ sampling, the frequency domain, filtering, digital modulation, pulse shaping, synchronisation, channel coding. Every exercise, against live signals.
- Write a broadcast FM demodulator in NumPy from raw IQ: channel filter, decimate, discriminate, de-emphasise, resample to audio. No signal processing library beyond the FFT.
- Write a phase-shift-keyed demodulator with your own matched filter, timing recovery and carrier recovery, and decode a real over-the-air digital signal end to end.
- In loopback with additive white noise, measure bit error rate against energy per bit over noise density for your demodulator and plot it on the theoretical curve. Every decibel of gap is a bug or a lesson.
- Build an orthogonal frequency-division multiplexing transmitter and receiver in loopback: cyclic prefix, pilots, channel estimation, equalisation. Then put a multipath channel between them and watch the equaliser earn its keep.
- Rebuild the FM and the digital receivers in GNU Radio from stock blocks, compare their output to yours sample for sample, and write one custom block in Python.
- Read Rice's Digital Communications: A Discrete-Time Approach for the synchronisation chapters. It is the book that treats a receiver as a signal processing problem rather than a communications one.
Practice
- PySDR exercises
Every chapter ends in exercises against the receiver. Log which decode and which do not, and what the fix was.
- GNU Radio tutorials
Each tutorial ends in a flowgraph that works or does not. Log the time from opening the tutorial to a working graph.
- Bit error rate against Eb/N0
The theoretical curves for each modulation. Your loopback measurement against them is the score. Log the gap in decibels at three points.
Gate
A demodulator you wrote, no GNU Radio blocks, that decodes a real over-the-air digital signal end to end, with a measured bit error rate in loopback within one decibel of the theoretical curve across the range you tested.
Reading
- PySDR: A Guide to SDR and DSP using Python
Free. Marc Lichtman. The best applied signal processing text on the web, every idea with Python you run against the receiver.
- Signal Processing for Communications
Free. Prandoni and Vetterli. The EPFL courses' textbook, ending in a modem built from the theory.
- Digital Communications: A Discrete-Time Approach
Michael Rice. Synchronisation, timing and carrier recovery as discrete-time signal processing. Nothing else covers it as well.
- GNU Radio tutorials
Free. The official tutorials, which are the course. The wiki is the reference.
Expert
Months 19 to 36
The goal is inventing methods and knowing where the standard tools break. The reading turns into papers, the problems into reproductions, and the signals into ones the textbook assumptions fail on: nonstationary, nonlinear, nonuniformly sampled, on hardware with a drifting clock.
You leave when your first instinct about a new problem is usually right, you know which of your instincts are unreliable, and you can explain the tradeoff to someone at each stage below you.
8. Foundations, bases and sparsity
Months 19 to 24
The journeyman knew the transforms. The expert knows why they are the ones they are and how to make a new one: Hilbert spaces, frames, wavelets, and the discovery that a signal sparse in some basis can be recovered from far fewer samples than Nyquist asks for.
- Foundations of Signal Processing chapters 2 to 6: Hilbert spaces, sequences and discrete-time systems, functions and continuous-time systems, sampling and interpolation, approximation and estimation. The exercises are the reading.
- Implement the discrete wavelet transform for Haar and Daubechies-4 from the filter bank, verify perfect reconstruction to machine precision, and denoise a recording by thresholding coefficients. Compare it to the Wiener filter from the noise block on the same recording.
- Build a two-channel filter bank, prove the perfect reconstruction conditions on paper, then break them one at a time and show each failure on a plot.
- Implement orthogonal matching pursuit and basis pursuit, recover an undersampled sparse signal with each, and reproduce the phase transition between success and failure as a function of measurements and sparsity.
- Construct a tight frame that is not a basis, show its redundancy buys robustness to erasures, and derive the frame bounds by hand.
- Mallat chapters 1 to 4 and 7, and the compressed sensing chapter, as the second pass with more depth.
Practice
- Foundations of Signal Processing exercises
Solutions to selected exercises are on the site. Do a chapter's exercises before checking. Log the fraction right.
- An Introduction to Compressive Sampling, figures
Reproduce every figure in the paper from scratch. Log which you could reproduce and the largest discrepancy.
Gate
A sparse recovery experiment reproducing the published phase transition to within five percent of the curve, with your own matching pursuit and your own wavelet transform, and a two-page write-up someone at the journeyman stage can follow.
Reading
- Foundations of Signal Processing
Free. Vetterli, Kovačević and Goyal. The subject rebuilt from linear algebra and approximation, with the companion volume on Fourier and wavelets.
- A Wavelet Tour of Signal Processing: The Sparse Way
Stéphane Mallat, third edition. The wavelet book, now also the sparsity book.
- An Introduction to Compressive Sampling
Free, the authors' copy. Candès and Wakin, IEEE Signal Processing Magazine, 2008. The survey that started most people. Ten pages.
- A Mathematical Introduction to Compressive Sensing
Foucart and Rauhut. The theory behind the survey, with proofs. The first textbook on the subject and still the reference.
- Linear Algebra and Learning from Data
Gilbert Strang. The linear algebra the block leans on, from the person who taught it in the first block, now with the data-driven bases.
9. Adaptive, statistical and array processing
Months 24 to 30
The filters so far were designed once and fixed. The world is not: channels change, noise moves, and sources are somewhere. Adaptive filters, nonlinear state estimation and arrays are the three ways the subject follows a moving target.
- Least mean squares, normalised least mean squares and recursive least squares, from the derivation to code, and their convergence measured against the theory on a channel you defined.
- An adaptive noise canceller and an acoustic echo canceller on real audio from two microphones, with the misadjustment and convergence time logged against Haykin's predictions.
- The extended, unscented and particle filters on one nonlinear tracking problem, bearings-only from a moving observer, with the error of each against the posterior Cramér-Rao bound.
- Direction of arrival: a delay-and-sum beamformer, then MUSIC and ESPRIT, on synthetic data first and then on a real array, four coherent receivers or a microphone array you built.
- Parametric spectral estimation: autoregressive models, Capon and MUSIC against the periodogram on the same data, with each method's resolution limit shown against Stoica and Moses.
- Haykin chapters 1 to 10 and 14 to 15, Simon chapters 1 to 7 and 13 to 15, Van Trees chapters 2 to 4 and 8 to 9. Long books. The computer experiments in each are the part that counts.
Practice
- Haykin's computer experiments
Each chapter's experiments have published results. Reproduce them. Log the largest gap between yours and the book's.
- Kalman and Bayesian Filters in Python, nonlinear chapters
Chapters 10 to 12 cover the extended, unscented and particle filters with exercises. Do them blind. Log which needed the solution.
Gate
Direction of arrival on a real array you built, MUSIC against a beamformer, with the measured bearing error under two degrees on a known source and the resolution limit shown against the textbook's prediction.
Reading
- Adaptive Filter Theory
Simon Haykin, fifth edition. The adaptive filtering reference, with computer experiments in every chapter.
- Optimal State Estimation
Dan Simon. Kalman, H-infinity and nonlinear filters with the derivations in full and the code online.
- Optimum Array Processing
Harry L. Van Trees. Part four of Detection, Estimation and Modulation Theory. The array processing reference.
- Spectral Analysis of Signals
Free, from the authors. Stoica and Moses. Parametric and nonparametric spectral estimation, from the people who did most of it.
- Estimation with Applications to Tracking and Navigation
Bar-Shalom, Li and Kirubarajan. The tracking reference, for the nonlinear filtering task once Simon has been read.
- KrakenSDR
A five-channel coherent receiver, if the array is to be radio rather than acoustic.
10. Papers, reproduction and the learned bridge
Months 30 to 36
Past this point the reading is papers and the practice is reproducing them, which is the fastest way to find out where a method quietly cheats. The bridge to machine learning is here too: a convolutional network is a learned filter bank, and knowing that is what tells you when the classical method wins.
- IEEE Signal Processing Magazine every issue, and the tables of contents of the Transactions every month. One paper a week read in full, with a one-paragraph summary in the log.
- Reproduce three papers from the Transactions, one a quarter, to the authors' reported numbers or to a documented reason why not. Public code and a write-up for each.
- On one real task, keyword spotting or modulation classification: a hand-designed front end against a learned one, a mel filter bank against a convolutional first layer. Measure both, then plot the learned filters and say what they learned.
- Brunton and Kutz for the data-driven side: the singular value decomposition, proper orthogonal decomposition, dynamic mode decomposition and sparse regression, each applied to a signal from the earlier blocks.
- One project where the textbook assumptions fail: nonuniform sampling, a drifting clock between transmitter and receiver, or a nonlinear amplifier. Characterise the failure, then fix it.
- Teach one block from each stage to someone at the stage below it, with a drawing and a plot. If they cannot do the block's gate afterwards, the teaching failed.
- Submit one reproduction to ReScience C, or one result to a signal processing workshop. Peer review is the gate nobody can grade themselves.
Practice
- ReScience C
A peer-reviewed journal of reproductions. A submission accepted there is the block's gate graded by someone else. Log the review.
- IEEE ICASSP
The field's annual conference, each May. Attending is the reading. A workshop submission is the score. Log either.
Gate
Three published papers reproduced to within the authors' reported numbers, or a documented reason why they cannot be, each with public code and a write-up, in twelve months.
Reading
- IEEE Signal Processing Magazine
Tutorials and surveys, written to be read. The monthly reading.
- IEEE Transactions on Signal Processing
The journal of record. The papers to reproduce come from here.
- Data-Driven Science and Engineering
Brunton and Kutz, second edition. The bridge from signal processing to machine learning, with the lectures free on the site.
- Machine Learning: A Bayesian and Optimization Perspective
Sergios Theodoridis, second edition. Machine learning written by a signal processing professor in the language of this plan: adaptive filters, sparsity and Bayesian estimation first.
- Deep Learning
Free. Goodfellow, Bengio and Courville. Chapter 9, on convolutional networks, is the one to read as a signal processing text.
The bookshelf
Every book the blocks use, with what it is for. Free ones are marked. For the rest, a used copy of the edition named, or a library.
| Book | Stage | Why this one |
|---|---|---|
| The Scientist and Engineer's Guide to Digital Signal Processing Steven W. Smith Free | Beginner | The first book. No proofs, every idea shown, every chapter something you can run the same evening. |
| Think DSP Allen B. Downey Free | Beginner | The same ground as Smith in Python notebooks, code before mathematics. Read the two together. |
| Introduction to Digital Filters with Audio Applications Julius O. Smith III Free | Beginner | Poles, zeros and the z-transform explained better than anywhere else, with audio to hear the difference. |
| Understanding Digital Signal Processing Richard G. Lyons, third edition | Beginner | The practitioner's book: what the equations mean, and the tricks that are in no other textbook. The one to buy first. |
| Signals and Systems Alan V. Oppenheim and Alan S. Willsky, second edition | Journeyman | The standard undergraduate text, and MIT 6.003 follows it. The problems are the reason. |
| Signals and Systems: Theory and Applications Fawwaz T. Ulaby and Andrew E. Yagle, second edition Free | Journeyman | Michigan's free signals and systems text, with solutions on the site. The substitute for Oppenheim and Willsky if the paid book is out of reach. |
| Schaum's Outline of Signals and Systems Hwei P. Hsu, fourth edition | Journeyman | Hundreds of solved problems. The drill book. |
| Discrete-Time Signal Processing Alan V. Oppenheim and Ronald W. Schafer, third edition Free | Journeyman | The professional reference. Every practitioner has it, the free MIT lectures are by its author, and since 2026 the book itself is free on OpenCourseWare. |
| Digital Signal Processing: Principles, Algorithms, and Applications John G. Proakis and Dimitris G. Manolakis, fifth edition | Journeyman | The other standard text. More problems than Oppenheim and Schafer, and Radke's free lectures follow it. |
| Mathematics of the Discrete Fourier Transform Julius O. Smith III Free | Journeyman | The DFT with every proof, from complex numbers up. The rigorous companion to the beginner stage. |
| Fundamentals of Statistical Signal Processing, Volume I: Estimation Theory Steven M. Kay | Journeyman | Estimation done once and properly: bounds, maximum likelihood, least squares, Bayesian. Every later block cites it. |
| Fundamentals of Statistical Signal Processing, Volume II: Detection Theory Steven M. Kay | Journeyman | Detection with the same care as the first volume. Read after it. |
| Intuitive Probability and Random Processes using MATLAB Steven M. Kay | Journeyman | The probability the two volumes assume, taught by the same hand. Skip it if Stat 110 and a random processes course are already done. |
| Kalman and Bayesian Filters in Python Roger R. Labbe Jr. Free | Journeyman | The Kalman filter built up in notebooks from the one-dimensional case. The best free thing on the subject. |
| PySDR: A Guide to SDR and DSP using Python Marc Lichtman Free | Journeyman | Applied signal processing against a real receiver, every idea with code. The radio block's text. |
| Signal Processing for Communications Paolo Prandoni and Martin Vetterli Free | Journeyman | The EPFL courses' textbook, ending in a modem built from the theory. The bridge between the two Oppenheim books and radio. |
| Digital Communications: A Discrete-Time Approach Michael Rice | Journeyman | Synchronisation as signal processing. The book to read before writing a receiver's timing and carrier recovery. |
| Foundations of Signal Processing Martin Vetterli, Jelena Kovačević and Vivek K Goyal Free | Expert | The subject rebuilt from Hilbert spaces and approximation. The book that turns a journeyman's toolbox into a theory. |
| A Wavelet Tour of Signal Processing: The Sparse Way Stéphane Mallat, third edition | Expert | Wavelets, time-frequency and sparsity from the person who did much of it. |
| A Mathematical Introduction to Compressive Sensing Simon Foucart and Holger Rauhut | Expert | Compressed sensing with the proofs. Read after the survey, when the phase transition experiment raises the question of why. |
| Linear Algebra and Learning from Data Gilbert Strang | Expert | The linear algebra of the expert stage: the singular value decomposition, low rank, and the bases you learn from data. |
| Adaptive Filter Theory Simon Haykin, fifth edition | Expert | The adaptive filtering reference, with computer experiments to reproduce. |
| Optimal State Estimation Dan Simon | Expert | Kalman, H-infinity and nonlinear filters with the derivations in full and the code online. The Kalman book after Labbe. |
| Estimation with Applications to Tracking and Navigation Yaakov Bar-Shalom, X. Rong Li and Thiagalingam Kirubarajan | Expert | The tracking reference: nonlinear filtering and data association, for when the Kalman filter meets a real target. |
| Optimum Array Processing Harry L. Van Trees | Expert | The array processing reference. Fourteen hundred pages. The block reads four chapters of it. |
| Spectral Analysis of Signals Petre Stoica and Randolph Moses Free | Expert | Spectral estimation, parametric and not, by the authors of most of it. Free from the authors. |
| Data-Driven Science and Engineering Steven L. Brunton and J. Nathan Kutz, second edition | Expert | The bridge to machine learning, with every chapter's lectures free on the site. |
| Machine Learning: A Bayesian and Optimization Perspective Sergios Theodoridis, second edition | Expert | Machine learning from the signal processing side: adaptive filters, sparsity and Bayesian estimation before anything is called a network. |
| Deep Learning Ian Goodfellow, Yoshua Bengio and Aaron Courville Free | Expert | Chapter 9 on convolutional networks, read as a signal processing text: a learned filter bank, and when a designed one still wins. |