Thursday, October 27, 2016

Moving Average Digitale Signalverarbeitung

Die Wissenschaftler und Ingenieure Leitfaden für digitale Signalverarbeitung Von Steven W. Smith, Ph. D. Wie der Name andeutet, arbeitet das gleitende Mittelfilter durch Mittelung einer Anzahl von Punkten von dem Eingangssignal, um jeden Punkt im Ausgangssignal zu erzeugen. In Gleichung ist dies geschrieben: Wo ist das Eingangssignal, ist das Ausgangssignal und M ist die Anzahl der Punkte im Mittelwert. Beispielsweise ist bei einem 5-Punkt-Gleitmittelfilter Punkt 80 im Ausgangssignal gegeben durch: Alternativ kann die Gruppe von Punkten aus dem Eingangssignal symmetrisch um den Ausgangspunkt gewählt werden: Dies entspricht der Änderung der Summation in Gl . 15-1 von: j 0 bis M -1, bis: j - (M -1) / 2 bis (M -1) / 2. Zum Beispiel wird in einem 10-Punkt-gleitenden Durchschnittsfilter der Index j. Kann von 0 bis 11 (einseitige Mittelung) oder -5 bis 5 (symmetrische Mittelung) laufen. Symmetrische Mittelung erfordert, dass M eine ungerade Zahl ist. Die Programmierung ist etwas einfacher mit den Punkten auf nur einer Seite, jedoch ergibt sich eine relative Verschiebung zwischen den Eingangs - und Ausgangssignalen. Sie sollten erkennen, dass das gleitende Durchschnittsfilter eine Faltung mit einem sehr einfachen Filterkern ist. Zum Beispiel hat ein 5-Punkt-Filter den Filterkern: 82300, 0, 1/5, 1/5, 1/5, 1/5, 1/5, 0, 08230. Das heißt, das gleitende Mittelfilter ist eine Faltung Des Eingangssignals mit einem Rechteckimpuls mit einer Fläche von Eins. Tabelle 15-1 zeigt ein Programm zur Implementierung des gleitenden Mittelfilters. Signalverarbeitung / Digitale Filter Digitale Filter sind durch essenziell abgetastete Systeme. Die Eingangs - und Ausgangssignale werden durch Abtastwerte mit gleichem Zeitabstand dargestellt. Finite Implulse Response (FIR) - Filter sind gekennzeichnet durch ein Zeitverhalten, das nur von einer gegebenen Anzahl der letzten Abtastwerte des Eingangssignals abhängt. Anders ausgedrückt: Sobald das Eingangssignal auf Null abgesunken ist, wird der Filterausgang nach einer bestimmten Anzahl von Abtastperioden das gleiche tun. Der Ausgang y (k) ist durch eine Linearkombination der letzten Eingangsabtastwerte x (k i) gegeben. Die Koeffizienten b (i) geben das Gewicht für die Kombination an. Sie entsprechen auch den Koeffizienten des Zählers der Z-Domain-Filtertransferfunktion. Die folgende Abbildung zeigt ein FIR-Filter der Ordnung N 1: Bei linearen Phasenfiltern sind die Koeffizientenwerte um das mittlere symmetrisch und die Verzögerungsleitung kann um diesen Mittelpunkt zurückgeklappt werden, um die Anzahl der Multiplikationen zu reduzieren. Die Übertragungsfunktion der FIR-Filter pocesses nur einen Zähler. Dies entspricht einem Nullfilter. FIR-Filter erfordern typischerweise hohe Ordnungen in der Größenordnung von einigen Hunderten. Somit benötigt die Wahl dieser Art von Filtern eine große Menge an Hardware oder CPU. Trotzdem ist ein Grund, eine FIR-Filter-Implementierung zu wählen, die Fähigkeit, eine lineare Phasenreaktion zu erreichen, die in manchen Fällen eine Anforderung sein kann. Trotzdem hat der Fiter-Designer die Möglichkeit, IIR-Filter mit guter Phasenlinearität im Durchlaßband wie Bessel-Filter zu wählen. Oder ein Allpassfilter zu entwerfen, um die Phasenreaktion eines Standard-IIR-Filters zu korrigieren. Moving Average Filter (MA) Edit Moving Average (MA) Modelle sind Prozessmodelle in der Form: MA Prozesse ist eine alternative Darstellung von FIR Filtern. Durchschnittliche Filter Edit Ein Filter, der den Durchschnitt der N letzten Abtastwerte eines Signals berechnet. Es ist die einfachste Form eines FIR-Filters, wobei alle Koeffizienten gleich sind. Die Übertragungsfunktion eines Durchschnittsfilters ist gegeben durch: Die Übertragungsfunktion eines Durchschnittsfilters weist N gleich beabstandete Nullen entlang der Frequenzachse auf. Die Null bei DC wird jedoch durch den Pol des Filters maskiert. Daher gibt es eine größere Keule, die für das Filterdurchlassband verantwortlich ist. Cascaded Integrator-Comb (CIC) Filter Edit Ein Cascaded Integrator-Comb Filter (CIC) ist eine spezielle Technik zur Realisierung von mittleren Filtern in Serie. Die Serienplatzierung der mittleren Filter verstärkt den ersten Lappen bei DC im Vergleich zu allen anderen Lappen. Ein CIC-Filter implementiert die Übertragungsfunktion von N Durchschnittsfiltern, die jeweils den Durchschnitt von R M Abtastwerten berechnen. Seine Übertragungsfunktion ist folglich gegeben durch: CIC-Filter werden verwendet, um die Anzahl der Abtastwerte eines Signals um einen Faktor R zu dezimieren oder, anders ausgedrückt, ein Signal mit einer niedrigeren Frequenz erneut abzutasten, wobei R 1 Abtastwerte aus R weggeworfen werden. Der Faktor M gibt an, wie viel von dem ersten Lappen durch das Signal verwendet wird. Die Anzahl der mittleren Filterstufen, N. Wie gut andere Frequenzbänder gedämpft werden, auf Kosten einer weniger flachen Übertragungsfunktion um DC herum. Die CIC-Struktur ermöglicht es, das gesamte System mit nur Addierern und Registern zu implementieren, wobei keine Multiplikatoren verwendet werden, die in Bezug auf Hardware gierig sind. Eine Abwärtsabtastung mit dem Faktor R erlaubt die Erhöhung der Signalauflösung durch log 2 (R) (R) Bits. Kanonische Filter Bearbeiten Kanonische Filter implementieren eine Filterübertragungsfunktion mit einer Anzahl von Verzögerungselementen gleich der Filterreihenfolge, einem Multiplikator pro Zählerkoeffizienten, einem Multiplikator pro Nennerkoeffizienten und einer Reihe von Addierern. Ähnlich wie aktive Filter kanonische Strukturen zeigte sich diese Art von Schaltungen sehr empfindlich gegenüber Elementwerten: eine kleine Änderung in Koeffizienten hatte einen großen Einfluss auf die Übertragungsfunktion. Auch hier hat sich das Design von aktiven Filtern von kanonischen Filtern zu anderen Strukturen wie Ketten zweiter Ordnung oder Leapfrog-Filtern verschoben. Kette der Sektionen der zweiten Ordnung Edit Eine Sektion zweiter Ordnung. Oft als Biquad bezeichnet. Implementiert eine Übertragungsfunktion zweiter Ordnung. Die Übertragungsfunktion eines Filters kann in ein Produkt von Übertragungsfunktionen aufgeteilt werden, die jeweils einem Paar von Pole und möglicherweise einem Paar von Nullen zugeordnet sind. Wenn die Übertragungsfunktionen ordnungsgemäß ungerade sind, muss ein erster Ordnungsteil zur Kette hinzugefügt werden. Dieser Abschnitt ist dem realen Pol und dem realen Nullpunkt zugeordnet, falls einer vorhanden ist. Direct-Form 1 Direct-Form 2 Direct-Form 1 Transponierte Direct-Form 2 transponiert Das von der folgenden Abbildung transponierte Direct-Formular 2 ist besonders interessant in Bezug auf die benötigte Hardware sowie die Signal - und Koeffizienten-Quantisierung. Digitale Leapfrog-Filter Filterstruktur bearbeiten Digitale Leapfrog-Filter basieren auf der Simulation von analogen aktiven Leapfrog-Filtern. Der Anreiz für diese Wahl ist, von den ausgezeichneten Passband-Empfindlichkeitseigenschaften der ursprünglichen Leiter-Schaltung zu erben. Das folgende 4. Ordnung allpolige Tiefpass-Leapfrogfilter kann als digitale Schaltung implementiert werden, indem die analogen Integratoren durch Akkumulator ersetzt werden. Das Ersetzen der Analogintegratoren durch Akkumulatoren entspricht der Vereinfachung der Z-Umwandlung zu z 1 s T. Die die beiden ersten Terme der Taylorreihe von z e x p (s T) sind. Diese Näherung ist gut genug für Filter, bei denen die Abtastfrequenz viel höher ist als die Signalbandbreite. Transferfunktion Edit Die Zustandsraumdarstellung des vorangehenden Filters kann wie folgt geschrieben werden: Aus dieser Gleichung kann man die A, B, C, D Matrizen schreiben als: Aus dieser Darstellung lassen sich Signalverarbeitungswerkzeuge wie Octave oder Matlab grafisch darstellen Den Frequenzgang des Filters oder seine Nullen und Pole zu untersuchen. In dem digitalen Leapfrog-Filter stellen die relativen Werte der Koeffizienten die Form der Übertragungsfunktion (Butterworth, Chebyshev.) Ein, während ihre Amplituden die Grenzfrequenz einstellen. Das Dividieren aller Koeffizienten um einen Faktor von zwei verschiebt die Cutoff-Frequenz um eine Oktave (auch einen Faktor von zwei) nach unten. Ein spezieller Fall ist das Buterworth-Filter 3. Ordnung, das Zeitkonstanten mit relativen Werten von 1, 1/2 und 1 aufweist. Dadurch kann dieses Filter in Hardware ohne Multiplikator implementiert werden, jedoch mit Verschiebungen. Autoregressive Filter (AR) Edit Autoregressive (AR) Modelle sind Prozessmodelle in der Form: Wo u (n) die Ausgabe des Modells ist, ist x (n) die Eingabe des Modells und u (n - m) sind vorherige Abtastwerte des Modellausgangswertes. Diese Filter werden autoregressiv genannt, da die Ausgangswerte auf der Grundlage von Regressionen der vorherigen Ausgabewerte berechnet werden. AR-Prozesse können durch ein Allpol-Filter dargestellt werden. ARMA Filter Edit Autoregressive Moving-Average Filter (ARMA) sind Kombinationen von AR - und MA-Filtern. Der Ausgang des Filters ist als Linearkombination sowohl der gewichteten Eingangs - als auch der gewichteten Ausgangssamples gegeben: ARMA-Prozesse können als digitales IIR-Filter mit beiden Pole und Nullen betrachtet werden. AR-Filter werden in vielen Fällen bevorzugt, da sie mit den Yule-Walker-Gleichungen analysiert werden können. MA - und ARMA-Prozesse hingegen können durch komplizierte nichtlineare Gleichungen analysiert werden, die schwer zu studieren und zu modellieren sind. Wenn wir einen AR-Prozeß mit Abgriff-Gewichtungskoeffizienten a (einen Vektor von a (n), a (n - 1).) Einen Eingang von x (n) haben. Und eine Ausgabe von y (n). Können wir die yule-walker Gleichungen verwenden. Wir sagen, dass x 2 die Varianz des Eingangssignals ist. Wir behandeln das Eingangsdatensignal als Zufallssignal, auch wenn es ein deterministisches Signal ist, weil wir nicht wissen, was der Wert ist, bis wir ihn erhalten. Wir können die Yule-Walker-Gleichungen folgendermaßen ausdrücken: wobei R die Kreuzkorrelationsmatrix der Prozeßausgabe ist und r die Autokorrelationsmatrix der Prozeßausgabe ist: Varianzbearbeitung Wir können zeigen: Wir können die Eingangssignalabweichung als: , Expandiert und ersetzt r (0). Können wir die Ausgangsvarianz des Prozesses auf die Eingangsvarianz beziehen: Dokumentation Dieses Beispiel zeigt, wie man gleitende Durchschnittsfilter und Resampling verwendet, um die Auswirkungen von periodischen Komponenten der Tageszeit auf die stündliche Temperaturablesung zu isolieren und unerwünschte Leitungsgeräusche zu entfernen Aus einer offenen Spannungsmessung. Das Beispiel zeigt auch, wie die Pegel eines Taktsignals zu glätten sind, während die Kanten durch Verwendung eines Medianfilters bewahrt werden. Das Beispiel zeigt auch, wie ein Hampel-Filter verwendet wird, um große Ausreißer zu entfernen. Motivation Glättung ist, wie wir wichtige Muster in unseren Daten zu entdecken, während Sie Dinge, die unwichtig sind (d. H. Rauschen). Wir verwenden Filter, um diese Glättung durchzuführen. Das Ziel der Glättung ist es, langsame Änderungen im Wert zu produzieren, so dass seine einfacher zu sehen, Trends in unseren Daten. Manchmal, wenn Sie Eingangsdaten untersuchen, können Sie die Daten glatt machen, um einen Trend im Signal zu sehen. In unserem Beispiel haben wir eine Reihe von Temperaturmessungen in Celsius genommen jede Stunde am Logan Flughafen für den gesamten Monat Januar 2011. Beachten Sie, dass wir visuell sehen können, die Wirkung, die die Tageszeit auf die Temperaturwerte hat. Wenn Sie sich nur für die tägliche Temperaturschwankung im Laufe des Monats interessieren, tragen die stündlichen Fluktuationen nur zu Lärm bei, was die täglichen Variationen schwer unterscheiden kann. Um den Effekt der Tageszeit zu entfernen, möchten wir nun unsere Daten mit einem gleitenden Mittelfilter glätten. Ein Moving Average Filter In seiner einfachsten Form nimmt ein gleitender Durchschnittsfilter der Länge N den Durchschnitt jeder N aufeinanderfolgenden Samples der Wellenform an. Um einen gleitenden Mittelwertfilter auf jeden Datenpunkt anzuwenden, konstruieren wir unsere Koeffizienten unseres Filters so, dass jeder Punkt gleich gewichtet wird und 1/24 zum Gesamtdurchschnitt beiträgt. Dies gibt uns die durchschnittliche Temperatur über jeden Zeitraum von 24 Stunden. Filterverzögerung Beachten Sie, dass der gefilterte Ausgang um etwa zwölf Stunden verzögert wird. Dies ist auf die Tatsache zurückzuführen, dass unser gleitender Durchschnittsfilter eine Verzögerung hat. Jedes symmetrische Filter der Länge N hat eine Verzögerung von (N-1) / 2 Abtastungen. Wir können diese Verzögerung manuell berücksichtigen. Extrahieren von Durchschnittsdifferenzen Alternativ können wir auch das gleitende Mittelfilter verwenden, um eine bessere Schätzung zu erhalten, wie die Tageszeit die Gesamttemperatur beeinflusst. Dazu werden zuerst die geglätteten Daten von den stündlichen Temperaturmessungen subtrahiert. Dann segmentieren Sie die differenzierten Daten in Tage und nehmen Sie den Durchschnitt über alle 31 Tage im Monat. Extrahieren von Peak Envelope Manchmal möchten wir auch eine glatt variierende Schätzung haben, wie sich die Höhen und Tiefen unseres Temperatursignals täglich ändern. Um dies zu erreichen, können wir die Hüllkurvenfunktion verwenden, um extreme Höhen und Tiefen zu verbinden, die über eine Untermenge der 24-Stundenperiode erkannt werden. In diesem Beispiel stellen wir sicher, dass es mindestens 16 Stunden zwischen jedem extrem hohen und extrem niedrigen Niveau gibt. Wir können auch ein Gefühl dafür, wie die Höhen und Tiefen sind Trends, indem sie den Durchschnitt zwischen den beiden Extremen. Weighted Moving Average Filter Andere Arten von Moving Average Filtern gewichten nicht jede Probe gleichermaßen. Ein weiterer gemeinsamer Filter folgt der Binomialexpansion von (1 / 2,1 / 2) n Dieser Filtertyp approximiert eine Normalkurve für große Werte von n. Es ist nützlich zum Herausfiltern von Hochfrequenzrauschen für kleine n. Um die Koeffizienten für das Binomial-Filter zu finden, falten Sie 1/2 1/2 mit sich selbst und konvergieren dann iterativ den Ausgang mit 1/2 1/2 a vorgeschriebener Anzahl von Malen. Verwenden Sie in diesem Beispiel fünf Gesamt-Iterationen. Ein anderer Filter, der dem Gaußschen Expansionsfilter ähnlich ist, ist der exponentiell gleitende Durchschnittsfilter. Diese Art des gewichteten gleitenden Durchschnittsfilters ist einfach zu konstruieren und erfordert keine große Fenstergröße. Sie passen einen exponentiell gewichteten gleitenden Durchschnittsfilter durch einen Alpha-Parameter zwischen null und eins an. Ein höherer Wert von alpha wird weniger Glättung haben. Untersuche die Messwerte für einen Tag. Wählen Sie Ihr CountryMoving Average Filter (MA Filter) Loading. Das gleitende Mittelfilter ist ein einfaches Tiefpassfilter (Finite Impulse Response), das üblicherweise zum Glätten eines Arrays von abgetasteten Daten / Signalen verwendet wird. Es benötigt M Abtastwerte von Eingang zu einem Zeitpunkt und nimmt den Durchschnitt dieser M-Abtastungen und erzeugt einen einzigen Ausgangspunkt. Es ist eine sehr einfache LPF (Low Pass Filter) Struktur, die praktisch für Wissenschaftler und Ingenieure, um unerwünschte laute Komponente aus den beabsichtigten Daten zu filtern kommt. Mit zunehmender Filterlänge (Parameter M) nimmt die Glätte des Ausgangs zu, während die scharfen Übergänge in den Daten zunehmend stumpf werden. Dies impliziert, dass dieses Filter eine ausgezeichnete Zeitbereichsantwort, aber einen schlechten Frequenzgang aufweist. Der MA-Filter erfüllt drei wichtige Funktionen: 1) Es benötigt M Eingangspunkte, berechnet den Durchschnitt dieser M-Punkte und erzeugt einen einzelnen Ausgangspunkt 2) Aufgrund der Berechnungen / Berechnungen. Führt das Filter eine bestimmte Verzögerung ein 3) Das Filter wirkt als ein Tiefpaßfilter (mit einer schlechten Frequenzbereichsantwort und einer guten Zeitbereichsantwort). Matlab-Code: Der folgende Matlab-Code simuliert die Zeitbereichsantwort eines M-Point Moving Average Filters und zeigt auch den Frequenzgang für verschiedene Filterlängen. Time Domain Response: Auf dem ersten Plot haben wir die Eingabe, die in den gleitenden Durchschnitt Filter geht. Der Eingang ist laut und unser Ziel ist es, den Lärm zu reduzieren. Die nächste Abbildung ist die Ausgangsantwort eines 3-Punkt Moving Average Filters. Es kann aus der Figur abgeleitet werden, dass der Filter mit 3-Punkt-Moving-Average bei der Filterung des Rauschens nicht viel getan hat. Wir erhöhen die Filterabgriffe auf 51 Punkte und wir können sehen, dass sich das Rauschen im Ausgang stark reduziert hat, was in der nächsten Abbildung dargestellt ist. Wir erhöhen die Anzapfungen weiter auf 101 und 501, und wir können beobachten, dass auch wenn das Rauschen fast Null ist, die Übergänge drastisch abgebaut werden (beobachten Sie die Steilheit auf beiden Seiten des Signals und vergleichen Sie sie mit dem idealen Ziegelwandübergang Unser Eingang). Frequenzgang: Aus dem Frequenzgang kann behauptet werden, dass der Roll-off sehr langsam ist und die Stopbanddämpfung nicht gut ist. Bei dieser Stoppbanddämpfung kann klar sein, daß der gleitende mittlere Filter nicht ein Band von Frequenzen von einem anderen trennen kann. Wie wir wissen, führt eine gute Leistung im Zeitbereich zu einer schlechten Leistung im Frequenzbereich und umgekehrt. Kurz gesagt, ist der gleitende Durchschnitt ein außergewöhnlich guter Glättungsfilter (die Aktion im Zeitbereich), aber ein außergewöhnlich schlechtes Tiefpassfilter (die Aktion im Frequenzbereich) Externe Links: Empfohlene Bücher: Primäre SidebarI haben eine Reihe von Daten Und eine Messung an jedem dieser Daten. Id wie zu berechnen einen exponentiellen gleitenden Durchschnitt für jeden der Termine. Weiß jemand, wie dies zu tun Im neu zu python. Es scheint nicht, dass Durchschnittswerte in die Standard-Python-Bibliothek, die mich als ein wenig seltsam schlägt gebaut werden. Vielleicht Im nicht auf der Suche nach der richtigen Stelle. Also, angesichts der folgenden Code, wie könnte ich berechnen die bewegten gewichteten Durchschnitt der IQ-Punkte für Kalendertermine (theres vermutlich eine bessere Art und Weise, die Daten zu strukturieren, würde jeder Rat geschätzt werden) Ask Jan 28 09 at 18:01 My python is a Etwas rostig (jedermann kann fühlen frei, diesen Code zu redigieren, um Korrekturen vorzunehmen, wenn Ive die Syntax irgendwie verwirrte), aber hier geht. Diese Funktion bewegt sich von dem Ende der Liste an den Anfang rückwärts, wobei der exponentielle gleitende Durchschnitt für jeden Wert durch Rückwärtsarbeiten berechnet wird, bis der Gewichtungskoeffizient für ein Element kleiner als der gegebene Wert ist. Am Ende der Funktion kehrt es die Werte um, bevor die Liste zurückgegeben wird (so dass sie in der richtigen Reihenfolge für den Aufrufer liegen). (SEITE HINWEIS: wenn ich eine andere Sprache als Python verwendet, erstellen Id eine vollständige Größe leere Array zuerst und dann füllen sie rückwärts-Reihenfolge, so dass ich wouldnt haben, um es am Ende umzukehren. Aber ich glaube nicht, können Sie erklären Eine große leere Array in python. And in Python-Listen, Anhängen ist viel weniger teuer als vorangestellt, weshalb ich baute die Liste in umgekehrter Reihenfolge. Korrigieren Sie mich, wenn Im falsch.) Das Alpha-Argument ist der Zerfallsfaktor auf jeder Iteration. Zum Beispiel, wenn Sie ein Alpha von 0,5 verwendet haben, würde der heutige gleitende Durchschnittswert aus den folgenden gewichteten Werten bestehen: Natürlich, wenn Sie eine riesige Palette von Werten erhalten haben, werden die Werte von zehn oder fünfzehn Tagen nicht viel dazu beitragen Heute gewichteter Durchschnitt. Mit dem Argument epsilon können Sie einen Grenzwert festlegen, unterhalb dessen Sie nicht mehr auf alte Werte achten (da ihr Beitrag zum heutigen Wert unbedeutend ist). Youd rufen die Funktion so etwas wie folgt auf: Ich weiß nicht, Python, aber für die Mittelung Teil, meinst du, ein exponentiell verfallenden Tiefpass des Formulars, wo alpha dt / tau, dt der Zeitstep von Der Filter, tau die Zeitkonstante des Filters (die variable-timestep Form von diesem ist wie folgt, nur Clip dt / tau nicht mehr als 1,0) Wenn Sie etwas wie ein Datum filtern möchten, stellen Sie sicher, dass Sie in eine Gleitkommazahl wie von Sekunden seit dem 1. Januar 1970.


No comments:

Post a Comment