Bewegen der durchschnittlichen Filter Transkription 1 KAPITEL 15 Bewegen der durchschnittlichen Filter Der gleitende Durchschnitt ist der häufigste Filter im DSP, hauptsächlich weil es der einfachste digitale Filter zu verstehen und zu verwenden ist. Trotz seiner Einfachheit ist der gleitende Durchschnittsfilter optimal für eine gemeinsame Aufgabe: Verringerung des zufälligen Rauschens unter Beibehaltung einer scharfen Sprungantwort. Dies macht es zum führenden Filter für zeitbereichskodierte Signale. Allerdings ist der gleitende Durchschnitt der schlechteste Filter für Frequenzbereich codierte Signale, mit wenig Fähigkeit, ein Band von Frequenzen von einem anderen zu trennen. Zu den Verwandten des gleitenden Durchschnittsfilters gehören der Gaußsche, der Blackman und der Mehrfachdurchlauf. Diese haben eine etwas bessere Leistung im Frequenzbereich, auf Kosten der erhöhten Rechenzeit. Implementierung durch Faltung Wie der Name schon sagt, arbeitet der gleitende Mittelwert durch Mittelung einer Anzahl von Punkten aus dem Eingangssignal, um jeden Punkt im Ausgangssignal zu erzeugen. In Gleichungsform ist dies geschrieben: GLEICHUNG 15-1 Gleichung des gleitenden Durchschnittsfilters. In dieser Gleichung ist x das Eingangssignal, y ist das Ausgangssignal und M ist die Anzahl der Punkte, die im gleitenden Durchschnitt verwendet werden. Diese Gleichung verwendet nur Punkte auf einer Seite der ausgegebenen Abtastprobe. Yi 1 M Mamp1 j j x ij Wo ist das Eingangssignal, ist das Ausgangssignal und M ist die Zahl x y der Punkte im Mittelwert. Beispielsweise ist bei einem 5-Punkt-Gleitmittel-Filter Punkt 8 im Ausgangssignal gegeben durch: y 8 x 8 x 81 x 82 x 83 x 84 5 277 2 278 Die Wissenschaftler und Ingenieure Leitfaden zur digitalen Signalverarbeitung Als Alternative, Die Gruppe der Punkte aus dem Eingangssignal kann symmetrisch um den Ausgangspunkt gewählt werden: y8 x78 x79 x8 x81 x82 5 Dies entspricht der Änderung der Summierung in Gl. Von: j bis Mamp1, zu: jamp (mamp1) 2 bis (Mamp1) 2 . Zum Beispiel kann bei einem 11-fach gleitenden Durchschnittsfilter der Index j von bis 11 (einseitige Mittelung) oder -5 bis 5 (symmetrische Mittelung) laufen. Symmetrische Mittelung erfordert, dass M eine ungerade Zahl ist. Die Programmierung ist mit den Punkten nur auf einer Seite etwas leichter, was zu einer relativen Verschiebung zwischen den Eingangs - und Ausgangssignalen führt. Sie sollten erkennen, dass der gleitende Durchschnittsfilter eine Faltung mit einem sehr einfachen Filterkernel ist. Zum Beispiel hat ein 5-Punkt-Filter den Filterkern: Dorn. 15, 15, 15, 15, 15. Dorn. Das heißt, das gleitende Durchschnittsfilter ist eine Faltung des Eingangssignals mit einem rechteckigen Impuls mit einer Fläche von eins. Tabelle 15-1 zeigt ein Programm zur Implementierung des gleitenden Durchschnittsfilters. 1 MOVING AVERAGE FILTER 11 Dieses Programm filtert 5 Samples mit einem 11-fach bewegenden 12-durchschnittlichen Filter, was zu 49 Samples gefilterter Daten führt. 13 14 DIM X4999 X hält das Eingangssignal 15 DIM Y4999 Y hält das Ausgangssignal 16 17 GOSUB XXXX Mythische Unterroutine zum Laden X 18 19 FOR I 5 TO 4949 Schleife für jeden Punkt im Ausgangssignal 2 YI Zero, so dass es verwendet werden kann Als Akkumulator 21 FOR J -5 TO 5 Berechnen Sie die Summation 22 YI YI X (IJ 23 NEXT J 24 YI YI11 Vervollständigen Sie den Durchschnitt durch Division 25 NEXT I 26 27 END TABELLE 15-1 Rauschunterdrückung vs. Schritt Antwort Viele Wissenschaftler und Ingenieure Fühle mich schuldig an der Verwendung des gleitenden durchschnittlichen Filters, denn es ist so einfach, dass der gleitende Mittelfilter oft das erste ist, was versucht wird, wenn man mit einem Problem konfrontiert ist. Auch wenn das Problem vollständig gelöst ist, gibt es immer noch das Gefühl, dass etwas mehr sein sollte Diese Situation ist wirklich ironisch. Nicht nur ist die gleitenden durchschnittlichen Filter sehr gut für viele Anwendungen, ist es optimal für ein gemeinsames Problem, die Verringerung der zufälligen weißen Rauschen unter Beibehaltung der schärfsten Schritt Antwort 3 Kapitel 15 - Moving Average Filter a. Original Signal 2 b. 11 Punkt bewegter Durchschnitt Amplitude ABBILDUNG 15-1 Beispiel eines gleitenden Durchschnittsfilters In (a) wird ein rechteckiger Puls in zufälligem Rauschen begraben. In (b) und (c) wird dieses Signal mit 11 bzw. 51 Punkten bewegten Durchschnittsfiltern gefiltert. Wenn die Anzahl der Punkte im Filter zunimmt, wird das Rauschen jedoch geringer, wenn die Kanten weniger scharf werden. Der gleitende Mittelfilter ist die optimale Lösung für dieses Problem und liefert das geringste Rauschen für eine gegebene Kantenschärfe. Amplitudenamplitude c. 51 Punkt gleitender Durchschnitt Abbildung 15-1 zeigt ein Beispiel dafür, wie das funktioniert. Das Signal in (a) ist ein Puls, der in zufälligem Rauschen vergraben ist. In (b) und (c) verringert die Glättungsaktion des gleitenden Durchschnittsfilters die Amplitude des zufälligen Rauschens (gut), verringert aber auch die Schärfe der Kanten (schlecht). Von allen möglichen linearen Filtern, die verwendet werden könnten, erzeugt der gleitende Durchschnitt das niedrigste Rauschen für eine gegebene Kantenschärfe. Die Menge der Rauschunterdrückung ist gleich der Quadratwurzel der Anzahl der Punkte im Durchschnitt. Zum Beispiel reduziert ein 1-Punkt-Gleitender Durchschnitt den Rauschen um den Faktor 1. Um zu verstehen, warum der gleitende Durchschnitt die beste Lösung ist, stellen wir uns vor, wir wollen einen Filter mit einer festen Kantenschärfe entwerfen. Zum Beispiel können wir annehmen, dass wir die Kantenschärfe festlegen, indem wir angeben, dass es elf Punkte im Aufstieg der Sprungantwort gibt. Dies erfordert, dass der Filterkernel elf Punkte hat. Die Optimierungsfrage lautet: Wie wählen wir die elf Werte im Filterkernel, um das Rauschen auf dem Ausgangssignal zu minimieren Da das Rauschen, das wir zu reduzieren versuchen, zufällig ist, ist keines der Eingangspunkte, jedes ist genauso laut wie sein Nachbar . Daher ist es nutzlos, eine beliebige der Eingangspunkte vorzuziehen, indem man ihm einen größeren Koeffizienten im Filterkern zuweist. Das niedrigste Rauschen wird erhalten, wenn alle Eingangsabtastungen gleich behandelt werden, d. h. das gleitende Durchschnittsfilter. (Später in diesem Kapitel zeigen wir, dass andere Filter im Wesentlichen so gut sind. Der Punkt ist, kein Filter ist besser als der einfache gleitende Durchschnitt). 4 28 Die Wissenschaftler und Ingenieure Leitfaden zur digitalen Signalverarbeitung Frequenzgang Abbildung 15-2 zeigt den Frequenzgang des gleitenden Durchschnittsfilters. Es wird mathematisch durch die Fourier-Transformation des Rechteckimpulses beschrieben, wie in Kapitel 11 diskutiert: EQUATION 15-2 Frequenzgang eines M-Punkt-Gleitendurchschnitts-Filters. Die Frequenz, f, läuft zwischen und.5. Für f, verwenden Sie: H f 1 H f sin (bf M) M sin (bf) Der Roll-off ist sehr langsam und die Stoppbanddämpfung ist schrecklich. Offensichtlich kann der gleitende Durchschnittsfilter kein Frequenzband von einem anderen trennen. Denken Sie daran, gute Leistung im Zeitbereich führt zu schlechter Leistung im Frequenzbereich und umgekehrt. Kurz gesagt, der gleitende Durchschnitt ist ein außergewöhnlich guter Glättungsfilter (die Aktion im Zeitbereich), aber ein außergewöhnlich schlechter Tiefpassfilter (die Aktion im Frequenzbereich). 1.2 ABBILDUNG 15-2 Frequenzgang des gleitenden Durchschnittsfilters Der gleitende Durchschnitt ist ein sehr schlechtes Tiefpaßfilter, bedingt durch seine langsame Abwicklung und schlechte Stoppbanddämpfung. Diese Kurven werden durch Eq erzeugt Amplitude Punkt 31 Punkt 3 Punkt Frequenz Verwandten des Moving Average Filters In einer perfekten Welt, Filter Designer würden nur mit Zeitbereich oder Frequenzbereich codiert Informationen zu behandeln, aber nie eine Mischung aus den beiden in der gleichen Signal. Leider gibt es einige Anwendungen, bei denen beide Domains gleichzeitig wichtig sind. Zum Beispiel fallen Fernsehsignale in diese böse Kategorie. Videoinformation wird im Zeitbereich codiert, dh die Form der Wellenform entspricht den Helligkeitsmustern im Bild. Während der Übertragung wird das Videosignal jedoch entsprechend seiner Frequenzzusammensetzung, wie z. B. seiner Gesamtbandbreite, behandelt, wie die Trägerwellen für die Schallverstärkerfarbe hinzugefügt werden, die Eliminierungsverstärkerwiederherstellung der Gleichstromkomponente usw. Als weiteres Beispiel ist eine elektromagnetische Interferenz am besten Verstanden im Frequenzbereich, auch wenn 5 Kapitel 15 - Moving Average Filter 281 Amplitude Amplitude.2.1 a. Filter kernel 2 pass 1 pass 4 pass b. Schritt Antwort 1 Pass 2 Pass 4 Pass FFT Frequenz Integrieren 2 Log () d. Frequenzgang (db) 2 Durchlauf 4 Durchgang 1 Durchgang Frequenz ABBILDUNG 15-3 Merkmale von Mehrfachdurchlauf-Gleitenden Durchschnittsfiltern Abbildung (a) zeigt die Filterkörner, die sich aus der Übergabe eines siebenfach gleitenden Durchschnittsfilters über die Daten einmal, zweimal und viermal ergeben. Abbildung (b) zeigt die entsprechenden Schrittantworten, während (c) und (d) die entsprechenden Frequenzantworten zeigen. Amplitude (db) Amplitude c. Frequenzgang 1 Pass 2 Pass 4 pass die Signale Information wird im Zeitbereich codiert. Zum Beispiel könnte die Temperaturüberwachung in einem wissenschaftlichen Experiment mit 6 Hertz aus den Stromleitungen, 3 kHz von einer Schaltnetzteil oder 132 kHz von einem lokalen AM-Radiosender verunreinigt werden. Verwandte des gleitenden Durchschnittsfilters haben eine bessere Frequenzdomänenleistung und können in diesen gemischten Domänenanwendungen nützlich sein. Mehrfachdurchlauf-gleitende Durchschnittsfilter beinhalten das Übergeben des Eingangssignals durch einen gleitenden Durchschnittsfilter zweimal oder mehrmals. Abbildung 15-3a zeigt den gesamten Filterkern, der aus einem, zwei und vier Durchgängen resultiert. Zwei Pässe sind gleichbedeutend mit der Verwendung eines dreieckigen Filterkerns (ein rechteckiger Filterkern, der mit sich selbst gefaltet wurde). Nach vier oder mehr Pässe sieht der äquivalente Filterkernel wie ein Gaußscher aus (erinnert sich an den Central Limit Theorem). Wie in (b) gezeigt, erzeugen mehrere Durchgänge eine quotenquotförmige Stufenantwort, verglichen mit der geraden Linie des einzelnen Durchgangs. Die Frequenzantworten in (c) und (d) sind durch Eq multipliziert mit sich selbst für jeden Durchlauf gegeben. Das heißt, jedes Mal führt die Domänenfaltung zu einer Multiplikation der Frequenzspektren. 6 282 Die Wissenschaftler und Ingenieure Leitfaden zur digitalen Signalverarbeitung Abbildung 15-4 zeigt den Frequenzgang von zwei anderen Verwandten des gleitenden Durchschnittsfilters. Wenn ein reiner Gaußer als Filterkern verwendet wird, ist der Frequenzgang auch ein Gaußscher, wie in Kapitel 11 diskutiert. Der Gauß ist wichtig, weil es die Impulsantwort vieler natürlicher und künstlicher Systeme ist. Beispielsweise wird ein kurzer Lichtpuls, der in eine lange faseroptische Übertragungsleitung eintritt, als ein Gaußscher Impuls aufgrund der unterschiedlichen Wege, die von den Photonen innerhalb der Faser genommen werden, ablaufen. Der Gaußsche Filterkernel wird auch weitgehend in der Bildverarbeitung verwendet, da er einzigartige Eigenschaften aufweist, die schnelle zweidimensionale Windungen ermöglichen (siehe Kapitel 24). Der zweite Frequenzgang in Fig. Entspricht der Verwendung eines Blackman-Fensters als Filterkernel. (Der Begriff Fenster hat hier keine Bedeutung, es ist einfach Teil des akzeptierten Namens dieser Kurve). Die genaue Form des Blackman-Fensters ist in Kapitel 16 (Gl. 16-2, Abb. 16-2) gegeben. Allerdings sieht es wie ein Gaußer aus. Wie sind diese Verwandten des gleitenden Durchschnittsfilters besser als der gleitende Mittelfilter selbst Drei Wege: Erstens und am wichtigsten, diese Filter haben eine bessere Stoppbanddämpfung als der gleitende Durchschnittsfilter. Zweitens verjüngen sich die Filterkerne zu einer kleineren Amplitude nahe den Enden. Erinnern Sie sich, dass jeder Punkt im Ausgangssignal eine gewichtete Summe einer Gruppe von Samples aus dem Eingang ist. Wenn sich der Filterkern verjüngt, werden Proben im Eingangssignal, die weiter entfernt sind, weniger Gewicht erhalten als die in der Nähe befindlichen. Drittens sind die Schrittantworten glatte Kurven, anstatt die abrupte gerade Linie des gleitenden Durchschnitts. Diese beiden letzten sind in der Regel von begrenztem Nutzen, obwohl Sie Anwendungen finden können, wo sie echte Vorteile sind. Der gleitende Durchschnittsfilter und seine Verwandten sind alle gleich bei der Verringerung des zufälligen Lärms, während eine scharfe Schrittantwort beibehalten wird. Die Unklarheit liegt darin, wie die Laufzeit der Sprungantwort gemessen wird. Wenn die Laufzeit von bis zu 1 der Stufe gemessen wird, ist der gleitende Durchschnittsfilter das Beste, was Sie tun können, wie bereits gezeigt. Im Vergleich dazu misst die Messung der Raisetime von 1 bis 9 das Blackman-Fenster besser als das gleitende Mittelfilter. Der Punkt ist, das ist nur theoretische Streiterei betrachten diese Filter gleich in diesem Parameter. Der größte Unterschied in diesen Filtern ist die Ausführungsgeschwindigkeit. Mit einem rekursiven Algorithmus (als nächstes beschrieben) läuft der gleitende durchschnittliche Filter wie ein Blitz in deinem Computer. In der Tat ist es der schnellste digitale Filter zur Verfügung. Mehrere Pässe des gleitenden Durchschnitts werden entsprechend langsamer, aber immer noch sehr schnell. Im Vergleich dazu sind die Gaussian - und Blackman-Filter quälend langsam, weil sie Faltung verwenden müssen. Denken Sie einen Faktor von zehnmal die Anzahl der Punkte im Filterkernel (basierend auf Multiplikation, die etwa 1 mal langsamer als die Addition ist). Zum Beispiel, erwarten Sie einen 1-Punkt-Gaussian, um 1 mal langsamer als ein gleitender Durchschnitt mit Rekursion zu sein. Rekursive Implementierung Ein enormer Vorteil des gleitenden Durchschnittsfilters ist, dass er mit einem sehr schnellen Algorithmus implementiert werden kann. Um dies zu verstehen 7 Kapitel 15 - Bewegen der mittleren Filter ABBILDUNG 15-4 Frequenzgang des Blackman-Fensters und der Gaußschen Filterkern. Beide Filter bieten eine bessere Stoppbanddämpfung als der gleitende Mittelfilter. Dies hat keinen Vorteil bei der Entfernung von zufälligem Rauschen aus zeitbereichskodierten Signalen, aber es kann bei gemischten Domänenproblemen nützlich sein. Der Nachteil dieser Filter ist, dass sie Faltung, einen furchtbar langsamen Algorithmus verwenden müssen. Amplitude (db) Blackman Gaussian Frequency Algorithmus, vorstellen, ein Eingangssignal, x, durch ein sieben Punkt gleitendes Mittelfilter zu bilden, um ein Ausgangssignal y zu bilden. Betrachten wir nun, wie zwei benachbarte Ausgangspunkte y5 und y51 berechnet werden: y5 x47 x48 x49 x5 x51 x52 x53 y51 x48 x49 x5 x51 x52 x53 x54 Dies sind fast die gleichen Berechnungspunkte x48 bis x53 müssen für y5 und wieder hinzugefügt werden Für y51 Wenn y5 bereits berechnet wurde, ist der effizienteste Weg, um y51 zu berechnen: y51 y5 x54amp x47 Sobald y51 mit y5 gefunden wurde, kann y52 aus Beispiel y51 berechnet werden, und so weiter. Nachdem der erste Punkt in y berechnet wurde, können alle anderen Punkte mit nur einer Addition und Subtraktion pro Punkt gefunden werden. Dies kann in der Gleichung ausgedrückt werden: GLEICHUNG 15-3 Rekursive Umsetzung des gleitenden Durchschnittsfilters In dieser Gleichung ist x das Eingangssignal, y ist das Ausgangssignal, M ist die Anzahl der Punkte im gleitenden Durchschnitt (eine ungerade Zahl). Bevor diese Gleichung verwendet werden kann, muss der erste Punkt im Signal mit einer Standardsummierung berechnet werden. Yi yiamp1 xipamp xiampq Dabei gilt: p (Mamp1) 2 q p 1 Beachten Sie, dass diese Gleichung zwei Datenquellen verwendet, um jeden Punkt im Ausgang zu berechnen: Punkte aus dem Eingang und vorher berechnete Punkte aus dem Ausgang. Dies wird als rekursive Gleichung bezeichnet, dh das Ergebnis einer Berechnung 8 284 Die Wissenschaftler und Ingenieure Leitfaden zur digitalen Signalverarbeitung werden in zukünftigen Berechnungen verwendet. (Der Begriff quotrecursivequot hat auch andere Bedeutungen, vor allem in der Informatik). Kapitel 19 diskutiert eine Vielzahl von rekursiven Filtern im Detail. Seien Sie sich bewusst, dass der gleitende durchschnittliche rekursive Filter sehr unterschiedlich ist von typischen rekursiven Filtern. Insbesondere haben die meisten rekursiven Filter eine unendlich lange Impulsantwort (IIR), die aus Sinusoiden und Exponentialen besteht. Die Impulsantwort des gleitenden Durchschnitts ist ein Rechteckimpuls (endliche Impulsantwort oder FIR). Dieser Algorithmus ist aus mehreren Gründen schneller als andere digitale Filter. Zuerst gibt es nur zwei Berechnungen pro Punkt, unabhängig von der Länge des Filterkerns. Zweitens sind Addition und Subtraktion die einzigen mathematischen Operationen erforderlich, während die meisten digitalen Filter eine zeitaufwändige Multiplikation benötigen. Drittens ist das Indexierungsschema sehr einfach. Jeder Index in Gleichung wird durch Hinzufügen oder Subtrahieren von ganzzahligen Konstanten gefunden, die berechnet werden können, bevor die Filterung beginnt (d. h. p und q). Weiterhin kann der gesamte Algorithmus mit ganzzahliger Darstellung durchgeführt werden. Abhängig von der verwendeten Hardware können ganze Zahlen mehr als eine Größenordnung schneller als Gleitkomma sein. Überraschenderweise arbeitet die Integer-Darstellung besser als der Gleitpunkt mit diesem Algorithmus, zusätzlich zu schneller. Der Rundungsfehler von Gleitkomma-Arithmetik kann zu unerwarteten Ergebnissen führen, wenn man nicht vorsichtig ist. Stellen Sie sich beispielsweise ein 1, wobei das Probensignal mit dieser Methode gefiltert wird. Die letzte Probe im gefilterten Signal enthält den akkumulierten Fehler von 1, Additionen und 1, Subtraktionen. Dies erscheint im Ausgangssignal als Driftversatz. Integers haben dieses Problem nicht, weil es keinen Rundungsfehler in der Arithmetik gibt. Wenn Sie mit diesem Algorithmus Gleitpunkt verwenden müssen, zeigt das Programm in Tabelle 15-2 an, wie man einen doppelten Präzisionsakkumulator benutzt, um diese Drift zu beseitigen. 1 BEWEGLICHER DURCHSCHNITTFILTER DURCH RECURSION 11 Dieses Programm filtert 5 Samples mit einem 11-fach bewegenden 12-durchschnittlichen Filter, was zu 49 Samples gefilterter Daten führt. 13 Ein doppelter Präzisions-Akkumulator dient zur Vermeidung von Runddrift. 14 15 DIM X4999 X hält das Eingangssignal 16 DIM Y4999 Y hält das Ausgangssignal 17 DEFDBL ACC Definieren Sie die Variable ACC als doppelte Genauigkeit 18 19 GOSUB XXXX Mythische Unterroutine zum Laden X 2 21 ACC Find Y5 durch Mittelungspunkte X bis X1 22 FOR I ZU 1 23 ACC ACC XI 24 NÄCHST I 25 Y5 ACC11 26 Rekursiver gleitender Durchschnittsfilter (Gl. 15-3) 27 FÜR I 51 ZU ACC ACC XI5 - XI-51 29 YI ACC 3 NEXT I 31 32 END TABELLE 15-2Das Wissenschaftler und Ingenieure Leitfaden zur digitalen Signalverarbeitung Von Steven W. Smith, Ph. D. Ein enormer Vorteil des gleitenden Durchschnittsfilters ist, dass er mit einem sehr schnell umgesetzten Algorithmus implementiert werden kann. Um diesen Algorithmus zu verstehen, stellen Sie sich vor, ein Eingangssignal x durch einen siebenpunkt gleitenden Durchschnittsfilter zu führen, um ein Ausgangssignal y zu bilden. Schauen wir nun an, wie zwei benachbarte Ausgangspunkte y 50 und y 51 berechnet werden: Diese sind für y 50 und für y 51 genau die gleichen Berechnungspunkte x 48 bis x 53 addiert. Ist y 50 bereits berechnet worden Ist der effizienteste Weg zur Berechnung von y 51: Sobald y 51 mit y 50 gefunden worden ist, dann kann y 52 aus der Probe y 51 berechnet werden, und so weiter. Nachdem der erste Punkt in y berechnet wurde, 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 den eingegebenen und vorher berechneten Punkten aus dem Ausgang. Dies wird als rekursive Gleichung bezeichnet, was bedeutet, dass das Ergebnis einer Berechnung in zukünftigen Berechnungen verwendet wird. (Der Begriff rekursiv hat auch andere Bedeutungen, vor allem in der Informatik). Kapitel 19 diskutiert eine Vielzahl von rekursiven Filtern im Detail. Seien Sie sich bewusst, dass der gleitende durchschnittliche rekursive Filter sehr unterschiedlich ist von typischen rekursiven Filtern. Insbesondere haben die meisten rekursiven Filter eine unendlich lange Impulsantwort (IIR), die aus Sinusoiden und Exponentialen besteht. Die Impulsantwort des gleitenden Durchschnitts ist ein Rechteckimpuls (endliche Impulsantwort oder FIR). Dieser Algorithmus ist aus verschiedenen Gründen schneller als andere digitale Filter. Zuerst gibt es nur zwei Berechnungen pro Punkt, unabhängig von der Länge des Filterkerns. Zweitens sind Addition und Subtraktion die einzigen mathematischen Operationen erforderlich, während die meisten digitalen Filter eine zeitaufwändige Multiplikation benötigen. Drittens ist das Indexierungsschema sehr einfach. Jeder Index in Gl. 15-3 wird durch Addition oder Subtraktion von ganzzahligen Konstanten gefunden, die berechnet werden können, bevor die Filterung beginnt (d. h. p und q). Weiterhin kann der gesamte Algorithmus mit ganzzahliger Darstellung durchgeführt werden. Abhängig von der verwendeten Hardware können ganze Zahlen mehr als eine Größenordnung schneller als Gleitkomma sein. Überraschenderweise arbeitet die Integer-Darstellung besser als der Gleitpunkt mit diesem Algorithmus, zusätzlich zu schneller. Der Rundungsfehler von Gleitkomma-Arithmetik kann zu unerwarteten Ergebnissen führen, wenn man nicht vorsichtig ist. Stellen Sie sich zum Beispiel ein 10.000-Sample-Signal vor, das mit dieser Methode gefiltert wird. Die letzte Probe im gefilterten Signal enthält den akkumulierten Fehler von 10.000 Additionen und 10.000 Subtraktionen. Dies erscheint im Ausgangssignal als Driftversatz. Integers haben dieses Problem nicht, weil es keinen Rundungsfehler in der Arithmetik gibt. Wenn Sie mit diesem Algorithmus den Gleitpunkt verwenden müssen, zeigt das Programm in Tabelle 15-2 an, wie man einen doppelten Präzisionsakkumulator benutzt, um diese Drift zu eliminieren. Jedoch einmal und eine Weile verwende ich einen gleitenden Durchschnitt zu Tiefpassfilterdaten. Ein gleitender Durchschnittsfilter ist sehr einfach und einfach in Echtzeit zu implementieren. Wenn man sich entscheidet, fünf Datenpunkte zusammen zu messen (M 5), so werden die gefilterten Daten mit yi (xi-2 xi-1 xi xi1 xi2) 5 berechnet. Sie können diese rekursiv umsetzen, so dass jede nachfolgende Berechnung nur zwei Arithmetik erfordert Operationen unabhängig von der Größe von M. Zum Beispiel (unter Annahme von 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 bis vor kurzem wusste, ist, wie man den Frequenzgang von gleitenden durchschnittlichen Filtern berechnet Der Frequenzgang Hf kann durch sin (pifM) (M sin (pif)) berechnet werden, wobei M die Länge des gleitenden Durchschnitts ist und f im Bereich von 0 bis 0,5 liegt (wobei 0,5 die Hälfte der Abtastfrequenz darstellt). Unten ist ein Diagramm der Frequenzreaktionen für Längen von 4, 8 und 16 (mit einer Samplefrequenz von 500 Hz). Beachten Sie, dass die Filter schöne, glatte Übergangsbänder haben (der Beginn der Kurven von einer Amplitude von 1 bis 0) und schreckliche Stoppbänder (die wiederholten Wellen). Dies macht einen gleitenden Durchschnitt zu einem außerordentlich guten Glättungsfilter (die Aktion im Zeitbereich), aber ein außergewöhnlich schlechtes Tiefpassfilter (die Aktion im Frequenzbereich) 8221 (Der Wissenschaftler und Ingenieur8217s Leitfaden zur digitalen Signalverarbeitung, Kapitel 15) . Im Folgenden finden Sie Beispiele dafür, wie gleitende durchschnittliche Filter zufälliges Rauschen aus einem rechteckigen Puls entfernen. Sie können sehen, dass der rechteckige Puls durch das allmähliche Übergangsband relativ steil gehalten wird, während das Rauschen entfernt wird. Wenn du 60 Hz Rauschen entfernen willst, dann wird eine Länge von 8 gut funktionieren (die grüne Linie im ersten Graphen). Sie können das Stoppband verbessern, bei dem teuren eines steileren Übergangsbandes, indem Sie den Filter mehrmals anwenden. Unten ist ein Diagramm des Frequenzganges eines gleitenden Mittels der Länge 8, nachdem er ein, zwei oder viermal gefiltert wurde. Diese wurden durch Multiplikation der Frequenzantwortfunktion für jeden Durchgang (Dual-Pass Hf Hf) berechnet. Wenn du 60-Hz-Rauschen mit einem Dual-Pass-Filter entfernen willst, kannst du mit einem Single-Pass-Filter eine Länge von 7 statt 8 verwenden.
No comments:
Post a Comment