Thursday, September 29, 2016

Gleitende Mittlere Filterkoeffizienten

FIR-Filter, IIR-Filter und die lineare Konstante-Koeffizienten-Differenzengleichung Causal Moving Average (FIR) Filter Weve diskutierte Systeme, bei denen jede Abtastung des Ausgangssignals eine gewichtete Summe der (gewissen) der Abtastwerte des Eingangs ist. Nehmen wir ein kausal gewichtetes Summensystem, wobei Kausal bedeutet, dass ein gegebenes Ausgangssample nur von dem aktuellen Eingangssample und anderen Eingängen früher in der Sequenz abhängt. Weder lineare Systeme überhaupt noch endliche Impulsantwortsysteme müssen kausal sein. Jedoch ist Kausalität bequem für eine Art Analyse, die bald erforschen würde. Wenn wir die Eingaben als Werte eines Vektors x symbolisieren. Und die Ausgänge als entsprechende Werte eines Vektors y. Dann kann ein solches System beschrieben werden, bei dem die b-Werte ein Gewicht sind, das auf die aktuellen und früheren Eingangsabtastwerte angewendet wird, um die aktuelle Ausgangsabtastung zu erhalten. Wir können uns den Ausdruck als Gleichung vorstellen, wobei das Gleichheitszeichen gleich ist oder als Verfahrensanweisung mit dem Gleichheitszeichen Bedeutung Zuordnung. Schreiben wir den Ausdruck für jeden Ausgangsprobe als MATLAB-Schleife von Zuweisungsanweisungen, wobei x ein N-Längenvektor von Eingangsabtastwerten ist und b ein M-Längenvektor von Gewichten ist. Um mit dem Spezialfall am Anfang umzugehen, werden wir x in einen längeren Vektor xhat einbetten, dessen erste M-1 Abtastwerte Null sind. Wir werden die gewichtete Summe für jedes y (n) als inneres Produkt schreiben und einige Manipulationen der Eingänge (wie Reversieren b) zu diesem Zweck durchführen. Diese Art von System wird oft als ein gleitender Durchschnitt Filter, aus offensichtlichen Gründen. Aus unseren früheren Diskussionen sollte klar sein, dass ein solches System linear und verschiebungsinvariant ist. Natürlich wäre es viel schneller, die MATLAB-Convolution-Funktion conv () anstelle unseres mafilt () zu verwenden. Anstatt die ersten M-1 Abtastwerte des Eingangs null zu betrachten, könnten wir sie als dieselben wie die letzten M-1 Abtastwerte betrachten. Dies ist die gleiche wie die Behandlung der Eingabe als periodisch. Nun verwenden Sie cmafilt () als den Namen der Funktion, eine kleine Änderung der früheren mafilt () - Funktion. Bei der Bestimmung der Impulsantwort eines Systems gibt es gewöhnlich keinen Unterschied zwischen diesen beiden, da alle nicht initialen Abtastungen der Eingabe Null sind: Da ein System dieser Art linear und schichtinvariant ist, wissen wir, dass seine Wirkung auf irgendwelche Sinusoid wird nur zu skalieren und verschieben. Hier ist es wichtig, dass wir die kreisförmige Version verwenden. Die kreisförmig gefaltete Version wird verschoben und skaliert, während die Version mit gewöhnlicher Faltung zu Beginn verzerrt ist. Lets sehen, was die exakte Skalierung und Verschiebung ist mit einem fft: Beide Eingang und Ausgang haben Amplitude nur bei Frequenzen 1 und -1, wie es sein sollte, da der Eingang war ein Sinus und das System war linear. Die Ausgangswerte sind um ein Verhältnis von 10,6251 / 8 1,3281 größer. Das ist der Gewinn des Systems. Was ist mit der Phase Wir müssen nur schauen, wo die Amplitude ungleich Null ist: Der Eingang hat eine Phase von pi / 2, wie wir wollten. Die Ausgangsphase wird um eine zusätzliche 1,0594 (mit umgekehrtem Vorzeichen für die negative Frequenz) oder etwa 1/6 eines Zyklus nach rechts verschoben, wie wir im Diagramm sehen können. Nun können wir eine Sinuskurve mit der gleichen Frequenz (1) ausprobieren, aber statt der Amplitude 1 und der Phase pi / 2 versuchen wir die Amplitude 1.5 und die Phase 0. Wir wissen, dass nur Frequenz 1 und -1 Amplitude ungleich Null haben (15.9377 / 12.0000) ist 1.3281 - und für die Phase ist es wieder um 1.0594 verschoben. Wenn diese Beispiele typisch sind, können wir die Wirkung unseres Systems vorhersagen (Impulsantwort .1 .2 .3 .4 .5) auf jedem Sinus mit der Frequenz 1 - wird die Amplitude um den Faktor 1,3281 erhöht und die (positive Frequenz) Phase um 1,0594 verschoben. Wir können die Wirkung dieses Systems auf Sinusoide anderer Frequenzen mit denselben Methoden berechnen. Aber es gibt einen viel einfacheren Weg, und eine, die den allgemeinen Punkt. Da die (zirkuläre) Faltung im Zeitbereich eine Multiplikation im Frequenzbereich bedeutet, folgt daraus, daß mit anderen Worten die DFT der Impulsantwort das Verhältnis der DFT des Ausgangs zu der DFT des Eingangs ist. In dieser Beziehung sind die DFT-Koeffizienten komplexe Zahlen. Wegen der abs (c1 / c2) abs (c1) / abs (c2) für alle komplexen Zahlen c1, c2 gibt diese Gleichung an, dass das Amplitudenspektrum der Impulsantwort immer das Verhältnis des Amplitudenspektrums der Ausgabe zu diesem ist Des Eingangs. Im Falle des Phasenspektrums ist der Winkel (c1 / c2) - Winkel (c1) - Winkel (c2) für alle c1, c2 (mit der Maßgabe, dass sich um n2pi unterschiedliche Phasen unterscheiden). Daher wird das Phasenspektrum der Impulsantwort immer die Differenz zwischen den Phasenspektren des Ausgangs und dem Eingang sein (mit welchen Korrekturen um 2pi benötigt werden, um das Ergebnis zwischen - pi und pi zu halten). Wir können die Phaseneffekte deutlicher sehen, wenn wir die Darstellung der Phase entpacken, d. H. Wenn wir verschiedene Vielfache von 2pi hinzufügen, um die Sprünge zu minimieren, die durch die periodische Natur der Funktion angle () erzeugt werden. Obwohl die Amplitude und die Phase üblicherweise für grafische und sogar tabellarische Darstellungen verwendet werden, sind die komplexen Fourier-Koeffizienten algebraisch nützlicher, da sie eine intuitive Möglichkeit sind, über die Auswirkungen eines Systems auf die verschiedenen Frequenzkomponenten seiner Eingabe nachzudenken Der einfache Ausdruck der Beziehung Der allgemeine Ansatz, den wir soeben gesehen haben, wird mit beliebigen Filtern des skizzierten Typs arbeiten, wobei jeder Ausgangssample eine gewichtete Summe eines Satzes von Eingangsabtastwerten ist. Wie bereits erwähnt, werden diese oft als Finite-Impulse-Response-Filter bezeichnet, da die Impulsantwort von Finite-Size - oder manchmal Moving-Average-Filtern ist. Wir können die Frequenzantwortcharakteristiken eines solchen Filters aus der FFT seiner Impulsantwort bestimmen, und wir können auch neue Filter mit gewünschten Eigenschaften durch IFFT aus einer Spezifikation des Frequenzgangs entwerfen. Autoregressive (IIR) - Filter Es wäre wenig Sinn, mit Namen für FIR-Filter, es sei denn, es gab eine andere Art von ihnen zu unterscheiden, und so diejenigen, die Pragmatik studiert haben, werden nicht überrascht sein, zu erfahren, dass es tatsächlich eine andere große Art Des linearen zeitinvarianten Filters. Diese Filter werden manchmal rekursiv genannt, weil der Wert der vorherigen Ausgaben (sowie vorhergehende Eingaben) von Bedeutung ist, obwohl die Algorithmen im Allgemeinen unter Verwendung von iterativen Konstrukten geschrieben werden. Sie werden auch als Infinite Impulse Response (IIR) - Filter bezeichnet, weil im Allgemeinen ihre Reaktion auf einen Impuls für immer weitergeht. Sie werden auch manchmal als autoregressive Filter bezeichnet, da man die Koeffizienten als das Ergebnis einer linearen Regression verstehen kann, um Signalwerte als Funktion früherer Signalwerte auszudrücken. Die Beziehung von FIR - und IIR-Filtern ist klar in einer linearen konstanten Koeffizienten-Differenzengleichung zu sehen, d. h. eine gewichtete Summe von Ausgaben gleich einer gewichteten Summe von Eingängen zu setzen. Dies ist wie die Gleichung, die wir früher für das kausale FIR-Filter angegeben haben, außer dass wir neben der gewichteten Summe von Eingängen auch eine gewichtete Summe von Ausgängen haben. Wenn wir dies als eine Vorgehensweise zur Erzeugung von Ausgangssamples betrachten wollen, müssen wir die Gleichung neu anordnen, um einen Ausdruck für den aktuellen Ausgabeprobe y (n) zu erhalten, wobei die Konvention angenommen wird, dass a (1) 1 (z Und bs) können wir den 1 / a (1) Term loswerden: y (n) b (1) x (n) b (2) x (n-1). B (Nb1) x (n-nb) - a (2) y (n-1) -. - a (Na1) y (n-na) Wenn alle anderen a (n) als a (1) Null sind, reduziert dies auf unseren alten Freund das kausale FIR-Filter. Dies ist der allgemeine Fall eines (kausalen) LTI-Filters und wird durch den MATLAB-Funktionsfilter implementiert. Es sei der Fall betrachtet, bei dem die b Koeffizienten außer b (1) null sind (anstelle des FIR-Falles, bei dem a (n) null ist): In diesem Fall wird der aktuelle Ausgabeprobe y (n) als a berechnet Gewichtete Kombination der aktuellen Eingangsabtastung x (n) und der vorhergehenden Ausgangsabtastwerte y (n - 1), y (n - 2) usw. Um eine Vorstellung davon zu erhalten, was mit solchen Filtern geschieht, Das heißt, der Stromausgangsabtastwert ist die Summe der aktuellen Eingangsabtastung und der Hälfte der vorhergehenden Ausgangsabtastung. Nun nehmen einen Eingangsimpuls durch ein paar Zeitschritte, eine zu einer Zeit. Es sollte an diesem Punkt klar sein, daß wir leicht einen Ausdruck für den n-ten Ausgabe-Abtastwert schreiben können: er ist nur (Wenn MATLAB von 0 gezählt wird, wäre dies einfach 0,5 n). Da das, was wir berechnen, die Impulsantwort des Systems ist, haben wir durch Beispiel gezeigt, daß die Impulsantwort tatsächlich unendlich viele Proben ungleich Null haben kann. Um diesen trivialen Filter erster Ordnung in MATLAB zu implementieren, könnten wir Filter verwenden. Der Aufruf sieht folgendermaßen aus: und das Ergebnis ist: Ist dieses Geschäft wirklich noch linear? Wir können dies empirisch betrachten: Für einen allgemeineren Ansatz betrachten wir den Wert eines Ausgabebeispiels y (n). Durch sukzessives Ersetzen können wir dies so schreiben: Dies ist genau wie unser alter Freund die Faltungssummenform eines FIR-Filters mit der Impulsantwort, die durch den Ausdruck .5k geliefert wird. Und die Länge der Impulsantwort ist unendlich. Es gelten also die gleichen Argumente, die wir zeigen, dass FIR-Filter linear waren. Bisher scheint dies viel Aufhebens um nicht viel zu sein. Was ist diese ganze Untersuchung gut für gut beantworten diese Frage in Stufen, beginnend mit einem Beispiel. Es ist nicht eine große Überraschung, dass wir berechnen können eine Stichprobe Exponential durch rekursive Multiplikation. Betrachten wir einen rekursiven Filter, der etwas weniger offensichtlich macht. Dieses Mal machen wir es zu einem Filter zweiter Ordnung, so daß der Aufruf zum Filter die Form Lets hat, die den zweiten Ausgangskoeffizienten a2 auf -2cos (2pi / 40) und den dritten Ausgangskoeffizienten a3 auf 1 setzen und anschauen Die Impulsantwort. Nicht sehr nützlich als Filter tatsächlich, aber es erzeugt eine abgetastete Sinuswelle (aus einem Impuls) mit drei Multiplikations-Additionen pro Probe Um zu verstehen, wie und warum es das tut und wie rekursive Filter entworfen und analysiert werden können in Der allgemeinere Fall, müssen wir zurück treten und einen Blick auf einige andere Eigenschaften von komplexen Zahlen, auf dem Weg zum Verständnis der z-Transformation. Dokumentation dfilt. latticearma Am wichtigsten ist die Etikettenposition im Diagramm, die identifiziert, wo das Format gilt. Betrachten Sie als Beispiel das Label LatticeProdFormat, das immer einem Koeffizientenmultiplikationselement im Signalfluss folgt. Die Markierung zeigt an, daß Gitterkoeffizienten das Multiplikationselement mit der Wortlänge und Fraktionslänge verlassen, die mit Produktoperationen verbunden sind, die Koeffizienten enthalten. Aus der Überprüfung der Tabelle, sehen Sie, dass die LatticeProdFormat bezieht sich auf die Eigenschaften ProductWordLength. LatticeProdFracLength. Und ProductMode, die das Koeffizientenformat nach Multiplikations - (oder Produkt-) Operationen vollständig definieren. Eigenschaften In dieser Tabelle sehen Sie die mit der autoregressiven gleitenden Gitterimplementierung von dfilt-Objekten verknüpften Eigenschaften. Hinweis Die Tabelle listet alle Eigenschaften eines Filters auf. Viele der Eigenschaften sind dynamisch, dh sie existieren nur in Reaktion auf die Einstellungen anderer Eigenschaften. Möglicherweise sehen Sie nicht alle aufgelisteten Eigenschaften die ganze Zeit. Um alle Eigenschaften eines Filters jederzeit anzuzeigen, verwenden Sie wo hd ein Filter ist. Weitere Informationen zu den Eigenschaften dieses Filters oder eines beliebigen dfilt-Objekts finden Sie unter Fixed-Point-Filtereigenschaften. Setzt den Modus, der für die Reaktion auf Überlaufbedingungen in der Festkomma-Arithmetik verwendet wird. Wählen Sie entweder Sättigung (Begrenzung der Ausgabe auf den größten positiven oder negativen darstellbaren Wert) oder umwickeln (setzen Sie überlaufende Werte auf den nächsten darstellbaren Wert mittels modularer Arithmetik). Die Auswahl, die Sie treffen, wirkt sich nur auf die Akkumulator - und Ausgangsarithmetik aus. Koeffizient und Eingabearithmetik immer gesättigt. Schließlich werden Produkte nie überfließen8212they behalten volle Präzision. Für die Ausgabe von einer Produktoperation legt dies die Fraktionslänge fest, die für die Interpretation der Daten verwendet wird. Diese Eigenschaft wird schreibbar (Sie können den Wert ändern), wenn Sie ProductMode auf SpecifyPrecision festlegen. Legt fest, wie der Filter die Ausgabe von Produktoperationen verarbeitet. Wählen Sie aus der vollen Genauigkeit (FullPrecision), oder ob Sie das höchstwertige Bit (KeepMSB) oder das niedrigstwertige Bit (KeepLSB) im Ergebnis speichern, wenn Sie die Datenwörter verkürzen müssen. Damit Sie die Präzision (die Bruchlänge), die von den Ausgängen der Multiplikationen verwendet wird, einstellen können, setzen Sie ProductMode auf SpecifyPrecision. Gibt die Wortlänge an, die für Multiplikationsoperationsergebnisse verwendet werden soll. Diese Eigenschaft wird schreibbar (Sie können den Wert ändern), wenn Sie ProductMode auf SpecifyPrecision festlegen. Gibt an, ob die Filterzustände und der Speicher vor jedem Filtervorgang zurückgesetzt werden sollen. Sie können entscheiden, ob Ihr Filter Zustände aus früheren Filterläufen beibehält. False ist die Standardeinstellung. Legt den Modus fest, der verwendet wird, um numerische Werte zu quantisieren, wenn die Werte zwischen den darstellbaren Werten für das Datenformat (Wort - und Fraktionslängen) liegen. Ceil - Rund zur positiven Unendlichkeit. Konvergent - Runde auf die nächste darstellbare Integerzahl. Runden auf die nächste gerade gespeicherte Ganzzahl. Dies ist die am wenigsten voreingenommene Methode der in dieser Software verfügbaren Methoden. Fix - Rund gegen Null. Boden - Rund zur negativen Unendlichkeit. Nächstgelegene - Runde in Richtung nächste. Bindungen zu positiver Unendlichkeit. Runde - Runde in Richtung nächste. Bindungen in Richtung negativer Unendlichkeit für negative Zahlen und in Richtung positive Unendlichkeit für positive Zahlen. Die Auswahl, die Sie treffen, wirkt sich nur auf die Akkumulator - und Ausgangsarithmetik aus. Koeffizient und Eingabearithmetik immer rund. Schließlich werden Produkte nie überlaufen 8212 sie halten volle Präzision. Gibt an, ob der Filter signierte oder unsignierte Fixpunktkoeffizienten verwendet. Nur Koeffizienten geben diese Einstellung wieder. Select Your CountryThe Simple Moving Average Filter Diese Seite beschreibt die einfache gleitende durchschnittliche Filter. Diese Seite ist Teil des Filters, der Teil des Leitfadens zur Fehlererkennung und Diagnose ist. Überblick Der einfache gleitende Mittelwert filtert die letzten Werte des Filtereingangs für eine gegebene Anzahl von Eingängen. Dies ist das häufigste Beispiel der 8220moving durchschnittlichen 8221 (MA) Kategorie von Filtern, die auch als Finite-Impuls-Response-Filter (FIR-Filter) bezeichnet werden. Jede neuere Eingabe wird mit einem Koeffizienten für alle linearen MA-Filter multipliziert, und die Koeffizienten sind alle gleich für diesen einfachen gleitenden Durchschnitt. Die Summe der Koeffizienten beträgt 1,0, so daß der Ausgang schließlich mit dem Eingang übereinstimmt, wenn sich der Eingang nicht ändert. Sein Ausgang hängt gerade von den letzten Eingängen ab, anders als der exponentielle Filter, der auch seinen vorherigen Ausgang wieder verwendet. Der einzige Parameter ist die Anzahl der Punkte im Durchschnitt - die 8220-Fenstergröße8221. Verschieben der durchschnittlichen Sprungantwort Wie jedes MA-Filter vervollständigt es eine Sprungantwort in einer endlichen Zeit, abhängig von der Fenstergröße: Dieses einfache gleitende Durchschnittsbeispiel oben basierte auf 9 Punkten. Unter bescheidenen Annahmen ist es die optimale (Glättung) Schätzung für einen Wert am Mittelpunkt des Zeitintervalls, in diesem Fall, 4,5 Abtastintervalle in der Vergangenheit. Copyright 2010 - 2013, Greg StanleyFIR Filter-Grundlagen 1.1 Was sind die FIR-Filterquot FIR-Filter sind eine von zwei Primärarten von digitalen Filtern, die in DSP-Anwendungen (Digital Signal Processing) verwendet werden, wobei der andere Typ IIR ist. 1.2 Was bedeutet "FIRquot" bedeutet "FIRquot" bedeutet "FInite Impulse Responsequot". Wenn Sie einen Impuls, das heißt, ein einziges quadratisches Beispiel, gefolgt von vielen quot0quot Proben, setzen, werden Nullen herauskommen, nachdem das quot1quot Beispiel seinen Weg durch die Verzögerungslinie des Filters gemacht hat. 1.3 Warum ist die Impulsantwort quotfinitequot Im allgemeinen Fall ist die Impulsantwort endlich, da es keine Rückmeldung in der FIR gibt. Ein Mangel an Feedback garantiert, dass die Impulsantwort endlich ist. Daher ist der Begriff "endliche Impulsantwort" annähernd gleichbedeutend mit einer Quotno-Rückmeldung. Wenn jedoch die Rückkopplung verwendet wird, ist die Impulsantwort endlich, der Filter ist jedoch immer noch ein FIR. Ein Beispiel ist das gleitende Mittelfilter, bei dem jedes Mal, wenn eine neue Probe eintritt, subtrahiert (rückgekoppelt) wird. Dieser Filter hat eine endliche Impulsantwort, obwohl er Rückkopplung verwendet: nach N Abtastungen eines Impulses die Ausgabe Wird immer Null sein. 1.4 Wie kann ich etwas aussprechen? Einige Leute sagen, die Buchstaben F-I-R andere Leute auszusprechen, als wäre es eine Art von Baum. Wir bevorzugen den Baum. (Der Unterschied besteht darin, ob man von einem F-I-R-Filter oder einem FIR-Filter spricht.) 1.5 Was ist die Alternative zu FIR-Filtern DSP-Filter können auch "Infinite Impulse Responsequot (IIR)" sein. (Siehe dspGurus IIR FAQ.) IIR-Filter verwenden Feedback, so dass bei der Eingabe eines Impulses die Ausgabe theoretisch unendlich klingelt. 1.6 Wie FIR-Filter mit IIR-Filtern vergleichen Jedes hat Vor - und Nachteile. Insgesamt aber überwiegen die Vorteile von FIR-Filtern die Nachteile, so dass sie viel mehr als IIRs verwendet werden. 1.6.1 Was sind die Vorteile von FIR-Filtern (im Vergleich zu IIR-Filtern) Im Vergleich zu den IIR-Filtern bieten FIR-Filter folgende Vorteile: Sie lassen sich leicht als quasi-lineare Phasequot (und in der Regel) realisieren. Einfach ausgedrückt, verzögern lineare Phasenfilter das Eingangssignal, aber donrsquot verzerrt seine Phase. Sie sind einfach zu implementieren. Bei den meisten DSP-Mikroprozessoren kann die FIR-Berechnung durch Schleifen einer einzigen Anweisung durchgeführt werden. Sie eignen sich für Mehrpreisanwendungen. Mit Multi-Rate bedeuten wir entweder einen Dekrementquot (Reduzierung der Abtastrate), eine Interpolation (Erhöhung der Abtastrate) oder beides. Ob Dezimierung oder Interpolation, die Verwendung von FIR-Filtern erlaubt es, einige der Berechnungen wegzulassen, wodurch eine wichtige Recheneffizienz geschaffen wird. Im Gegensatz dazu, wenn IIR-Filter verwendet werden, muss jeder Ausgang individuell berechnet werden, auch wenn dieser Ausgang verworfen wird (so dass die Rückkopplung wird in den Filter integriert werden). Sie haben gewünschte numerische Eigenschaften. In der Praxis müssen alle DSP-Filter mit Hilfe einer Finite-Precision-Arithmetik, dh einer begrenzten Anzahl von Bits, implementiert werden. Die Verwendung von Finite-Precision-Arithmetik in IIR-Filtern kann aufgrund des Feedbacks erhebliche Probleme verursachen, aber FIR-Filter ohne Rückkopplung können gewöhnlich mit weniger Bits implementiert werden, und der Konstrukteur hat weniger praktische Probleme, die mit der nicht idealen Arithmetik zusammenhängen. Sie können mit Hilfe von fractional arithmetic implementiert werden. Im Gegensatz zu IIR-Filtern ist es immer möglich, ein FIR-Filter unter Verwendung von Koeffizienten mit einer Grße von weniger als 1,0 einzusetzen. (Die Gesamtverstärkung des FIR-Filters kann bei Bedarf an seinem Ausgang eingestellt werden.) Dies ist ein wichtiger Aspekt bei der Verwendung von Festpunkt-DSPs, da sie die Implementierung viel einfacher macht. 1.6.2 Was sind die Nachteile von FIR-Filtern (im Vergleich zu IIR-Filtern) Im Vergleich zu IIR-Filtern haben FIR-Filter manchmal den Nachteil, dass sie mehr Speicher und / oder Berechnung benötigen, um eine gegebene Filtercharakteristik zu erreichen. Auch sind bestimmte Reaktionen mit FIR-Filtern nicht praktikabel. 1.7 Welche Begriffe werden bei der Beschreibung von FIR-Filtern verwendet? Impulsantwort - Der Impulsantwortfaktor eines FIR-Filters ist eigentlich nur der Satz von FIR-Koeffizienten. (Wenn Sie ein quotimplusequot in einen FIR-Filter setzen, der aus einem quotierten Quot-Sample besteht, gefolgt von vielen quot0quot-Samples, ist das Ausgangssignal des Filters die Menge der Koeffizienten, wenn sich die 1 Sample nacheinander um jeden Koeffizienten bewegt, um die Ausgabe zu bilden. Tippen - Ein FIR quottapquot ist einfach ein Koeffizient / Verzögerungspaar. Die Anzahl der FIR-Anzapfungen (oft als "Anfasser" bezeichnet) ist ein Hinweis auf 1) die zur Implementierung des Filters erforderliche Speicherkapazität, 2) die Anzahl der erforderlichen Berechnungen und 3) die Menge des Filterfilters, Multiply-Accumulate (MAC) - In einem FIR-Kontext ist ein MACquot der Vorgang des Multiplizierens eines Koeffizienten mit dem entsprechenden verzögerten Datenabtastwert und dem Akkumulieren des Ergebnisses. FIRs erfordern normalerweise einen MAC pro Hahn. Die meisten DSP-Mikroprozessoren implementieren die MAC-Operation in einem einzigen Befehlszyklus. Transition Band - Das Frequenzband zwischen Passband - und Stopband-Kanten. Je schmaler das Übergangsband ist, desto mehr Taps werden benötigt, um den Filter zu implementieren. (Ein quotsmallquot-Übergangsband führt zu einem quotsharpquot-Filter.) Delay Line - Der Satz von Speicherelementen, die die quotZ-1quot-Verzögerungselemente der FIR-Berechnung implementieren. Zirkulärer Puffer - Ein spezieller Puffer, der zirkulär ist, weil eine Inkrementierung am Ende dazu führt, dass er an den Anfang wickelt, oder weil das Dekrementieren von Anfang an bewirkt, dass es bis zum Ende umwickelt. Zirkuläre Puffer werden oft von DSP-Mikroprozessoren bereitgestellt, um den Quotientenquot der Proben durch die FIR-Verzögerungsleitung zu implementieren, ohne die Daten im Speicher wörtlich bewegen zu müssen. Wenn ein neues Sample zum Puffer hinzugefügt wird, ersetzt es automatisch den ältesten. Variationen auf dem Moving Average Der Moving Average Filter ist mehr oder weniger perfekt zum Glätten von Daten in Anwesenheit von Rauschen, wenn die nützlichen Informationen in Ihren Daten vollständig sind Im Zeitbereich. In diesem Fall sind Sie nicht über seine eher schlechte Leistung im Frequenzbereich interessieren. Fig. 1 zeigt die Impuls-, Schritt - und Frequenzreaktionen des grundlegenden gleitenden Durchschnittsfilters (mit drei zusätzlichen Abtastwerten auf beiden Seiten, die nicht Teil des Impulses und der Schrittantworten sind, zur Klarheit). Manchmal müssen Sie jedoch mit Daten arbeiten, für die beide Domänen wichtig sind. Für diese Fälle gibt es gewichtete Versionen des gleitenden Mittelwerts, die im Zeitbereich mehr oder weniger gleichwertig sind, jedoch eine wesentlich bessere Leistung im Frequenzbereich aufweisen. Wiederholte Moving Average Das erste, was Sie tun können, um die Frequenzantwort des gleitenden Durchschnittes zu verbessern, ist, es mehrmals anzuwenden. Nach zwei Wiederholungen ergibt dies eine dreieckige Gewichtung der Koeffizienten (Abbildung 2). Da das Anwenden des gleichen Filters zweimal seine Wirkung verdoppelt, ist die erste Seitenkeule des Frequenzgangs nur halb so hoch wie diejenige von Fig. 1. Der Grund für die dreieckige Form ist, daß der gleitende Durchschnitt eine Faltung mit einem rechteckigen Impuls ist. Das zweimalige Anlegen bewirkt eine Konvolution dieses Rechteckimpulses mit sich selbst, was zu einem dreieckigen Fenster für den kombinierten Filter führt. Man beachte, daß Ive die gleiche Filterlänge in Fig. 2 wie in Fig. 1 genommen hat, wodurch die erste Null des Frequenzgangs verschoben wird. Eine echte Faltung des ursprünglichen rechteckigen Filters hätte zu einem längeren Filter geführt und die Nullen natürlich genau an derselben Stelle gehalten. Wenn der gleitende Mittelwertfilter mehrfach wiederholt wird, konvergieren seine Koeffizienten aufgrund des zentralen Grenzwertsatzes zu einem Gaußschen Fenster (Fig. 3). Natürlich erstreckt sich ein tatsächlicher Gaussian unendlich in beide Richtungen, so dass es keine andere Möglichkeit gibt, als es an einem gewissen Punkt zu schneiden (oder es vielleicht mit einem zweiten Fenster zu multiplizieren). Zusätzlich muss die Standardabweichung des Gaussian gewählt werden. Für diese Darstellung (und für die Implementierung des Filter-Designers) habe ich die Standardeinstellungen von MATLAB übernommen. In der Praxis möchten Sie vielleicht einfach wiederholt den gleitenden Durchschnitt anstatt ein Gaußfenster anwenden. Wenn es rekursiv umgesetzt wird, ist der gleitende Durchschnitt sehr effizient. Während das Gaußsche Fenster durch Faltung implementiert werden muß. Blackman-Fenster Eine andere Möglichkeit ist, eine der klassischen Fensterfunktionen auszuwählen, die für Fenster-sinc-Filter verwendet werden, und verwenden Sie diese als Filterkernel (siehe die ausgezeichnete Wikipedia-Seite auf Fensterfunktionen). Als Beispiel wählte Ive das Blackman-Fenster (Abbildung 4). Dies verbessert die Stoppbanddämpfung noch weiter und zeigt trotzdem eine glatte Zeitbereichsantwort ohne Klingeln oder Überschwingen. Abschließend, wenn Sie Daten glatt, aber eine bessere Frequenz Leistung als die grundlegenden gleitenden Durchschnitt zu bieten haben, sind mehrere Alternativen zur Verfügung. Filter Design Tool Dieser Artikel wird mit einem Filter Design Tool ergänzt. Experimentieren Sie mit den verschiedenen Fensterfunktionen und der Länge des Filters und sehen Sie den Effekt auf den Frequenzgang. Probieren Sie es jetzt


No comments:

Post a Comment