Wednesday 15 February 2017

Kapitel 15 Gleitende Durchschnittsfilter

Die Wissenschaftler und Ingenieure Leitfaden für digitale Signalverarbeitung Von Steven W. Smith, Ph. D. Ein enormer Vorteil des gleitenden Mittelfilters besteht darin, dass er mit einem sehr schnellen Algorithmus implementiert werden kann. Um diesen Algorithmus zu verstehen, stellen Sie sich vor, ein Eingangssignal, x, durch ein siebenpunktiges gleitendes Durchschnittsfilter zu führen, um ein Ausgangssignal y zu bilden. Nun wird untersucht, wie zwei benachbarte Ausgangspunkte y 50 und y 51 berechnet werden: Es sind fast dieselben Berechnungspunkte x 48 bis x 53 für y 50 und für y 51 zu addieren. Wenn y 50 bereits berechnet wurde Ist der effizienteste Weg zum Berechnen von y 51: Nachdem y 51 unter Verwendung von y 50 gefunden worden ist, kann y 52 aus der Probe y 51 und so weiter berechnet werden. Nachdem der erste Punkt in y berechnet ist, können alle anderen Punkte mit nur einer Addition und Subtraktion pro Punkt gefunden werden. Dies kann in der Gleichung ausgedrückt werden: Beachten Sie, dass diese Gleichung zwei Datenquellen verwendet, um jeden Punkt in der Ausgabe zu berechnen: Punkte von der Eingabe und vorher berechnete Punkte von der Ausgabe. Dies wird als rekursive Gleichung bezeichnet, dh das Ergebnis einer Berechnung wird in zukünftigen Berechnungen verwendet. (Der Begriff rekursive hat auch andere Bedeutungen, vor allem in der Informatik). Kapitel 19 behandelt eine Vielzahl von rekursiven Filtern genauer. Beachten Sie, dass sich das gleitende, durchschnittliche rekursive Filter sehr von den typischen rekursiven Filtern unterscheidet. Insbesondere haben die meisten rekursiven Filter eine unendlich lange Impulsantwort (IIR), bestehend aus Sinusoiden und Exponentialen. Die Impulsantwort des gleitenden Mittelwertes ist ein Rechteckimpuls (endliche Impulsantwort oder FIR). Dieser Algorithmus ist aus mehreren Gründen schneller als andere digitale Filter. Erstens gibt es nur zwei Berechnungen pro Punkt, unabhängig von der Länge des Filterkerns. Zweitens sind Addition und Subtraktion die einzigen mathematischen Operationen, während die meisten digitalen Filter eine zeitaufwändige Multiplikation erfordern. Drittens ist das Indexierungsschema sehr einfach. Jeder Index in Gl. 15-3 durch Addieren oder Subtrahieren von ganzzahligen Konstanten gefunden, die berechnet werden können, bevor die Filterung beginnt (d. h. p und q). Weiter kann der gesamte Algorithmus mit Ganzzahldarstellung durchgeführt werden. Abhängig von der verwendeten Hardware können ganze Zahlen mehr als eine Größenordnung schneller als der Gleitpunkt sein. Überraschenderweise arbeitet die Ganzzahldarstellung besser als der Gleitkommawert mit diesem Algorithmus, zusätzlich zu dem, was schneller ist. Der Rundungsfehler der Gleitpunktarithmetik kann zu unerwarteten Ergebnissen führen, wenn Sie nicht vorsichtig sind. Stellen Sie sich zum Beispiel ein 10.000 Probensignal vor, das mit diesem Verfahren gefiltert wird. Der letzte Abtastwert im gefilterten Signal enthält den akkumulierten Fehler von 10.000 Additionen und 10.000 Subtraktionen. Dies erscheint im Ausgangssignal als Driftversatz. Integers dont haben dieses Problem, weil es keine Round-off-Fehler in der Arithmetik. Wenn Sie mit diesem Algorithmus Fließkommazahlen verwenden müssen, zeigt das Programm in Tabelle 15-2, wie ein doppelter Präzisionsakkumulator verwendet wird, um diese Drift zu eliminieren. Jedes Mal und immer wieder benutze ich einen gleitenden Durchschnitt, um Filterdaten zu passieren. Ein gleitender Mittelfilter ist sehr einfach und einfach in Echtzeit zu realisieren. Wenn Sie sich dafür entscheiden, gemeinsam fünf Datenpunkte (M 5) zu berechnen, werden die gefilterten Daten durch yi (xi-2 xi-1 xi xi1 xi2) berechnet. 5. Sie können diese rekursiv sogar implementieren, so dass jede nachfolgende Berechnung nur zwei Arithmetik erfordert (Vorausgesetzt, M 5), wenn Ihre erste Berechnung y3 (x1 x2 x3 x4 x5) 5 ist, dann ist die nächste Berechnung einfach, y4 y3 8211 x1 x6. Was ich didn8217t wissen, bis vor kurzem ist, wie die Frequenzantwort der gleitenden mittleren Filter zu berechnen. Der Frequenzgang Hf kann durch sin (pifM) (M sin (pif)) berechnet werden, wobei M die Länge des gleitenden Mittelwerts ist und f im Bereich von 0 bis 0,5 liegt (wobei 0,5 die Hälfte der Abtastfrequenz repräsentiert). Unten ist ein Diagramm der Frequenzgänge für die Längen 4, 8 und 16 (mit einer Samplefrequenz von 500 Hz). Beachten Sie, dass die Filter schöne, glatte Übergangsbänder (den Beginn der Kurven von einer Amplitude von 1 bis 0) und schreckliche Stopbänder (die wiederholten Wellen) haben. Dies macht einen gleitenden Durchschnitt zu einem 8220 außergewöhnlich guten Glättungsfilter (die Aktion im Zeitbereich), aber ein außergewöhnlich schlechtes Tiefpassfilter (die Aktion im Frequenzbereich) 8221 (The Scientist and Engineer8217s Guide to Digital Signal Processing, Kapitel 15) . Im Folgenden finden Sie Beispiele dafür, wie gleitende mittlere Filter zufälliges Rauschen aus einem rechteckigen Puls entfernen. Sie sehen, dass der rechteckige Impuls durch das allmähliche Übergangsband relativ steil gehalten wird, während das Rauschen entfernt wird. Wenn Sie 60 Hz Rauschen entfernen möchten, dann wird eine Länge von 8 gut funktionieren (die grüne Linie in der ersten Grafik). Sie können das Anschlagband, bei dem teure eines steileren Übergangsbandes verbessern, indem Sie den Filter mehrmals anwenden. Nachstehend ist ein Graph des Frequenzgangs eines gleitenden Mittelwerts der Länge 8 gezeigt, nachdem er ein, zwei oder viermal gefiltert wurde. Diese wurden durch Multiplizieren der Frequenzantwortfunktion für sich allein für jeden Durchgang (Dualpass Hf Hf) berechnet. Wenn Sie 60 Hz Rauschen mit einem Dual-Pass-Filter entfernen wollen, können Sie anstelle von 8 mit einem Single-Pass-Filter eine Länge von 7 verwenden.


No comments:

Post a Comment