Sunday 5 November 2017

Exponential Moving Average Iir


Ein einfach zu bedienendes digitales Filter Der exponentielle gleitende Durchschnitt (EMA) ist ein Typ des unendlichen Impulsantwortfilters (IIR), der in vielen eingebetteten DSP-Anwendungen verwendet werden kann. Es benötigt nur wenig RAM und Rechenleistung. Was ist ein Filter Filter kommen sowohl in analogen und digitalen Formen und existieren, um bestimmte Frequenzen aus einem Signal zu entfernen. Ein übliches Analogfilter ist das unten gezeigte Tiefpass-RC-Filter. Analoge Filter zeichnen sich durch ihre Frequenzantwort aus, wie stark die Frequenzen gedämpft (Amplitudengang) und verschoben (Phasengang) sind. Der Frequenzgang kann unter Verwendung einer Laplace-Transformation analysiert werden, die eine Übertragungsfunktion in der S-Domäne definiert. Für die obige Schaltung ist die Übertragungsfunktion gegeben durch: Wenn R gleich 1 Kiloohm und C gleich einem Mikrofarad ist, ist die Betragsantwort unten gezeigt. Beachten Sie, dass die x-Achse logarithmisch ist (jede Markierung ist 10 Mal größer als die letzte). Die y-Achse ist in Dezibel (das ist eine logarithmische Funktion des Ausgangs). Die Grenzfrequenz für dieses Filter beträgt 1000 rads oder 160 Hz. Dies ist der Punkt, bei dem weniger als die Hälfte der Leistung bei einer gegebenen Frequenz vom Eingang zum Ausgang des Filters übertragen wird. Bei der Abtastung eines Signals mit einem Analog-Digital-Wandler (ADC) müssen analoge Filter in eingebetteten Ausführungen verwendet werden. Der ADC erfasst nur Frequenzen, die bis zur Hälfte der Abtastfrequenz liegen. Wenn beispielsweise der ADC 320 Abtastungen pro Sekunde erfasst, wird das Filter (mit einer Grenzfrequenz von 160 Hz) zwischen dem Signal und dem ADC-Eingang platziert, um ein Aliasing zu verhindern (was ein Phänomen ist, bei dem höhere Frequenzen in dem abgetasteten Signal auftreten Niedrigere Frequenzen). Digitale Filter Digitale Filter dämpfen Frequenzen in der Software anstatt analoge Komponenten. Ihre Implementierung beinhaltet das Abtasten der analogen Signale mit einem ADC, wobei dann ein Softwarealgorithmus angewendet wird. Zwei gemeinsame Designansätze für die digitale Filterung sind FIR-Filter und IIR-Filter. FIR Filter Die Finite Impulse Response (FIR) Filter verwenden eine endliche Anzahl von Samples, um den Ausgang zu erzeugen. Ein einfacher gleitender Durchschnitt ist ein Beispiel eines Tiefpass-FIR-Filters. Höhere Frequenzen werden abgeschwächt, da die Mittelung das Signal glättet. Der Filter ist endlich, weil die Ausgabe des Filters durch eine endliche Anzahl von Eingangsabtastwerten bestimmt wird. Als Beispiel addiert ein 12-Punkt-Gleit-Mittelfilter die 12 jüngsten Abtastwerte, dividiert dann durch 12. Die Ausgabe von IIR-Filtern wird durch (bis zu) einer unendlichen Anzahl von Eingangsabtastwerten bestimmt. IIR-Filter Infinite Impulse Response (IIR) - Filter sind eine Art von Digitalfiltern, bei denen der Ausgang theoretisch in jedem Fall durch einen Eingang beeinflusst wird. Der exponentielle gleitende Durchschnitt ist ein Beispiel eines Tiefpass-IIR-Filters. Exponential Moving Average Filter Ein exponentieller gleitender Durchschnitt (EMA) wendet exponentielle Gewichte für jede Probe an, um einen Durchschnitt zu berechnen. Obwohl dies kompliziert scheint, ist die Gleichung, die in der digitalen Filterung Parlance als die Differenzgleichung zur Berechnung der Ausgabe bekannt ist, einfach. In der folgenden Gleichung ist y die Ausgabe x ist die Eingabe und alpha ist eine Konstante, die die Grenzfrequenz festlegt. Um zu analysieren, wie sich dieser Filter auf die Frequenz des Ausgangs auswirkt, wird die Z-Domänenübertragungsfunktion verwendet. Die Amplitudenantwort ist unten für Alpha gleich 0,5 gezeigt. Die y-Achse ist wiederum in Dezibel dargestellt. Die x-Achse ist logarithmisch von 0,001 bis pi. Die Real-Frequenz-Frequenz ordnet der x-Achse zu, wobei Null die Gleichspannung ist und pi gleich der Hälfte der Abtastfrequenz ist. Alle Frequenzen, die größer als die Hälfte der Abtastfrequenz sind, werden gelöscht. Wie erwähnt, kann ein analoges Filter praktisch alle Frequenzen im digitalen Signal unterhalb der halben Abtastfrequenz sicherstellen. Der EMA-Filter ist aus zwei Gründen vorteilhaft in eingebetteten Konstruktionen. Erstens ist es einfach, die Grenzfrequenz einzustellen. Eine Verringerung des Wertes von Alpha verringert die Grenzfrequenz des Filters, wie durch Vergleich der obigen Alpha-0,5-Kurve mit der unten gezeigten Kurve mit alpha 0,1 dargestellt wird. Zweitens ist die EMA einfach zu kodieren und erfordert nur eine geringe Menge an Rechenleistung und Speicher. Die Code-Implementierung des Filters verwendet die Differenzgleichung. Es gibt zwei Multiplikationsoperationen und eine Additionsoperation für jeden Ausgang, der die Operationen ignoriert, die zum Runden von Festkomma-Mathematik erforderlich sind. Nur das aktuellste Sample muss im RAM gespeichert werden. Dies ist wesentlich geringer als die Verwendung eines einfachen gleitenden Durchschnittsfilters mit N Punkten, die N Multiplikations - und Additionsoperationen sowie N Samples, die im RAM gespeichert werden sollen, erfordern. Der folgende Code implementiert den EMA-Filter mit 32-Bit-Fixpunkt-Mathematik. Der folgende Code ist ein Beispiel für die Verwendung der oben genannten Funktion. Fazit Filter, sowohl analoge als auch digitale, sind ein wesentlicher Bestandteil eingebetteter Designs. Sie ermöglichen es Entwicklern, unerwünschte Frequenzen zu befreien, wenn sie die Sensoreingänge analysieren. Damit digitale Filter nützlich sind, müssen analoge Filter alle Frequenzen über die Hälfte der Abtastfrequenz entfernen. Digitale IIR-Filter können leistungsstarke Werkzeuge in Embedded-Design, wo Ressourcen begrenzt werden. Der exponentielle gleitende Durchschnitt (EMA) ist ein Beispiel für einen solchen Filter, der in eingebetteten Designs aufgrund der geringen Speicher - und Rechenleistungsanforderungen gut funktioniert. Nehmen Sie den IIR-Filter erster Ordnung auf: yn alpha xn (1 - alpha) yn - 1 Wie kann Ich wähle den Parameter alpha st Das IIR annähernd so gut wie möglich die FIR, die das arithmetische Mittel der letzten k Proben ist: Wo n in k, infty), was bedeutet, dass der Eingang für den IIR länger als k sein kann und dennoch Id die beste Annäherung der haben Mittelwert der letzten k Eingänge. Ich weiß, die IIR hat unendliche Impulsantwort, daher Im auf der Suche nach der besten Annäherung. Id für die analytische Lösung glücklich sein, ob es für oder ist. Wie konnten diese Optimierungsprobleme nur mit der 1. Ordnung IIR gelöst werden. (1 - alpha) yn - 1 genau ndash Es ist verpflichtet, eine sehr schlechte Annäherung zu werden. Can39t Sie leisten, alles, was mehr als ein First-Order IIR ndash leftaroundover Okt 6 11 at 13:42 Vielleicht möchten Sie Ihre Frage bearbeiten, so dass Sie don39t verwenden yn zu zwei verschiedenen Dingen bedeuten, z. Könnte die zweite angezeigte Gleichung zn frac xn cdots frac xn-k1 lesen, und Sie könnten sagen, was genau ist Ihr Kriterium der Quoten gut als möglichequot z. B. Wollen Sie vert yn - znvert so klein wie möglich für alle n, oder vert yn - znvert2 so klein wie möglich für alle n sein. Ndaren Dilip Sarwate Ich weiß, das ist eine alte Post so, wenn Sie sich erinnern können: wie ist Ihre Funktion 39f39 abgeleitet I39ve codiert eine ähnliche Sache, sondern mit den komplexen Übertragungsfunktionen für FIR (H1) und IIR (H2 ) Und dann Summe (abs (H1 - H2) 2). I39ve verglichen dieses mit Ihrer Summe (fj), aber erhalten unterschiedliche resultierende Ausgänge. Dachte, ich würde vor dem Pflügen durch die Mathematik fragen. (1 - alpha) alpha xn - 1 (1 - alpha) 2 yn - 1 ampamp alpha xn (1 - alpha) alpha xn - 1 (1 - alpha) 2 yn - 2 ampamp alpha xn (1 - alpha) alpha xn-1 (1 - alpha) 2 alpha xn-2 (1 - alpha) 3 yn - 3 Ende, so daß der Koeffizient von xn-m alpha (1-alpha) m ist . Der nächste Schritt ist, Derivate zu nehmen und gleich Null zu sein. Betrachtet man ein Plot des abgeleiteten J für K 1000 und Alpha von 0 bis 1, sieht es aus wie das Problem (wie Ive es aufgestellt) ist schlecht gestellt, weil die beste Antwort ist Alpha 0. Ich denke, Theres ein Fehler hier. Die Art und Weise sollte es nach meinen Berechnungen sein: Mit dem folgenden Code auf MATLAB ergibt etwas Äquivalentes zwar unterschiedlich: Jedenfalls haben diese Funktionen Minimum. So können wir annehmen, dass wir uns nur um die Annäherung über die Unterstützung (Länge) des FIR-Filters kümmern. In diesem Fall ist das Optimierungsproblem genau: J2 (alpha) sum (alpha (1-alpha) m - frac) 2 Das Plotten J2 (alpha) für verschiedene Werte von K versus alpha ergibt das Datum in den Diagrammen und der Tabelle unten. Für K 8. alpha 0,1533333 für K 16. alpha 0,08 für K 24. alpha 0,0533333 für K 32. alpha 0,04 für K 40. alpha 0,0333333 für K 48. alpha 0,0266667 für K 56. alpha 0,0233333 für K 64. alpha 0,02 für K 72. alpha 0.0166667 Die roten gestrichelten Linien sind 1 K und die grünen Linien alpha, der Wert von alpha, der J2 (alpha) minimiert (ausgewählt unter tt alpha 0: 0,01: 1 3). Theres eine nette Diskussion dieses Problems in der eingebetteten Signalverarbeitung mit der Mikrosignalarchitektur. Etwa auf den Seiten 63 und 69. Auf Seite 63 ist eine Ableitung des exakten rekursiven gleitenden Durchschnittsfilters (die niaren in seiner Antwort gegeben hat) enthalten. Zur Bequemlichkeit in Bezug auf die folgende Diskussion entspricht sie der folgenden Differenzengleichung: Die Näherung Die den Filter in die von Ihnen angegebene Form bringt, vorausgesetzt, dass x approx y, weil (und ich zitiere aus S. 68) y der Mittelwert von xn Proben ist. Diese Approximation erlaubt es uns, die vorstehende Differenzengleichung wie folgt zu vereinfachen: Einstellen von alpha, erhalten wir zu Ihrer ursprünglichen Form y alpha xn (1-alpha) y, was zeigt, dass der Koeffizient, den Sie (in Bezug auf diese Approximation) genau 1over haben wollen (Wobei N die Anzahl der Proben ist). Ist diese Annäherung die beste in irgendeiner Hinsicht Seine sicherlich elegant. Heres, wie sich die Amplitudenreaktion bei 44,1 kHz für N 3 vergleicht und wenn N auf 10 zunimmt (Annäherung in blau): Wie die Peters-Antwort nahelegt, kann die Annäherung eines FIR-Filters mit einem rekursiven Filter unter einer Kleinste-Quadrate-Norm problematisch sein. Eine ausführliche Diskussion darüber, wie dieses Problem im Allgemeinen gelöst werden kann, finden Sie in JOSs These, Techniken für Digitalfilter Design und System Identifikation mit Anwendung auf die Violine. Er befürwortet die Verwendung der Hankel-Norm, aber in Fällen, in denen die Phasenreaktion keine Rolle spielt, deckt er auch die Kopecs-Methode ab, die in diesem Fall gut funktionieren könnte (und eine L2-Norm verwendet). Einen breiten Überblick über die Techniken in der Arbeit finden Sie hier. Sie können andere interessante Approximationen liefern.

No comments:

Post a Comment