Monday 3 April 2017

Moving Average Band Pass Filter

Der Moving Average als Filter Der gleitende Durchschnitt wird oft für die Glättung von Daten in Anwesenheit von Rauschen verwendet. Der einfache gleitende Durchschnitt wird nicht immer als der Finite Impulse Response (FIR) - Filter erkannt, der es ist, während er tatsächlich einer der gebräuchlichsten Filter in der Signalverarbeitung ist. Wenn man sie als Filter betrachtet, kann man sie beispielsweise mit gefensterten Filtern vergleichen (siehe Artikel zu Tiefpaß-, Hochpass - und Bandpass - und Bandsperrfiltern für Beispiele). Der Hauptunterschied zu diesen Filtern besteht darin, daß der gleitende Durchschnitt für Signale geeignet ist, für die die Nutzinformation im Zeitbereich enthalten ist. Von denen Glättungsmessungen durch Mittelung ein Paradebeispiel sind. Window-sinc-Filter, auf der anderen Seite, sind starke Künstler im Frequenzbereich. Mit Ausgleich in der Audioverarbeitung als typisches Beispiel. Es gibt einen detaillierteren Vergleich beider Arten von Filtern in Time Domain vs. Frequency Domain Performance von Filtern. Wenn Sie Daten haben, für die sowohl die Zeit als auch die Frequenzdomäne wichtig sind, dann möchten Sie vielleicht einen Blick auf Variationen auf den Moving Average werfen. Die eine Anzahl gewichteter Versionen des gleitenden Durchschnitts zeigt, die besser sind. Der gleitende Durchschnitt der Länge (N) kann so definiert werden, wie er üblicherweise implementiert ist, wobei der aktuelle Ausgabeabtastwert der Durchschnitt der vorhergehenden (N) Abtastwerte ist. Als Filter betrachtet, führt der gleitende Durchschnitt eine Faltung der Eingangsfolge (xn) mit einem Rechteckpuls der Länge (N) und der Höhe (1 / N) durch (um den Bereich des Pulses und damit die Verstärkung von Der Filter, ein). In der Praxis ist es am besten, (N) ungerade zu nehmen. Obwohl ein gleitender Durchschnitt auch unter Verwendung einer geraden Anzahl von Abtastwerten berechnet werden kann, hat die Verwendung eines ungeradzahligen Wertes für (N) den Vorteil, daß die Verzögerung des Filters eine ganzzahlige Anzahl von Abtastwerten ist, da die Verzögerung eines Filters mit (N) Proben genau ist ((N-1) / 2). Der gleitende Durchschnitt kann dann exakt mit den ursprünglichen Daten ausgerichtet werden, indem er um eine ganze Zahl von Abtastwerten verschoben wird. Zeitdomäne Da der gleitende Durchschnitt eine Faltung mit einem rechteckigen Puls ist, ist sein Frequenzgang eine sinc-Funktion. Dies macht es ähnlich dem Dual des Fenstersynchronfilters, da es sich hierbei um eine Faltung mit einem Sinc-Puls handelt, der zu einem rechteckigen Frequenzgang führt. Es ist diese sinc Frequenzantwort, die den gleitenden Durchschnitt ein schlechter Darsteller im Frequenzbereich macht. Allerdings führt es sehr gut im Zeitbereich. Daher ist es perfekt, um Daten zu löschen, um Rauschen zu entfernen, während gleichzeitig eine schnelle Sprungantwort beibehalten wird (1). Für das typische Additiv-Weiß-Gauß-Rauschen (AWGN), das oft angenommen wird, hat die Mittelung (N) - Proben den Effekt, das SNR um einen Faktor von (sqrt N) zu erhöhen. Da das Rauschen für die einzelnen Proben unkorreliert ist, gibt es keinen Grund, jede Probe unterschiedlich zu behandeln. Daher wird der gleitende Durchschnitt, der jeder Probe das gleiche Gewicht gibt, die maximale Menge an Rauschen für eine gegebene Sprungantwortschärfe beseitigen. Implementierung Da es sich um ein FIR-Filter handelt, kann der gleitende Durchschnitt durch Faltung implementiert werden. Es hat dann die gleiche Effizienz (oder das Fehlen davon) wie jedes andere FIR-Filter. Sie kann aber auch rekursiv und effizient umgesetzt werden. Es folgt unmittelbar aus der Definition, daß diese Formel das Ergebnis der Ausdrücke für (yn) und (yn1) ist, dh, daß die Veränderung zwischen (yn1) und (yn) einen zusätzlichen Term (xn1 / N) Erscheint am Ende, während der Term (xn-N1 / N) vom Anfang entfernt wird. In praktischen Anwendungen ist es oft möglich, die Division durch (N) für jeden Term auszulassen, indem die resultierende Verstärkung von (N) an einer anderen Stelle kompensiert wird. Diese rekursive Umsetzung wird viel schneller als Faltung. Jeder neue Wert von (y) kann mit nur zwei Additionen anstelle der (N) Additionen berechnet werden, die für eine einfache Implementierung der Definition erforderlich wären. Eine Sache, mit der Sie nach einer rekursiven Implementierung Ausschau halten, ist, dass Rundungsfehler akkumulieren. Dies kann ein Problem für Ihre Anwendung sein oder auch nicht, aber es bedeutet auch, dass diese rekursive Implementierung tatsächlich mit einer Integer-Implementierung besser funktionieren wird als mit Gleitkommazahlen. Dies ist sehr ungewöhnlich, da eine Gleitkomma-Implementierung gewöhnlich einfacher ist. Der Schluss davon muss sein, dass Sie die Nützlichkeit des einfachen gleitenden Durchschnittsfilters in Signalverarbeitungsanwendungen nie unterschätzen sollten. Filter Design Tool Dieser Artikel wird mit einem Filter Design Tool ergänzt. Experimentiere mit verschiedenen Werten für (N) und visualisiere die resultierenden Filter. Versuchen Sie es jetztThe Scientist and Engineers Guide to Digitale Signalverarbeitung Von Steven W. Smith, Ph. D. Kapitel 14: Einführung in digitale Filter Hochpass-, Bandpass - und Bandsperrfilter Hochpass-, Bandpass - und Bandsperrfilter werden so entworfen, dass sie mit einem Tiefpassfilter beginnen und es dann in die gewünschte Antwort umwandeln . Aus diesem Grund geben die meisten Diskussionen zum Filterdesign nur Beispiele für Tiefpaßfilter. Es gibt zwei Verfahren für die Tiefpass-Hochpaßumwandlung: spektrale Inversion und spektrale Umkehrung. Beide sind gleich nützlich. Ein Beispiel der spektralen Inversion ist in 14-5 gezeigt. Abbildung (a) zeigt einen Tiefpaßfilterkern, der als windowed-sinc bezeichnet wird (das Thema von Kapitel 16). Dieser Filterkernel hat eine Länge von 51 Punkten, obwohl viele der Samples einen so kleinen Wert haben, dass sie in diesem Graphen Null zu sein scheinen. Der entsprechende Frequenzgang wird in (b) gezeigt, gefunden durch Hinzufügen von 13 Nullen zum Filterkern und unter Verwendung einer 64-Punkt-FFT. Zwei Dinge müssen getan werden, um den Tiefpaßfilterkernel in einen Hochpaßfilterkernel zu ändern. Zuerst ändern Sie das Vorzeichen der einzelnen Samples im Filterkernel. Zweitens, fügen Sie eine zur Probe in der Mitte der Symmetrie. Dies führt zu dem in (c) gezeigten Hochpaßfilterkern mit dem in (d) gezeigten Frequenzgang. Spektrale Inversion spiegelt den Frequenzgang von oben nach unten. Ändern der Passbänder in Stoppbänder und der Stoppbänder in Passbänder. Mit anderen Worten, er ändert einen Filter von Tiefpaß zu Hochpaß, Hochpaß zu Tiefpaß, Bandpaß zu Bandspur oder Bandspur zu Bandpaß. Abbildung 14-6 zeigt, warum diese zweistufige Modifikation des Zeitbereichs zu einem invertierten Frequenzspektrum führt. In (a) wird das Eingangssignal x n parallel an zwei Systeme angelegt. Eines dieser Systeme ist ein Tiefpassfilter mit einer Impulsantwort, die durch h n gegeben ist. Das andere System tut nichts für das Signal und hat daher eine Impulsantwort, die eine Delta-Funktion ist, delta n. Der Gesamtausgang y n ist gleich dem Ausgang des Allpass-Systems minus dem Ausgang des Tiefpaßsystems. Da die niederfrequenten Komponenten von dem ursprünglichen Signal subtrahiert werden, erscheinen nur die hochfrequenten Komponenten in dem Ausgang. Somit wird ein Hochpaßfilter gebildet. Dies könnte als ein zweistufiger Vorgang in einem Computerprogramm ausgeführt werden: Durchlaufen des Signals durch ein Tiefpassfilter und dann Subtrahieren des gefilterten Signals von dem Original. Jedoch kann der gesamte Vorgang in einer Signalstufe durch Kombinieren der beiden Filterkerne durchgeführt werden. Wie in Kapitel 7 beschrieben, können parallele Systeme mit addierten Ausgängen durch Hinzufügen ihrer Impulsantworten zu einer einzigen Stufe kombiniert werden. Wie in (b) gezeigt, ist der Filterkernel für den Hochpassfilter gegeben durch: delta n - h n. Das heißt, ändern Sie das Vorzeichen aller Proben, und fügen Sie dann ein, um die Probe in der Mitte der Symmetrie. Damit diese Technik funktioniert, müssen die Niederfrequenzkomponenten, die aus dem Tiefpassfilter austreten, dieselbe Phase wie die Niederfrequenzkomponenten haben, die das Allpass-System verlassen. Andernfalls kann keine vollständige Subtraktion erfolgen. Dies stellt zwei Einschränkungen für das Verfahren dar: (1) Der ursprüngliche Filterkernel muß eine Links-Rechts-Symmetrie haben (d. h. eine Null - oder Linearphase), und (2) der Impuls muß in der Mitte der Symmetrie addiert werden. Das zweite Verfahren zur Tiefpaß - zu Hochpaßumwandlung, spektrale Umkehrung. Ist in Fig. 2 dargestellt. 14-7. Genau wie zuvor entspricht der Tiefpaßfilterkernel in (a) dem Frequenzgang in (b). Der Hochpaßfilterkernel (c) wird durch Ändern des Vorzeichens jeder zweiten Abtastung in (a) gebildet. Wie in (d) gezeigt, kippt dies den Frequenzbereich von links nach rechts. 0 zu 0,5 und 0,5 zu 0. Die Grenzfrequenz des Beispiel-Tiefpaßfilters beträgt 0,15, was dazu führt, daß die Grenzfrequenz des Hochpaßfilters 0,35 beträgt. Das Ändern des Vorzeichens jeder zweiten Abtastung ist äquivalent zum Multiplizieren des Filterkerns mit einer Sinuskurve mit einer Frequenz von 0,5. Wie in Kapitel 10 erörtert, hat dies die Wirkung, den Frequenzbereich um 0,5 zu verschieben. Betrachten Sie (b) und stellen Sie sich die negativen Frequenzen zwischen -0,5 und 0 vor, die ein Spiegelbild der Frequenzen zwischen 0 und 0,5 sind. Die in (d) auftretenden Frequenzen sind die negativen Frequenzen von (b), die um 0,5 verschoben sind. Schließlich zeigen Fig. 14-8 und 14-9 zeigen, wie Tiefpaß - und Hochpaßfilterkerne zu Bandpass - und Bandsperrfiltern kombiniert werden können. Kurz gesagt, das Hinzufügen der Filterkerne erzeugt ein Bandsperrfilter, während das Zusammenfalten der Filterkerne ein Bandpaßfilter erzeugt. Diese basieren auf der Art und Weise, wie kaskadierte und parallele Systeme kombiniert werden, wie in Kapitel 7 diskutiert wird. Es können auch mehrere Kombinationen dieser Techniken verwendet werden. Zum Beispiel kann ein Bandpassfilter konstruiert werden, indem die beiden Filterkerne zu einem Bandpaßfilter addiert werden und dann eine spektrale Inversion oder spektrale Umkehrung, wie zuvor beschrieben, verwendet werden. Alle diese Techniken funktionieren sehr gut mit wenigen Überraschungen. Frequenzantwort des laufenden Mittelfilters Der Frequenzgang eines LTI-Systems ist die DTFT der Impulsantwort, Die Impulsantwort eines L-gleitenden Durchschnittswertes Da der gleitende Durchschnittsfilter FIR ist , Verringert sich der Frequenzgang auf die endliche Summe Wir können die sehr nützliche Identität verwenden, um den Frequenzgang zu schreiben, wo wir ae minus jomega haben lassen. N 0 und M L minus 1. Wir können an der Größe dieser Funktion interessiert sein, um zu bestimmen, welche Frequenzen durch den Filter ungedämpft werden und welche gedämpft werden. Unten ist ein Diagramm der Größe dieser Funktion für L 4 (rot), 8 (grün) und 16 (blau). Die horizontale Achse reicht von Null bis pi Radiant pro Probe. Man beachte, daß der Frequenzgang in allen drei Fällen eine Tiefpaßcharakteristik aufweist. Eine konstante Komponente (Nullfrequenz) im Eingang durchläuft das Filter ungedämpft. Bestimmte höhere Frequenzen, wie z. B. pi / 2, werden durch das Filter vollständig eliminiert. Wenn es aber die Absicht war, ein Tiefpassfilter zu entwerfen, dann haben wir das nicht sehr gut gemacht. Einige der höheren Frequenzen werden nur um einen Faktor von etwa 1/10 (für den 16-Punkte-gleitenden Durchschnitt) oder 1/3 (für den vier-Punkte-gleitenden Durchschnitt) gedämpft. Wir können viel besser als das. Der oben genannte Plot wurde durch den folgenden Matlab-Code erzeugt: omega 0: pi / 400: pi H4 (1/4) (1-exp (-iomega4)) ./ (1-exp (-Iomega)) H8 (1/8 ) (1-exp (-iomega)) - (1-exp (-iomega)) - Geispiel (Omega , Abs (H4) abs (H8) abs (H16) Achse (0, pi, 0, 1) Copyright - 2000 - Universität von Kalifornien, Berkeley


No comments:

Post a Comment