Saturday, 23 September 2017

Moving Average Matlab Beispiel


29 September, 2013 Gleitender Durchschnitt durch Faltung Was ist gleitend Durchschnitt und was ist es gut für Wie ist die gleitende Mittelung durch Faltung durchgeführt Moving Average ist eine einfache Operation, die gewöhnlich verwendet wird, um Rauschen eines Signals zu unterdrücken: Wir setzen den Wert jedes Punktes auf die Durchschnitt der Werte in seiner Nachbarschaft. Nach einer Formel: Hier ist x die Eingabe und y das Ausgangssignal, während die Größe des Fensters w ist, die ungerade sein soll. Die obige Formel beschreibt eine symmetrische Operation: Die Proben werden von beiden Seiten des aktuellen Punktes genommen. Unten ist ein Beispiel aus dem wirklichen Leben. Der Punkt, auf dem das Fenster gelegt wird, ist tatsächlich rot. Werte außerhalb x sind Nullen: Um zu spielen und sehen die Auswirkungen der gleitenden Durchschnitt, werfen Sie einen Blick auf diese interaktive Demonstration. Wie man es durch Faltung erkennt Wie Sie vielleicht erkannt haben, ist die Berechnung des einfachen gleitenden Mittels ähnlich der Faltung: In beiden Fällen wird ein Fenster entlang des Signals geschoben und die Elemente im Fenster zusammengefasst. Also, geben Sie ihm einen Versuch, die gleiche Sache zu tun, indem Sie Faltung. Verwenden Sie die folgenden Parameter: Die gewünschte Ausgabe ist: Als erster Ansatz versuchen wir, was wir durch Faltung des x-Signals durch den folgenden k-Kernel erreichen: Der Ausgang ist genau dreimal größer als erwartet. Es ist auch ersichtlich, dass die Ausgabewerte die Zusammenfassung der drei Elemente im Fenster sind. Es ist, weil während der Faltung das Fenster entlang geschoben wird, werden alle Elemente in ihm mit einem multipliziert und dann zusammengefasst: yk 1 cdot x 1 cdot x 1 cdot x Um die gewünschten Werte von y zu erhalten. Wird die Ausgabe durch 3 geteilt: Durch eine Formel mit der Teilung: Aber wäre es nicht optimal, die Teilung während der Konvolution zu machen Hier kommt die Idee, indem wir die Gleichung umordnen: So werden wir den folgenden k Kernel verwenden: Auf diese Weise werden wir Erhalten Sie die gewünschte Ausgabe: Im Allgemeinen: wenn wir gleitenden Durchschnitt durch Faltung mit einer Fenstergröße von w machen wollen. Werden wir den folgenden k-Kernel verwenden: Eine einfache Funktion, die den gleitenden Durchschnitt ausführt, ist: Eine Beispielnutzung ist: Ich versuche, ein Matlabzuweisungsprojekt mit der folgenden Frage auszuführen: Schreiben Sie eine Funktion namens movingaverage, die einen Skalar mit dem Namen x als Eingabe annimmt Argument und gibt einen Skalar zurück. Die Funktion verwendet einen Puffer, um vorherige Eingaben zu speichern, und der Puffer kann maximal 25 Eingänge aufnehmen. Insbesondere muss die Funktion die letzten 25 Eingaben in einem Vektor (dem Puffer) speichern. Jedes Mal, wenn die Funktion aufgerufen wird, kopiert es das Eingabeargument in ein Element des Puffers. Sind bereits 25 Eingaben im Puffer gespeichert, verwirft es das älteste Element und speichert das aktuelle im Puffer. Nachdem sie die Eingabe im Puffer gespeichert hat, gibt sie den Mittelwert aller Elemente im Puffer zurück. Die Lösung, die ich bereitstellte, ist die folgende: Nach dem Auto Grader funktioniert meine Funktion richtig, wenn Werte 1-50 nacheinander passieren, aber scheitert, wenn Werte einer verrauschten Sinuswelle nacheinander durchlaufen (die ich informiert worden sein, Art eines Rundungsfehlers). Ich wäre Ihnen dankbar, wenn einige von Ihnen könnten mir einige Hinweise über die möglichen Fehler Schritte in meinem Code (siehe oben). Vielen Dank im Vorausoutput tsmovavg (tsobj, s, lead, lag) und Ausgang tsmovavg (Vektor, s, lead, lag, dim) berechnen den einfachen gleitenden Durchschnitt. Blei und Nachlauf die Anzahl der vorhergehenden und nachfolgenden Datenpunkte anzeigen, die in Verbindung mit dem aktuellen Datenpunkt verwendet werden, wenn der gleitende Durchschnitt berechnet wird. Wenn Sie z. B. einen fünftägigen gleitenden Durchschnitt berechnen wollen, setzen Sie mit den aktuellen Daten in der Mitte sowohl Blei als auch Verzögerung auf 2 (2 1 2 5). Ausgabe tsmovavg (tsobj, e, Zeitperiode) und Ausgabe tsmovavg (Vektor, e, Zeitdauer, dim) den exponentiellen gewichteten gleitenden Durchschnitt berechnen. Der exponentielle gleitende Durchschnitt ist ein gewichteter gleitender Durchschnitt, wobei die zugeordneten Gewichte exponentiell abnehmen, wenn Sie weiter in die Vergangenheit gehen. Ist eine Glättungskonstante, wird der jüngste Wert der Zeitreihe gewichtet, der nächste jüngste Wert wird mit (1-), der nächste Wert mit (1-) 2 und so weiter gewichtet. Hier wird unter Verwendung von 2 / (Zeitabschnitt 1) ​​oder 2 / (Windowssize1) berechnet. Ausgang tsmovavg (tsobj, t, numperiod) und Ausgang tsmovavg (Vektor, t, numperiod, dim) berechnen den dreieckigen gleitenden Durchschnitt. Der dreieckige gleitende Durchschnitt doppelt glättet die Daten. Tsmovavg berechnet den ersten einfachen gleitenden Durchschnitt mit der Fensterbreite von numperiod / 2. Wenn numperiod eine ungerade Zahl ist, runden sie (numperiod / 2) ab und verwenden sie, um sowohl den ersten als auch den zweiten gleitenden Durchschnitt zu berechnen. Der zweite gleitende Durchschnitt ist ein einfacher gleitender Durchschnitt des ersten gleitenden Durchschnitts. Wenn numperiod eine gerade Zahl ist, berechnet tsmovavg den ersten gleitenden Durchschnitt mit der Breite (numperiod / 2) und dem zweiten gleitenden Durchschnitt mit der Breite (numperiod / 2) 1. Ausgang tsmovavg (tsobj, w, Gewichte, Pivot) und Ausgang tsmovavg (Vektor, w, Gewichte, Pivot, dim) berechnen den gewichteten gleitenden Durchschnitt durch Gewichte für jedes Element im sich bewegenden Fenster. Die Länge des Gewichtsvektors bestimmt die Größe des Fensters. Wenn zum Beispiel die Gewichte 1 1 1 1 1 und die Achse 3 tsmovavg einen einfachen gleitenden Durchschnitt durch Mittelung des aktuellen Wertes mit den beiden vorherigen und zwei folgenden Werten berechnet. Ausgang tsmovavg (tsobj, m, numperiod) und Ausgang tsmovavg (Vektor, m, numperiod, dim) berechnen den modifizierten gleitenden Durchschnitt. Der erste gleitende Mittelwert wird durch Mittelung der letzten numperiod Eingänge berechnet. Der Rest der gleitenden Mittelwerte wird berechnet, indem dem vorherigen gleitenden Mittelwert der aktuelle Datenpunkt durch numperiod dividiert wird und der vorhergehende gleitende Durchschnitt durch numperiod dividiert wird. Gleitende Mittelwerte vor dem Numperiodwert sind Kopien der Datenwerte. Achelis, Steven B. Technische Analyse von A bis Z. Zweiter Druck, McGraw-Hill, 1995, S. 184-192.

No comments:

Post a Comment