# One-Liner IIR Filters (1st order)¶

notes
```Here is a collection of one liner IIR filters.
Each filter has been transformed into a single C++ expression.

The filter parameter is f or g, and the state variable that needs to be kept around
between interations is s.

- Christian
```
code
 ``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72``` ``` 101 Leaky Integrator a0 = 1 b1 = 1 - f out = s += in - f * s; 102 Basic Lowpass (all-pole) A first order lowpass filter, by finite difference appoximation (differentials --> differences). a0 = f b1 = 1 - f out = s += f * ( in - s ); 103 Lowpass with inverted control Same as above, except for different filter parameter is now inverted. In this case, g equals the location of the pole. a0 = g - 1 b1 = g out = s = in + g * ( s - in ); 104 Lowpass with zero at Nyquist A first order lowpass filter, by via the conformal map of the z-plane (0..infinity --> 0..Nyquist). a0 = f a1 = f b1 = 1 - 2 * f s = temp + ( out = s + ( temp = f * ( in - s ) ) ); 105 Basic Highpass (DC-blocker) Input complement to basic lowpass, yields a finite difference highpass filter. a0 = 1 - f a1 = f - 1 b1 = 1 - f out = in - ( s += f * ( in - s ) ); 106 Highpass with forced unity gain at Nyquist Input complement to filter 104, yields a conformal map highpass filter. a0 = 1 - f a1 = f - 1 b1 = 1 - 2 * f out = in + temp - ( s += 2 * ( temp = f * ( in - s ) ) ); 107 Basic Allpass This corresponds to a first order allpass filter, where g is the location of the pole in the range -1..1. a0 = -g a1 = 1 b1 = g s = in + g * ( out = s - g * in ); ```

```Great help, although could you advise as to where the parameters a0, a1 and b1 are used for the high pass filter 105?