Das IIR-Filter benötigt bei 1. Ordnung nur jeweils ein "altes" Ein- und Ausgabe-Sample (bei 2. Ordnung zwei u.s.w.).
Delphi-Quellcode:
var
Output : SmallInt = 0;
oldOutput : SmallInt = 0;
oldInput : SmallInt = 0;
Function SinglePoleIIRLowPass( Input : SmallInt ) : Smallint;
Const
// Filter-Koeffizienten
b0 = 0.15;
b1 = 0.93;
a1 = 0.85;
Begin
Output := round( b0*Input + b1*oldInput + a1*oldOutput );
oldOutput := Output;
oldInput := Input;
Result := Output;
End;
Siehe auch diverse Beispiele auf
MusicDSP