Ein einfach zu bedienender digitaler 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 viel 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 diesen Filter beträgt 1000 rad 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 der ADC beispielsweise 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 aufgrund des geringen Speicher - und Rechenleistungsbedarfs gut in eingebetteten Designs funktioniert. Exponential Moving Average - EMA BREAKING DOWN Exponential Moving Average - EMA Die 12- und 26-Tage-EMAs Sind die populärsten Kurzzeitmittelwerte und werden verwendet, um Indikatoren wie die gleitende durchschnittliche Konvergenzdivergenz (MACD) und den prozentualen Preisoszillator (PPO) zu erzeugen. Im Allgemeinen werden die 50- und 200-Tage-EMAs als Signale von langfristigen Trends verwendet. Trader, die technische Analyse verwenden finden fließende Mittelwerte sehr nützlich und aufschlussreich, wenn sie richtig angewendet werden, aber Chaos verursachen, wenn sie falsch verwendet werden oder falsch interpretiert werden. Alle gleitenden Mittelwerte, die gewöhnlich in der technischen Analyse verwendet werden, sind von Natur aus nacheilende Indikatoren. Folglich sollten die Schlussfolgerungen aus der Anwendung eines gleitenden Durchschnitts auf ein bestimmtes Marktdiagramm eine Marktbewegung bestätigen oder ihre Stärke belegen. Sehr oft, bis eine gleitende durchschnittliche Indikatorlinie eine Änderung vorgenommen hat, um eine bedeutende Bewegung auf dem Markt zu reflektieren, ist der optimale Punkt des Markteintritts bereits vergangen. Eine EMA dient dazu, dieses Dilemma zu einem gewissen Grad zu lindern. Da die EMA-Berechnung mehr Gewicht auf die neuesten Daten setzt, umgibt sie die Preisaktion etwas fester und reagiert damit schneller. Dies ist wünschenswert, wenn ein EMA verwendet wird, um ein Handelseintragungssignal abzuleiten. Interpretation der EMA Wie alle gleitenden Durchschnittsindikatoren sind sie für Trendmärkte viel besser geeignet. Wenn der Markt in einem starken und anhaltenden Aufwärtstrend ist. Zeigt die EMA-Indikatorlinie auch einen Aufwärtstrend und umgekehrt einen Abwärtstrend. Ein wachsamer Händler achtet nicht nur auf die Richtung der EMA-Linie, sondern auch auf das Verhältnis der Änderungsgeschwindigkeit von einem Balken zum nächsten. Wenn zum Beispiel die Preisaktion eines starken Aufwärtstrends beginnt, sich zu verflachen und umzukehren, wird die EMA-Rate der Änderung von einem Balken zum nächsten abnehmen, bis zu dem Zeitpunkt, zu dem die Indikatorlinie flacht und die Änderungsrate null ist. Wegen der nacheilenden Wirkung, von diesem Punkt, oder sogar ein paar Takte zuvor, sollte die Preisaktion bereits umgekehrt haben. Daraus folgt, dass die Beobachtung einer konsequenten Abschwächung der Veränderungsrate der EMA selbst als Indikator genutzt werden könnte, der das Dilemma, das durch den nacheilenden Effekt von gleitenden Durchschnitten verursacht wird, weiter beheben könnte. Gemeinsame Verwendung der EMA-EMAs werden häufig in Verbindung mit anderen Indikatoren verwendet, um signifikante Marktbewegungen zu bestätigen und deren Gültigkeit zu messen. Für Händler, die intraday und schnelllebigen Märkten handeln, ist die EMA mehr anwendbar. Häufig benutzen Händler EMAs, um eine Handel Bias zu bestimmen. Zum Beispiel, wenn eine EMA auf einer Tages-Chart zeigt einen starken Aufwärtstrend, eine Intraday-Trader-Strategie kann nur von der langen Seite auf einer Intraday-Chart handeln. Der exponentielle gleitende Durchschnitt ist eine Art von IIR-Filter, die einfach zu implementieren ist in C und verwendet minimale Ressourcen. 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, dass das Ende der Zeile lesen sollte (65535 - alpha) Andernfalls würde ein Alpha von 1 unsachgemäß den vorherigen Durchschnitt sowie den neuen Wert enthalten.
No comments:
Post a Comment