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?
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.
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
(siehe unteres Diagramm). Die anderen Samples sind Null, also die Ausgabe
gleich
(Ich gehe von einem Maximalwert für den Impuls von 1 aus). Ein Sample später hat sich der Puls um eins bewegt
Block und wird mit multipliziert
. Auch hier sind alle anderen Werte Null, also ist die Ausgabe
. Usw. Während sich der Impuls durch den Filter verschiebt, erhalten Sie die aufeinanderfolgenden Werte für
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
Block repräsentiert eine 1-Sample-Verzögerung. Biquads sind oft kaskadiert.
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.
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.
GorillaApe
Paul R
Benutzer3624
Eryk Sonne