Thursday, 27 April 2017

Exponential Moving Average Iir

Der exponentielle gleitende Durchschnitt ist ein Typ des IIR-Filters, der einfach in C implementiert werden kann und minimale Ressourcen verwendet. Anders als ein einfacher gleitender Durchschnitt erfordert es keinen RAM-Puffer, um vorherige Abtastwerte zu speichern. Es muss nur einen Wert (der vorherige Durchschnitt) zu speichern. Ein exponentieller gleitender Durchschnitt wird als die folgende Gleichung ausgedrückt: avgn (in alpha) avgn-1 (1-alpha). Die Implementierung dieser Gleichung mit Floating-Point-Mathematik ist einfach, aber mit festen Punkt-Variablen ist ein wenig heikel. Das Code-Snippet verwendet hier 32-Bit-signierte Ganzzahlen für die Durchschnitts - und Eingabewerte. Zwischenwerte müssen 64-Bit-Mathematik verwenden, um Überlauffehler zu vermeiden. Alpha-Werte nahe bei Null repräsentieren eine starke Mittelung, während ein Alpha-Wert von einem keine Mittelung aufweist. Auf der Zeile, wo temp0 berechnet wird, glaube ich, das Ende der Zeile sollte lesen (65535 - alpha) Ansonsten würde ein Alpha von 1 unsachgemäß enthalten die bisherige Durchschnitt sowie die neue value. Exponential Filter Diese Seite beschreibt exponentielle Filterung, die einfachste Und der beliebteste Filter. Dies ist Teil des Abschnitts Filterung, der Teil eines Leitfadens zur Fehlererkennung und - diagnose ist. Übersicht, Zeitkonstante und Analogäquivalent Der einfachste Filter ist der Exponentialfilter. Es hat nur einen Abstimmungsparameter (außer dem Probenintervall). Es erfordert die Speicherung nur einer Variablen - der vorherigen Ausgabe. Es ist ein IIR (autoregressive) Filter - die Auswirkungen einer Eingangsveränderung Zerfall exponentiell, bis die Grenzen der Displays oder Computer Arithmetik verstecken. In verschiedenen Disziplinen wird die Verwendung dieses Filters auch als 8220exponentielle Glättung8221 bezeichnet. In einigen Disziplinen wie der Investitionsanalyse wird der exponentielle Filter als 8220Exponential Weighted Moving Average8221 (EWMA) oder nur 8220Exponential Moving Average8221 (EMA) bezeichnet. Dies missbräuchlich die traditionelle ARMA 8220moving average8221 Terminologie der Zeitreihenanalyse, da es keinen Eingabehistorie gibt, der verwendet wird - nur die aktuelle Eingabe. Es ist das diskrete Zeit-Äquivalent der 8220 erster Ordnung lag8221, die üblicherweise in der analogen Modellierung von kontinuierlichen Zeitsteuerungssystemen verwendet wird. In elektrischen Schaltkreisen ist ein RC-Filter (Filter mit einem Widerstand und einem Kondensator) eine Verzögerung erster Ordnung. Bei der Betonung der Analogie zu analogen Schaltungen, ist der einzige Tuning-Parameter die 8220time constant8221, in der Regel als klein geschriebenen griechischen Buchstaben Tau () geschrieben. Tatsächlich entsprechen die Werte bei den diskreten Abtastzeiten genau der äquivalenten kontinuierlichen Zeitverzögerung mit der gleichen Zeitkonstante. Die Beziehung zwischen der digitalen Implementierung und der Zeitkonstante wird in den folgenden Gleichungen gezeigt. Exponentielle Filtergleichungen und Initialisierung Das Exponentialfilter ist eine gewichtete Kombination der vorherigen Schätzung (Ausgabe) mit den neuesten Eingangsdaten, wobei die Summe der Gewichtungen gleich 1 ist, so dass die Ausgabe mit dem Eingang im stationären Zustand übereinstimmt. Nach der bereits eingeführten Filternotation ist y (k) ay (k - 1) (1 - a) x (k) wobei x (k) die Roheingabe zum Zeitschritt ky (k) die gefilterte Ausgabe zum Zeitschritt ka ist Ist eine Konstante zwischen 0 und 1, normalerweise zwischen 0,8 und 0,99. (A-1) oder a wird manchmal die 8220-Glättungskonstante8221 genannt. Für Systeme mit einem festen Zeitschritt T zwischen Abtastwerten wird die Konstante 8220a8221 nur dann berechnet und gespeichert, wenn der Anwendungsentwickler einen neuen Wert der gewünschten Zeitkonstante angibt. Bei Systemen mit Datenabtastung in unregelmäßigen Abständen muss bei jedem Zeitschritt die exponentielle Funktion verwendet werden, wobei T die Zeit seit dem vorhergehenden Abtastwert ist. Der Filterausgang wird normalerweise initialisiert, um dem ersten Eingang zu entsprechen. Wenn die Zeitkonstante 0 nähert, geht a auf Null, so dass keine Filterung 8211 der Ausgang dem neuen Eingang entspricht. Da die Zeitkonstante sehr groß wird, werden Ansätze 1, so dass neue Eingabe fast ignoriert wird 8211 sehr starkes Filtern. Die obige Filtergleichung kann in folgendes Vorhersagekorrektor-Äquivalent umgeordnet werden: Diese Form macht deutlich, dass die variable Schätzung (Ausgabe des Filters) unverändert von der vorherigen Schätzung y (k-1) plus einem Korrekturterm basiert wird Auf die unerwartete 8220innovation8221 - die Differenz zwischen dem neuen Eingang x (k) und der Vorhersage y (k-1). Diese Form ist auch das Ergebnis der Ableitung des Exponentialfilters als einfacher Spezialfall eines Kalman-Filters. Die die optimale Lösung für ein Schätzproblem mit einem bestimmten Satz von Annahmen ist. Schrittantwort Eine Möglichkeit, den Betrieb des Exponentialfilters zu visualisieren, besteht darin, sein Ansprechen über die Zeit auf eine Stufeneingabe aufzuzeichnen. Das heißt, beginnend mit dem Filtereingang und dem Ausgang bei 0 wird der Eingangswert plötzlich auf 1 geändert. Die resultierenden Werte sind nachstehend aufgetragen: In dem obigen Diagramm wird die Zeit durch die Filterzeitkonstante tau geteilt, so daß man leichter prognostizieren kann Die Ergebnisse für einen beliebigen Zeitraum, für jeden Wert der Filterzeitkonstante. Nach einer Zeit gleich der Zeitkonstante steigt der Filterausgang auf 63,21 seines Endwertes an. Nach einer Zeit gleich 2 Zeitkonstanten steigt der Wert auf 86,47 seines Endwertes an. Die Ausgänge nach Zeiten gleich 3,4 und 5 Zeitkonstanten sind jeweils 95,02, 98,17 bzw. 99,33 des Endwerts. Da der Filter linear ist, bedeutet dies, dass diese Prozentsätze für jede Größenordnung der Schrittänderung verwendet werden können, nicht nur für den hier verwendeten Wert 1. Obwohl die Stufenantwort in der Theorie aus praktischer Sicht eine unendliche Zeit in Anspruch nimmt, sollte man an den exponentiellen Filter 98 bis 99 8220done8221 denken, der nach einer Zeit gleich 4 bis 5 Filterzeitkonstanten reagiert. Variationen des Exponentialfilters Es gibt eine Variation des exponentiellen Filters mit dem Namen 8220nonlinearem exponentiellem Filter8221 Weber, 1980. Es soll starkes Rauschen innerhalb einer bestimmten 8220typical8221 Amplitude filtern, aber dann schneller auf größere Änderungen reagieren. Copyright 2010 - 2013, Greg Stanley Teilen Sie diese Seite: Ein exponentieller Moving Average IIR Filter Die Filterung von Messgrößen eingebettete Mikrocontroller-basierte Schaltungen wird benötigt, um den Mittelwert der Signale zu verfolgen und ihre Variabilität zu reduzieren. Da sich die Signale in ihrem Durchschnittswert über die Zeit ändern, muß das Filter ein Mittel haben, um alte Messungen zu verwerfen, während neue Proben aufgenommen werden. Das exponentiell gleitende, durchschnittliche unendliche Impulsantwort-Filter (IIR-Filter) ist seit vielen Jahrzehnten gut verstanden und wird weitgehend in der statistischen Analyse verwendet. Sie liefert ein rechnerisch einfaches Mittel zur Bestimmung des Mittelwertes einer Variablen, wenn das zugrunde liegende Modell der Variablen unbekannt ist. Wenn v n die zu filternde Variable ist, dann ist ein n-ter Schätzer für den Mittelwert: wobei a ein Gewichtskoeffizient ist, dessen Wert den Glättungsbetrag bestimmt. Je näher a auf 0 gesetzt ist, desto größer ist die Glättung. In einigen Fällen erzeugt der Algorithmus in dieser Form Zwischenergebnisse, die groß werden können. Um dies mit einer endlichen Präzisions-Integer-Arithmetik umzusetzen, wird es in eine etwas andere Form umgeformt, in der Zwischenergebnisse durch einen bekannten Wert begrenzt werden. Der Gewichtskoeffizient wird als 1/1 / c dargestellt. Wobei c eine Potenz von 2 ist. Die Leistung k kann erhöht werden, um die Glättung zu erhöhen, während die Beschränkung auf eine Potenz von 2 ermöglicht, daß Multiplikationen und Teilungen unter Verwendung von sehr schnellen Rechts - und Linksverschiebungsoperationen in einem Mikroprozessor implementiert werden. Die Größe cv av (n) wird verfolgt, um die Präzision aufrechtzuerhalten: Sind beispielsweise die Abtastwerte 8 Bit-Größen (wie in vielen der Algorithmen, die für die hier beschriebenen SMPS-Schaltungen beschrieben sind) und k als 8 gewählt, dann ist die Größe Cv av (n) kann als 16-Bit-Wert ohne Verlust von Information dargestellt werden (genau: 8k Bits, siehe unten). Sobald dies bestimmt ist, wird die Größe v av (n) durch eine einfache Rechtsverschiebung um k Stellen erhalten. An diesem Punkt gibt es einen Informationsverlust von weniger als 1 lsb Grße, der in die Unsicherheiten von v n absorbiert werden kann (man beachte jedoch, dass es Korrelationen in dieser verlorenen Information gibt, die systematische Fehler verursachen können). Unter der Annahme, daß die Variablen vi statistisch unabhängig sind, zeigt die Varianzanalyse, daß sie um einen Faktor 1 / (2c) reduziert ist. Für Schrittänderungen in v n ist die Zeitkonstante c Berechnungsintervalle. Das Verfolgen des Mittelwerts wird weniger genau, wenn die Zeitkonstante zunimmt, um mit der niedrigsten Frequenz im zugrunde liegenden Signalmodell vergleichbar zu werden. Obergrenze für den Mittelwert Der Filter beginnt mit v av (0) 0. Alle Messungen v n liegen zwischen 0 und kleiner als B (wobei B in unseren Beispielen normalerweise 256 beträgt). So arbeitet man am Anfang der Sequenz (die in der Praxis immer endlich ist), also nur B. Also ist der Maximalwert des verstärkten Durchschnitts cv av (n) cB, der im obigen Beispiel innerhalb einer 16-Bit-Zahl liegt. In dem Fall, in dem die Proben unterschiedliche statistische Wichtigkeit haben, das heißt, einige haben eine größere Fehlerwahrscheinlichkeit als andere, können Gewichte angewendet werden, um eine allgemeinere Form des Filters zu erzeugen. Diese Gewichte würden so gewählt, daß sie eine umgekehrte Beziehung zur Fehlerwahrscheinlichkeit haben. Wenn wn die anzuwendenden Gewichte sind, kann das folgende Filter verwendet werden: Die zweite Gleichung erzeugt eine IIR-Schätzung des Durchschnitts der Gewichte, die in der ersten Gleichung verwendet wird. Dies kann gezeigt werden, um eine ungehinderte Schätzung des Mittelwerts von v n mit einem Vergessensfaktor von (1-a) zu erzeugen. Wie zuvor wurden die modifizierten Mittelwerte cw av (n) und cw av (n) v av (n), die auf der linken Seite angegeben sind, verfolgt und die gewünschten Mengen durch einfache Teilung extrahiert.


No comments:

Post a Comment