Filter design, linear
Especially digital
July 24, 2017 — September 18, 2020
Linear Time-Invariant (LTI) filter design is a field of signal processing, and a special case of state filtering that doesn’t necessarily involve a hidden state.
z-Transforms, bilinear transforms, Bode plots, design, etc.
I am going to consider this in discrete time (i.e. for digital implementation) unless otherwise stated, because I’m implementing this in software, not with capacitors or whatever. For reasons of tradition, we usually start from continuous time systems, but this is not necessarily a convenient mathematical or practical starting point for my own work.
This notebook is about designing properties of systems to given specifications, e.g. signal-to-noise ratios, uncertainty principles…
For inference of filter parameters from data, you want system identification; and for working out the hidden states of the system given the parameters, you want the more general estimation theory in state filters.
Related, musical: delays and reverbs.
1 Relationship of discrete LTI to continuous time filters
🏗 See signal sampling.
2 Quick and dirty digital filter design
- Julius O. Smith III’s lovingly curated encyclopædia of filter tricks covers everything commonly used in audio, at the cost of eyeball-searing ugliness and impenetrable curtness. If you already know some linear systems theory, useful, otherwise not.
- Multidimensional state filtering: dsprelated’s state space filter tutorial
- Textbook: Paolo Prandoni and Martin Vetterli, Signal Processing for Communications is available online. Vetterli is smart at unexpected and enlightening perspectives; I’m a fan.
- Textbook: Antoniou has been generally recommended if you want to get hands-on ASAP. (Antoniou 2005)
- Textbook: Orfandis’ opus is free online. (Orfanidis 1996)
- Course notes/textbook: Oppenheim and Verghese, Signals, Systems, and Inference is free online.
- Numerical tours of signal processing gives python, julia and matlab tours of signal processing. Better consumed through their github repo.
- Cheat sheet: Earlevel biquad formulae crib sheet by Nigel Redmon.
- Cheat sheet: musicdsp biquad filter cookbook by Robert Bristow-Johnson.
- Cookbook: musicdsp community filter recipes musicdsp cookbook.
3 State-Variable Filters
A vacuous name; every recursive filter has state variables. Less ambiguous: Chamberlin and Zölzer filters.
Nigel Redmon, digital SVF intro.
4 Time-varying IIR filters
By popular acclaim, Laroche (2007) seems to be the canonical example of design rules for filters that vary over time, and Wishnick (2014) is the most popular single-channel application, which proves the effectiveness of the cytomic variable filters The latter has source code online. See also (Carini, Mathews, and Sicuranza 1999; Murakoshi, Nishihara, and Watanabe 1994; Koshita, Abe, and Kawamata 2018).
5 On graphs
No time to go deep on this rn, but signal processing on graphs is a thing.