IIR Filter Designer online: Pole, Nullstellen und SOS-Koeffizienten
Entwirf digitale IIR-Filter direkt im Browser: Filtertyp wählen, Ordnung einstellen, Frequenzgang prüfen, Pole und Nullstellen im Einheitskreis verstehen und den passenden Python-, C- oder JavaScript-Code exportieren.
Einordnung: Diese Seite ergänzt den bestehenden Biquad-Koeffizienten-Rechner. Hier steht stärker die grafische Sicht im Fokus: Frequenzgang, Pole, Nullstellen und Stabilität.
IIR / Biquad Filter Designer
Wähle einen Filtertyp, setze Abtastrate, Frequenz und Güte. Der Designer berechnet die normierten Biquad-Koeffizienten für die Standardform \(a_0 = 1\) und zeichnet Frequenzgang sowie Pol-Nullstellen-Diagramm.
Bei Tiefpass und Hochpass wird die Ordnung als Butterworth-Kaskade aus mehreren Biquad-Sektionen umgesetzt. Bei Bandpass und Notch werden die Sektionen ebenfalls unterschiedlich gewichtet, damit keine identischen Filter mehrfach hintereinander geschaltet werden.
Frequenzgang
Pol-Nullstellen-Diagramm
Phasengang
Gruppenlaufzeit
Impulsantwort
Sprungantwort
Was zeigt das Pol-Nullstellen-Diagramm?
Das Pol-Nullstellen-Diagramm zeigt den Filter nicht im Zeitbereich und auch nicht direkt im Frequenzbereich, sondern in der sogenannten z-Ebene. Diese Darstellung ist bei digitalen Filtern sehr nützlich, weil sie auf einen Blick zeigt, welche Frequenzen verstärkt, gedämpft oder vollständig unterdrückt werden und ob der Filter stabil ist.
Was hat der Einheitskreis mit Frequenz zu tun?
Beim digitalen Filter betrachtet man die Übertragungsfunktion \(H(z)\). Für den Frequenzgang wird nicht irgendein \(z\)-Wert eingesetzt, sondern ein Punkt auf dem Einheitskreis:
z = e^(j·ω)
Das bedeutet: Wenn man einmal um den Einheitskreis läuft, geht man durch alle digitalen Frequenzen von 0 Hz bis zur Nyquist-Frequenz \(f_s/2\). Der Punkt ganz rechts entspricht 0 Hz beziehungsweise Gleichanteil. Der Punkt ganz links entspricht der halben Abtastrate. Deshalb ist der Einheitskreis die Verbindung zwischen dem Pol-Nullstellen-Bild und dem Frequenzgang.
Was bedeuten Real- und Imaginärachse?
Die horizontale Achse im Pol-Nullstellen-Diagramm ist die Realachse, die vertikale Achse ist die Imaginärachse. Ein Punkt in der z-Ebene besteht deshalb aus zwei Anteilen:
z = Re + j·Im
Der Realanteil beschreibt die horizontale Position, der Imaginäranteil die vertikale Position. Zusammen ergeben sie einen komplexen Punkt. Für die Frequenzinterpretation ist vor allem der Winkel dieses Punktes wichtig: Punkte rechts auf der Realachse liegen bei 0 Hz, Punkte oben und unten stehen für mittlere digitale Frequenzen, und Punkte links auf der Realachse liegen bei der Nyquist-Frequenz.
Der Abstand vom Ursprung ist ebenfalls wichtig. Bei Polen beschreibt dieser Abstand, wie stark die Rückkopplung wirkt. Liegt ein Pol nahe am Ursprung, klingt sein Einfluss schnell ab. Liegt ein Pol nahe am Einheitskreis, bleibt seine Wirkung länger erhalten und der Filter wird resonanter beziehungsweise schmalbandiger.
Komplexe Pole und Nullstellen treten bei realen Filterkoeffizienten fast immer paarweise gespiegelt an der Realachse auf: ein Punkt mit positivem Imaginäranteil und ein passender Punkt mit negativem Imaginäranteil. Diese Paarung sorgt dafür, dass der Filter trotz komplexer z-Ebene am Ende mit reellen Eingangssignalen und reellen Koeffizienten arbeiten kann.
Wie hängen Koeffizienten, Pole und Nullstellen zusammen?
Ein Biquad-Filter wird meistens mit dieser Differenzgleichung implementiert:
y[k] = b0·x[k] + b1·x[k-1] + b2·x[k-2] - a1·y[k-1] - a2·y[k-2]
Daraus entsteht die Übertragungsfunktion:
H(z) = (b0 + b1·z^-1 + b2·z^-2) / (1 + a1·z^-1 + a2·z^-2)
Die b-Koeffizienten stehen im Zähler. Wenn dieser Zähler für einen bestimmten \(z\)-Wert null wird, entsteht dort eine Nullstelle. Eine Nullstelle zieht den Frequenzgang nach unten. Liegt sie genau auf dem Einheitskreis, wird die zugehörige Frequenz ideal ausgelöscht. Genau deshalb liegen bei einem Notch-Filter die Nullstellen nahe oder direkt auf dem Einheitskreis.
Die a-Koeffizienten stehen im Nenner. Wenn der Nenner null wird, entsteht ein Pol. Pole wirken wie Resonanzen: Je näher ein Pol am Einheitskreis liegt, desto stärker und schmalbandiger wird die Wirkung auf den Frequenzgang. Bei Tiefpass- oder Hochpassfiltern bestimmen die Pole deshalb stark, wie steil der Übergang und wie ruhig der Verlauf ist.
Warum müssen die Pole innerhalb des Einheitskreises liegen?
Bei einem IIR-Filter wird ein Teil des Ausgangs wieder zurückgeführt. Diese Rückkopplung steckt in den \(a_1\)- und \(a_2\)-Koeffizienten. Liegen die Pole innerhalb des Einheitskreises, klingt die interne Rückkopplung mit der Zeit ab. Der Filter ist stabil. Liegt ein Pol auf oder außerhalb des Einheitskreises, klingt die Rückkopplung nicht mehr ab oder wächst sogar an. Dann kann der Filter schwingen oder numerisch explodieren.
Deshalb zeigt der Designer den größten Polradius an. Ein Wert kleiner als 1 ist stabil. Je näher dieser Wert an 1 liegt, desto empfindlicher und resonanter wird der Filter.
Warum werden höhere Ordnungen als SOS ausgegeben?
Ein Filter hoher Ordnung könnte theoretisch als eine lange Koeffizientenliste dargestellt werden. In der Praxis ist das aber numerisch ungünstig, weil kleine Rundungsfehler große Auswirkungen haben können. Deshalb werden höhere IIR-Filter fast immer als Second Order Sections umgesetzt, also als Kaskade mehrerer Biquads.
Das SOS-Format hat pro Sektion die Form:
[b0, b1, b2, a0, a1, a2]
Genau dieses Format kann man in Python mit scipy.signal.sosfilt verwenden. Dadurch ist der Export praktischer und robuster
als eine einzige lange Liste von \(b\)- und \(a\)-Koeffizienten.
Warum zuerst Biquad?
Viele höhere IIR-Filter werden in der Praxis als Kaskade mehrerer Biquads umgesetzt. Deshalb ist ein einzelner Biquad ein sinnvoller Startpunkt: Man sieht bereits sehr gut, wie Frequenzgang, Güte, Pole und Nullstellen zusammenhängen.
Der Designer arbeitet deshalb mit SOS-Sektionen. Für Tiefpass und Hochpass werden mehrere Sektionen als Butterworth-Kaskade aufgebaut. Für Bandpass und Notch werden die Sektionen unterschiedlich abgestimmt, damit höhere Ordnungen nicht nur identische Filter mehrfach hintereinander schalten.
Zusätzlich helfen Phase, Gruppenlaufzeit, Impulsantwort und Sprungantwort dabei, den Filter nicht nur nach seiner Dämpfung zu beurteilen. Gerade in Regelungen und Messsystemen ist wichtig, ob der Filter Signale verzögert, überschwingt oder lange nachklingt.