IIR-Filter was bedeutet unendlich?

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

Antworten (5)

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

Ein "Impuls" ist ein einfacher Impuls. Digital wäre es ein Sample mit einem Maximalwert, während alle anderen Samples davor und danach Null wären. Wenn Sie sich das anhörten, würden Sie so etwas wie ein Knallen oder Feuerwerk hören.

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

Sie können sich beispielsweise die „Impulsantwort eines Raums“ anhören, indem Sie in den Raum gehen, einfach in die Hände klatschen und auf das Echo hören. Es würde etwas Übung erfordern, um den Handschlag so "scharf" wie möglich zu machen. Die Impulsantwort eines Filters zu erhalten, ist auf die gleiche Weise, aber anstelle eines Händeklatschens verwenden Sie einen einfachen Impuls und anstelle eines Raums haben Sie einen Filter.

Wenn Sie sich die Impulsantwort eines Filters oder eines Raums ansehen, sehen Sie, dass der Ausgang nach dem Impuls eine Zeit lang wackelt (und manchmal auch davor). Im Raum hörte man dieses Wackeln als Echo. In einem Filter steht dieses Wackeln in direktem Zusammenhang mit dem Frequenz- und Phasengang des Filters. In einem Raum wird die Zeitdauer, in der Sie das Echo hören, als "Nachhallzeit" 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 sich die Impulsantwortzeit über die Anzahl der Abgriffe im Filter hinaus erstreckt – daher ist sie endlich .

Ein IIR-Filter hingegen hat diese mathematische Begrenzung der Impulsantwortzeit nicht. Bei einer unendlichen mathematischen Genauigkeit kann ein IIR-Filter die Ausgänge für immer wackeln. Natürlich geht es praktisch nie ewig weiter, da das Wackeln irgendwann kleiner wird als die Genauigkeit der verwendeten Mathematik und damit verschwindet.

danke für die schöne erklärung! Wo findet Feedback in IIR statt?
@Parhs: Die Rückmeldung erfolgt, weil die aktuelle Ausgabe von vorherigen Eingabe- und Ausgabewerten abgeleitet wird , während für FIR-Filter die Ausgabe nur von vorherigen Eingabewerten abgeleitet wird .
@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 die Rückmeldung. Die meisten Leute finden FIRs einfacher zu benutzen, weil sie dieses Feedback nicht haben. Es ist schwierig, dieses Feedback richtig zum Laufen zu bringen, aber es ist sehr effizient.
Ein IIR-System hat einen internen Zustand, der sich für alle Zeiten an frühere Eingaben „erinnert“. Die Art und Weise, wie Sie dies modellieren, besteht darin, entweder frühere Ausgaben in die aktuelle Ausgabe zurückzuspeisen, wie z. B. dieses Biquad der direkten Form 1 , oder äquivalent eine Rückkopplungsschleife am Eingang, wie z. B. dieses kanonische Biquad der direkten Form 2 .

Die Impulsantwort ist die Signatur des Filters. Im Fall eines FIR-Filters gibt Ihnen die Impulsantwort ein direktes Bild der Koeffizienten des Filters. Der Impuls ist ein einzelnes Sample mit maximaler Amplitude, alle Samples davor und danach sind Null. (Dies ist das digitale Äquivalent eines Dirac-Impulses.)
Zum Zeitpunkt des Impulses wird sein Wert multipliziert mit b 0 (siehe unteres Diagramm). Die anderen Samples sind Null, also die Ausgabe j gleich b 0 (Ich gehe von einem Maximalwert für den Impuls von 1 aus). Ein Sample später hat sich der Puls um eins bewegt z 1 Block und wird mit multipliziert b 1 . Auch hier sind alle anderen Werte Null, also ist die Ausgabe b 1 . Usw. Während sich der Impuls durch den Filter verschiebt, erhalten Sie die aufeinanderfolgenden Werte für b ich am Ausgang. Nach N Samples wird der Puls aus dem Filter verschoben und der Ausgang wird wieder Null.
Bei einem IIR-Filter ist es nicht so naheliegend, die Filterkoeffizienten aus der Impulsantwort abzuleiten.

IIR
Bei einem IIR-Filter (Teil) wird das bearbeitete Signal wieder auf den Eingang zurückgeführt. Das bedeutet, dass immer ein Rest des Signals herumschleift. Meistens wird dieser Teil des Signals jedoch immer kleiner und am Ende Null, verschwindet aber theoretisch nie ganz. Das folgende Blockdiagramm zeigt einen Biquad-Filter, eine häufig verwendete Implementierung eines IIR-Filters. Der linke Zweig nimmt (verzögerte) Eingangswerte entgegen, der rechte Zweig arbeitet mit (verzögerten) Ausgangswerten. (EIN z 1 Block repräsentiert eine 1-Sample-Verzögerung. Biquads sind oft kaskadiert.

Geben Sie hier die Bildbeschreibung ein

FIR
FIR-Filter hingegen haben einen linearen Weg vom Eingang zum Ausgang. Nach N Samples wurde das Eingangssignal (wie ein Dirac-Impuls) verschoben und das ist das Ende.
FIR-Filter sind von Natur aus stabil, während IIR-Filter dies nicht unbedingt sind.

Geben Sie hier die Bildbeschreibung ein

dass das Schleifen von Signalen in einigen Fällen nicht gefährlich sein kann und zu unerwünschten Ergebnissen führt?
Es kann definitiv. Verwenden Sie die falschen Rückkopplungspfade oder Verstärkungen, und Sie können einen instabilen Filter erstellen oder einen, der für immer eine Sinuswelle von irgendetwas auslöst. Das 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.
Muss die Summe aller Feedback-Terme zum Anfang der Feedback-Kette zurückgeführt werden, oder kann die Ausgabe späterer Terme in die Eingabe späterer Terme 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 behaupten, dass es eine nützliche Unterklasse von IIR-Filtern gibt, die aus kaskadierten Filtern erster Ordnung gebildet werden können (wobei jeder der Ausgabe jedes rechten Begriffs kann sich selbst füttern, aber keiner seiner Vorgänger)
@supercat - Es reicht aus, irgendeine Form von Feedback zu haben, um einen IIR-Filter zu haben. Sie müssen nicht vom Ausgang oder zum Eingang gehen, da die a 1 und a 2 Pfade in der Biquad-Filtershow.
@stevenvh: Wie ich in meiner Antwort angemerkt habe, gibt es eine nützliche Teilmenge von IIR-Filtern, bei denen eine Stufe auf sich selbst zurückkoppeln kann, aber auf keine vorherige Stufe; Ich weiß nicht, ob 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 dafür?) in dieser Form zu erkennen.
@supercat - "kann an sich selbst zurückmelden, aber an keine vorherige Stufe". Ich bin mir nicht sicher, ob ich das richtig verstehe, aber würde das nicht zu einer Endlosschleife führen? Die Berechnung für eine Probe würde nie enden.
@stevenvh: Nein, weil jede Stufe nach einer Verzögerung in sich selbst zurückfließt. Ein typisches einstufiges Beispiel wäre "new_output = new_input * 0.1 + prev_output * 0.9".
Ich denke, das erste Diagramm ist falsch, und es sollte sein 1 / a 0 , nicht a 0

Es gibt zwei große Klassen von digitalen Filtern, unendliche Impulsantwort (IIR) und endliche Impulsantwort (FIR). Wieder allgemein sind IIR-Filter gleichungsbasiert und FIR-Filter tabellenbasiert.

IIR-Filter sind eher analoge Filter aus der realen Welt. 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 Schritteingabe ist eine Exponentialfunktion, die der Eingabe immer näher kommt. Beachten Sie, dass diese Exponentialfunktion nie wirklich zum Ausgang gelangt, sondern nur nahe genug, dass wir uns nicht darum kümmern oder den Fehler nicht messen können. In diesem Sinne ist ein solcher Filter unendlich. Ein IIR-Filter hat die gleichen Eigenschaften.

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

FILTERN <-- FILTERN + FF(NEU - FILTERN)

Dies bedeutet, dass bei jeder Iteration der Ausgang um einen festen Bruchteil (FF, den "Filterbruchteil") der Entfernung zum Eingang verschoben wird. Dies ist leicht zu visualisieren, wenn FF = 1/2 ist. Wenn alles 0 ist und der Eingang plötzlich auf 1 geht und dort bleibt (ein Einheitsschritt), dann ist der Ausgang 1/2, 3/4, 7/8, 15/16 usw. Dies ist eine unendliche Reihe. Schließlich kommt der Wert so nahe an 1 heran, 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, dann 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 Slot nach oben verschoben, und die neue Eingabe wird in den frei gewordenen Slot eingefügt. Das neu gespeicherte Snippet wird dann mit den Koeffizienten multipliziert usw. Dieser Vorgang wird als "Faltung" bezeichnet, und die Koeffiziententabelle wird oft als Filterkern bezeichnet. Mit dieser Art von Filter können einige ausgefallene und nützliche Dinge getan werden, indem man mit den Koeffizienten kreativ wird. 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 wird, 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 wird, ist es weg und hat keine Auswirkung mehr auf die Ausgabe.

Es gibt ganze Bücher darüber, und Sie können mehrere Semester College-Kurse damit verbringen, sich eingehender damit zu befassen. Hoffentlich entmystifiziert mein 30-Sekunden-Überblick dies genug, um Ihre Frage zu beantworten.

Ein noch nicht erwähnter Punkt ist, dass IIR-Filter weiter in zwei Arten unterteilt werden können: solche, bei denen die Stufen in eine Rangfolge gebracht werden können, sodass jede Stufe vollständig von ihren eigenen vorherigen Werten und denen früherer Stufen abhängt, und solche, bei denen die Stufen können nicht geordnet werden (weil zwei oder mehr Stufen voneinander abhängen). Es ist möglich, dass die Stufen in einem FIR-Filter auf die vorherigen Ausgaben anderer Stufen verweisen, vorausgesetzt, dass sie wie im früheren Stil von IIR eingestuft werden können und keine Stufe auf ihre eigene vorherige Ausgabe verweist.

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

Ein FIR führt seine Berechnungen mit einer endlichen Anzahl von Elementen durch, sagen wir 32 oder 12 oder eine beliebige Zahl, aber das ist, was die Mathematik tut, nehmen Sie eine endliche Anzahl von Elementen und führen Sie den Filter nur für diese durch.

Ein IIR rechnet mit allen Proben, die Sie ihm zuführen. Wenn Sie es mit 10 Proben füttern und es stoppen, funktionierte es mit 10 Proben, wenn Sie es mit 1.000.000.000 Proben füttern, funktionierte die Mathematik mit 1.000.000.000 Proben. Und wenn Sie das Ding auf unbestimmte Zeit laufen lassen und sich der Unendlichkeit nähern (lassen Sie es für immer laufen), dann ist die Anzahl der Elemente ebenfalls unbestimmt und nähert sich der Unendlichkeit. Da das Wort endlich auf das andere Modell zutrifft und das IIR-Modell keine endliche Anzahl von Abtastwerten haben soll, klingt das Wort unendlich als das Gegenteil von endlich besser als unbestimmt oder ein anderes ähnliches Wort.

"mit 1.000.000.000 Proben betrieben". Nun, nicht direkt. Da ein Teil der Ausgabe in der Berechnung für das nächste Sample verwendet wird, werden immer Spuren von vorherigen Samples vorhanden sein. Der Filter hält immer eine sehr begrenzte Anzahl von Samples. Und es ist nicht "unbestimmt"; es ist deterministisch, auch wenn es instabil sein kann.
Das ist, was ich andeutete, dass jedes Sample einige, aber kleine Effekte von allen Samples hat, die ihm vorausgingen, für IIR.
Die unendliche vs. endliche Anzahl von Elementen in der Berechnung ist nicht der Unterschied zwischen IIR und FIR. Das einfachste IIR arbeitet mit nur 2 Datenelementen: 1 von der Eingabe, 1 von der Ausgabe.
Das Unendliche ergibt sich nicht aus der Anzahl der Eingaben, sondern aus der Anzahl der akkumulierten Zyklen. Endlich nimmt nur N Abtastwerte für eine einzelne Eingabe in der Mathematik, unendlich arbeitet effektiv bei jedem Zyklus. Endliche Anzahl von Zyklen vs. unendliche Anzahl von Zyklen für eine einzelne Eingabe.