IIR-Filter Was bedeutet unendlich?

11

Ich habe Schwierigkeiten zu verstehen, was "unendlich" in IIR in der Praxis bedeutet. Theoretisch wird die Impulsantwort für die Rückmeldung verwendet. Wenn diese Rückmeldung niemals endet, wie wird die Ausgabe erzeugt?

GorillaApe
quelle

Antworten:

18

Um diese Frage zu beantworten, müssen Sie wissen, was "Impuls" und "Antwort" bedeuten ...

Ein "Impuls" ist ein einfacher Impuls. Digital wäre es eine Probe mit einem Maximalwert, während alle anderen Proben davor und danach Null wären. Wenn Sie dies hören würden, würden Sie so etwas wie einen Knall oder einen Kracher hören.

Die "Antwort" ist die Ausgabe eines Filters (oder etwas anderes), dem der Impuls gegeben wird.

Sie können beispielsweise die "Impulsantwort eines Raums" hören, indem Sie in den Raum gehen, einfach mit der Hand klatschen und das Echo hören. Es würde einige Übung erfordern, um das Händeklatschen so "scharf" wie möglich zu machen. Das Erhalten der Impulsantwort eines Filters ist der gleiche Weg, aber anstelle eines Handklatschens verwenden Sie einen einfachen Impuls und anstelle eines Raums haben Sie einen Filter.

Wenn Sie sich die Impulsantwort eines Filters oder eines Raums ansehen, wird der Ausgang eine Zeit lang nach dem Impuls wackeln (und manchmal auch vorher). Im Raum hörten Sie dieses Wackeln als Echo. In einem Filter steht dieses Wackeln in direktem Zusammenhang mit der Frequenz und dem Phasengang des Filters. In einem Raum wird die Zeit, die Sie das Echo hören, als "Hallzeit" bezeichnet - es gibt keinen entsprechenden Begriff für einen Filter, aber er ist Teil der Impulsantwort.

Nun ist ein FIR-Filter (Finite Impulse Response) endlich, da die Impulsantwortzeit durch die Mathematik begrenzt ist. Es ist mathematisch unmöglich, dass die Impulsantwortzeit über die Anzahl der Abgriffe im Filter hinausgeht - daher ist sie endlich .

Ein IIR-Filter hat andererseits diese mathematische Einschränkung in der Impulsantwortzeit nicht. Bei einer unendlichen mathematischen Genauigkeit kann ein IIR-Filter die Ausgänge für immer wackeln. In praktischer Hinsicht geht es natürlich nie ewig weiter, da das Wackeln irgendwann kleiner wird als die Präzision der verwendeten Mathematik und so verschwindet.


quelle
danke für die nette erklärung! Wo findet in IIR Feedback statt?
GorillaApe
2
@Parhs: Die Rückmeldung erfolgt, weil die aktuelle Ausgabe von der vorherigen Eingabe und Ausgabe abgeleitet wird , während beim FIR-Filter der Ausgang nur von vorherigen Eingabewerten abgeleitet wird .
Paul R
1
@Parha Feedback ist ein Nebeneffekt der Topologie. Und mit Topologie meine ich so etwas wie ein Flussdiagramm oder eine "schematische" Ansicht des Filters. Grundsätzlich speisen die Ergebnisse einer mathematischen Operation in einer Stufe eine andere Operation in einer vorherigen Stufe. Das ist das Feedback. Die meisten Leute finden FIRs einfacher zu bedienen, weil sie dieses Feedback nicht haben. Es ist schwierig, dieses Feedback richtig zu machen, aber es ist sehr effizient.
Ein IIR-System verfügt über einen internen Status, der sich für alle Zeiten an vorherige Eingaben erinnert. Die Art und Weise, wie Sie dies modellieren, besteht darin, entweder frühere Ausgaben in die aktuelle Ausgabe zurückzugeben, z. B. dieses Biquad mit direkter Form 1 , oder eine entsprechende Rückkopplungsschleife am Eingang, wie z. B. dieses kanonische Biquad mit direkter Form 2 .
Eryk Sun
11


b0yb0z- -1b1 . Und so weiter. Während sich der Impuls durch den Filter verschiebt, erhalten Sieam Ausgangdie aufeinanderfolgenden Werte für b i . Nach N Abtastungen wird der Impuls aus dem Filter verschoben und der Ausgang wird wieder Null. Für ein IIR-Filter ist es nicht so offensichtlich, die Filterkoeffizienten aus der Impulsantwort abzuleiten. b1bich


z- -1

Geben Sie hier die Bildbeschreibung ein

TANNE
FIR-Filter haben dagegen einen linearen Pfad von Eingang zu Ausgang. Nach N Abtastungen wurde das Eingangssignal (wie ein Dirac-Impuls) herausgeschoben und das ist das Ende davon.
FIR-Filter sind von Natur aus stabil, während IIR-Filter nicht unbedingt stabil sind.

Geben Sie hier die Bildbeschreibung ein

stevenvh
quelle
1
dass Looping Singal nicht unsicher sein kann und in einigen Fällen unerwünschte Ergebnisse liefert?
GorillaApe
2
Es kann definitiv. Wenn Sie die falschen Rückkopplungspfade oder -verstärkungen verwenden, können Sie einen instabilen Filter erstellen oder einen Filter, der für immer einen Sinusschwank von etwas auslöst. Dies ist im Allgemeinen nicht das, was ein "Filter" tun soll. Daher gibt es Techniken, um die Stabilität zu analysieren und Instabilität zu vermeiden.
Olin Lathrop
Muss die Summe aller Rückkopplungsbegriffe auf den Anfang der Rückkopplungskette zurückgeführt werden, oder kann die Ausgabe späterer Begriffe in die Eingabe späterer Begriffe summiert werden? Während ich erwarten würde, dass jeder Filter, der auf die letztere Weise realisiert werden könnte, in die von Ihnen dargestellte Form umgewandelt werden könnte, würde ich vermuten, dass es eine nützliche Unterklasse von IIR-Filtern gibt, die aus kaskadierten Filtern erster Ordnung gebildet werden können (wobei jeder die Die Ausgabe jedes rechten Terms kann sich selbst ernähren, aber keiner seiner Vorgänger)
Supercat
1
- -ein1- -ein2
@stevenvh: Wie ich in meiner Antwort festgestellt habe, gibt es eine nützliche Untergruppe von IIR-Filtern, bei denen eine Stufe auf sich selbst zurückgreifen kann, jedoch auf keine vorherige Stufe. Ich weiß nicht, dass ich einen Begriff zur Beschreibung solcher Filter gelesen habe, aber sie sind viel einfacher zu charakterisieren als verallgemeinerte IIR-Filter. Obwohl sie mit den richtigen Koeffizienten in der obigen Form gerendert werden könnten, wäre es schwieriger, einen solchen Filter (gibt es einen Begriff für sie?) In dieser Form zu erkennen.
Supercat
4

Es gibt zwei große Klassen digitaler Filter: die unendliche implizite Antwort (IIR) und die endliche Impulsantwort (FIR). Auch hier sind IIR-Filter im Großen und Ganzen gleichungsbasiert und FIR-Filter tabellenbasiert.

IIR-Filter ähneln eher realen Analogfiltern. Stellen Sie sich zum Beispiel einen einfachen exponentiellen Abfall vor, wie Sie ihn von einem analogen RC-Tiefpassfilter erhalten würden. Die Ausgangsantwort auf eine Stufeneingabe ist ein Exponential, das dem Eingang immer näher kommt. Beachten Sie, dass dieses Exponential niemals tatsächlich zur Ausgabe gelangt, sondern nur so nah, dass es uns egal ist oder wir den Fehler nicht messen können. In diesem Sinne ist ein solcher Filter unendlich. Ein IIR-Filter hat die gleichen Eigenschaften.

Das sehr verbreitete einpolige Tiefpass-IIR-Filter kann ausgedrückt werden als:

FILT <- FILT + FF (NEU - FILT)

Dies bedeutet, dass bei jeder Iteration der Ausgang ein fester Bruchteil (FF, der "Filterbruchteil") der Entfernung zum Eingang verschoben wird. Dies ist leicht zu visualisieren, wenn FF = 1/2. Wenn alles 0 ist und der Eingang plötzlich auf 1 geht und dort bleibt (ein Einheitsschritt), ist der Ausgang 1/2, 3/4, 7/8, 15/16 usw. Dies ist eine unendliche Reihe. Schließlich wird der Wert so nahe an 1 kommen, dass er als 1 ausgedrückt wird, da die digitalen Werte im Computer keine unendliche Genauigkeit haben.

FIR-Filter arbeiten nach einem völlig anderen Prinzip. Ein endlicher aktueller Ausschnitt des Eingangssignals wird gespeichert, und jeder der gespeicherten Werte wird mit einem anderen Koeffizienten multipliziert. Anschließend werden alle Ergebnisse addiert, um die Filterausgabe für diese Iteration zu erstellen. Bei der nächsten Iteration wird der älteste gespeicherte Wert verworfen, die anderen werden um einen Steckplatz älter verschoben und die neue Eingabe wird in den frei gewordenen Steckplatz eingefügt. Das neu gespeicherte Snippet wird dann mit den Koeffizienten usw. multipliziert. Dieser Prozess wird als "Faltung" bezeichnet, und die Koeffiziententabelle wird häufig als Filterkern bezeichnet. Einige ausgefallene und nützliche Dinge können mit dieser Art von Filter getan werden, indem Sie mit den Koeffizienten kreativ werden. Das ist ein ganzes Thema für sich, auf das ich jetzt nicht eingehen werde. Da jedoch ein endlicher Ausschnitt der Eingabe im Speicher gespeichert ist, Jeder Teil des Eingangssignals kann den Ausgang nur für eine begrenzte Zeit beeinflussen. Sobald ein Eingabe-Sample aus dem Ende des gespeicherten Snippets herausgeschoben wurde, ist es verschwunden und hat keine Auswirkung mehr auf die Ausgabe.

Es gibt ganze Bücher über dieses Zeug geschrieben und Sie können mehrere Semester von College-Kursen verbringen, die sich mit diesem Thema befassen. Hoffentlich entmystifiziert meine 30-Sekunden-Übersicht dies genug, um Ihre Frage zu beantworten.

Olin Lathrop
quelle
1

Ein noch nicht erwähnter Punkt ist, dass IIR-Filter weiter in zwei Stile unterteilt werden können: diejenigen, bei denen die Stufen eingestuft werden können, so dass jede Stufe vollständig von ihren eigenen vorherigen Werten und denen früherer Stufen abhängt, und diejenigen, bei denen die Stufen können nicht eingestuft werden (da zwei oder mehr Stufen voneinander abhängen). Es ist möglich, dass die Stufen in einem FIR-Filter auf die vorherigen Ausgänge anderer Stufen verweisen, vorausgesetzt, sie können wie im früheren IIR-Stil eingestuft werden, und keine Stufe bezieht sich auf ihre eigene vorherige Ausgabe.

Wenn die Stufen in einem IIR-Filter eingestuft werden können und die Gesamtgröße der Selbstrückkopplungskoeffizienten für eine bestimmte Stufe kleiner als eins ist, ist das IIR-Filter garantiert stabil. Wenn zum Beispiel eine Stufe eine Signalmenge von vorherigen Stufen plus die Hälfte des vorherigen Werts dieser Stufe und 1/4 des vorherigen Werts, minus 1/8 des vorherigen Werts, enthält, ist die Gesamtgröße des Selbst- Die Rückkopplung beträgt 7/8, sodass ohne weitere Eingaben aus den unteren Stufen die Größe des Beitrags aus der Selbstrückkopplung bei jeder Iteration um 12,5% abnimmt.

Superkatze
quelle
0

Eine FIR rechnet mit einer endlichen Anzahl von Elementen, sagen wir 32 oder 12 oder einer Zahl, aber genau das macht die Mathematik, nimmt eine endliche Anzahl von Elementen und führt den Filter nur für diese aus.

Ein IIR berechnet alle Proben, die Sie ihm zuführen. Wenn Sie 10 Proben füttern und stoppen, funktioniert es bei 10 Proben. Wenn Sie 1.000.000.000 Proben füttern, werden 1.000.000.000 Proben berechnet. Und wenn Sie das Ding unbegrenzt laufen lassen und sich der Unendlichkeit nähern (es für immer laufen lassen), dann ist die Anzahl der Elemente ebenfalls unbestimmt und nähert sich der Unendlichkeit. Da das Wort endlich endlich für das andere Modell gilt und das IIR-Modell keine endliche Anzahl von Abtastwerten haben soll, klingt das Wort unendlich als das Gegenteil von endlich einfach besser als unbestimmt oder ein anderes solches Wort.

Oldtimer
quelle
"mit 1.000.000.000 Proben betrieben". Nun, nicht direkt. Da ein Teil der Ausgabe für die Berechnung der nächsten Stichprobe verwendet wird, gibt es immer Spuren früherer Stichproben. Der Filter enthält immer eine sehr begrenzte Anzahl von Proben. Und es ist nicht "unbestimmt"; Es ist deterministisch, auch wenn es instabil sein mag.
Stevenvh
das ist, was ich angedeutet habe, dass jede Probe einige, aber kleine Auswirkungen von allen Proben hat, die ihr vorausgingen, für IIR.
old_timer
Die unendliche gegenüber der endlichen Anzahl von Elementen in der Berechnung ist nicht der Unterschied zwischen IIR und FIR. Das einfachste IIR arbeitet nur mit 2 Datenelementen: 1 von der Eingabe, 1 von der Ausgabe.
Radagast
Das Unendliche ergibt sich nicht aus der Anzahl der Eingaben, sondern aus der Anzahl der akkumulierten Zyklen. Endlich werden nur N Abtastwerte für eine einzelne Eingabe in der Mathematik benötigt. Das Unendliche arbeitet effektiv mit jedem Zyklus. Endliche Anzahl von Zyklen vs. unendliche Anzahl von Zyklen für einen einzelnen Eingang.
old_timer