Saturday 9 September 2017

Matlab Simulink Weighted Moving Average


Ich bin neu bei Simulink. Ich möchte den Durchschnitt der eingehenden Daten (die nach einigen Intervallen kommt) von einem Block zu tun. Zum Beispiel sind ununterbrochene gerahmte Daten von 42 Proben von einem Block entfernt. Zusammen mit den gerahmten Daten gibt es einen weiteren Ausgang (Tag), der anzeigt, dass diese Rahmen / Samples zu welcher Kategorie gehören. Tags sind Zahlen von 1-6. Die Ausgabe ist zufällig. Ich möchte die gleiche Kategorie Daten Durchschnitt. Wie der erste Frame ist von cat1, dann nach 4 Frames Kat1 Frame wieder kommt. Nun, wie sollte ich diesen neuen Rahmen mit dem vorherigen Ich möchte dies für alle Kategorien zu tun Durchschnitt. Bitte helfen Sie mir heraus in diesem. Eine schnelle und schmutzige Lösung wäre, eine Arraylist für jede Kategorie implementieren. Initialisieren Sie die Liste mit NaNs und halten Sie einen Zähler für die letzte Probe aus jeder Kategorie. Mit der Mittelfunktion können Sie den Mittelwert aller Messungen erhalten. Wenn Sie nur den Durchschnitt des aktuellen Rahmens und des vorherigen Rahmens wollen, können Sie einfach (cat1 (n1) cat1 (n11)) bedeuten, wobei cat1 der Arraylist für Frames aus der Kategorie 1 ist und n1 der Index des vorherigen Frames in cat1 ist . Wenn Sie einen gewichteten gleitenden Durchschnitt für eine Echtzeitimplementierung wünschen, erstellen Sie für jede Kategorie eine durchschnittliche Variable (nennen Sie sie av1, av2 usw.) und berechnen Sie av1 alphaav1 (1-alpha) cat1 (n11) (wobei alpha das Gewicht ist Bis zum vorherigen Durchschnitt (alphalt1) und cat1 (n11) ist die neue Messung), wenn ein cat1-Rahmen kommt. (Tsobj, s, lag) liefert den einfachen gleitenden Durchschnitt für finanziellen Zeitreihen-Objekt, tsobj. Verzögerung gibt die Anzahl der vorherigen Datenpunkte an, die beim Berechnen des gleitenden Mittelwerts mit dem aktuellen Datenpunkt verwendet werden. Ausgabe tsmovavg (Vektor, s, lag, dim) gibt den einfachen gleitenden Durchschnitt für einen Vektor zurück. Verzögerung gibt die Anzahl der vorherigen Datenpunkte an, die beim Berechnen des gleitenden Mittelwerts mit dem aktuellen Datenpunkt verwendet werden. Output tsmovavg (tsobj, e, timeperiod) gibt den exponentiellen gewichteten gleitenden Durchschnitt für das finanzielle Zeitreihenobjekt tsobj zurück. Der exponentielle gleitende Durchschnitt ist ein gewichteter gleitender Durchschnitt, wobei die Zeitperiode den Zeitraum angibt. Exponentielle gleitende Durchschnitte reduzieren die Verzögerung durch mehr Gewicht auf die jüngsten Preise. Zum Beispiel gewichtet ein 10-Perioden-exponentieller gleitender Durchschnitt den jüngsten Preis um 18,18. Exponentialprozent 2 / (TIMEPER 1) oder 2 / (WINDOWSIZE 1). Output tsmovavg (Vektor, e, timeperiod, dim) gibt den exponentiell gewichteten gleitenden Durchschnitt für einen Vektor zurück. Der exponentielle gleitende Durchschnitt ist ein gewichteter gleitender Durchschnitt, wobei die Zeitperiode den Zeitraum angibt. Exponentielle gleitende Durchschnitte reduzieren die Verzögerung durch mehr Gewicht auf die jüngsten Preise. Zum Beispiel gewichtet ein 10-Perioden-exponentieller gleitender Durchschnitt den jüngsten Preis um 18,18. (2 / (Zeitabschnitt 1)). Ausgabe tsmovavg (tsobj, t, numperiod) gibt den dreieckigen gleitenden Durchschnitt für das finanzielle Zeitreihenobjekt tsobj zurück. Der dreieckige gleitende Durchschnitt doppelt glättet die Daten. Tsmovavg berechnet den ersten einfachen gleitenden Durchschnitt mit Fensterbreite von ceil (numperiod 1) / 2. Dann berechnet es einen zweiten einfachen gleitenden Durchschnitt auf dem ersten gleitenden Durchschnitt mit der gleichen Fenstergröße. Ausgabe tsmovavg (Vektor, t, numperiod, dim) gibt den dreieckigen gleitenden Durchschnitt für einen Vektor zurück. Der dreieckige gleitende Durchschnitt doppelt glättet die Daten. Tsmovavg berechnet den ersten einfachen gleitenden Durchschnitt mit Fensterbreite von ceil (numperiod 1) / 2. Dann berechnet es einen zweiten einfachen gleitenden Durchschnitt auf dem ersten gleitenden Durchschnitt mit der gleichen Fenstergröße. Output tsmovavg (tsobj, w, gewichte) liefert den gewichteten gleitenden Durchschnitt für das finanzielle Zeitreihenobjekt tsobj. Indem Gewichte für jedes Element in dem sich bewegenden Fenster bereitgestellt werden. Die Länge des Gewichtsvektors bestimmt die Größe des Fensters. Wenn größere Gewichtungsfaktoren für neuere Preise und kleinere Faktoren für frühere Preise verwendet werden, ist der Trend eher auf die jüngsten Veränderungen ansprechen. Ausgabe tsmovavg (Vektor, w, Gewichte, dim) gibt den gewichteten gleitenden Durchschnitt für den Vektor zurück, indem Gewichte für jedes Element in dem sich bewegenden Fenster geliefert werden. Die Länge des Gewichtsvektors bestimmt die Größe des Fensters. Wenn größere Gewichtungsfaktoren für neuere Preise und kleinere Faktoren für frühere Preise verwendet werden, ist der Trend eher auf die jüngsten Veränderungen ansprechen. Output tsmovavg (tsobj, m, numperiod) gibt den modifizierten gleitenden Durchschnitt für das finanzielle Zeitreihenobjekt tsobj zurück. Der modifizierte gleitende Durchschnitt ist ähnlich dem einfachen gleitenden Durchschnitt. Betrachten Sie das Argument numperiod als die Verzögerung des einfachen gleitenden Mittelwerts. Der erste modifizierte gleitende Durchschnitt wird wie ein einfacher gleitender Durchschnitt berechnet. Nachfolgende Werte werden durch Addition des neuen Preises und Subtrahieren des letzten Durchschnitts aus der resultierenden Summe berechnet. Ausgabe tsmovavg (Vektor, m, numperiod, dim) gibt den modifizierten gleitenden Durchschnitt für den Vektor zurück. Der modifizierte gleitende Durchschnitt ist ähnlich dem einfachen gleitenden Durchschnitt. Betrachten Sie das Argument numperiod als die Verzögerung des einfachen gleitenden Mittelwerts. Der erste modifizierte gleitende Durchschnitt wird wie ein einfacher gleitender Durchschnitt berechnet. Nachfolgende Werte werden durch Addition des neuen Preises und Subtrahieren des letzten Durchschnitts aus der resultierenden Summe berechnet. Dim 8212 Dimension, um auf positive ganze Zahl mit dem Wert 1 oder 2 arbeiten Dimension zu arbeiten, als eine positive Ganzzahl mit einem Wert von 1 oder 2 angegeben. Dim ist ein optionales Eingabeargument, und wenn es nicht als eine Eingabe enthalten ist, die Standardeinstellung Wert 2 wird angenommen. Der Standardwert von dim 2 gibt eine zeilenorientierte Matrix an, wobei jede Zeile eine Variable ist und jede Spalte eine Beobachtung ist. Wenn dim 1. die Eingabe als Spaltenvektor oder spaltenorientierte Matrix angenommen wird, wobei jede Spalte eine Variable und jede Zeile eine Beobachtung ist. E 8212 Indikator für exponentiell gleitenden durchschnittlichen Charaktervektor Der exponentielle gleitende Durchschnitt ist ein gewichteter gleitender Durchschnitt, wobei der Zeitabschnitt der Zeitraum des exponentiellen gleitenden Durchschnitts ist. Exponentielle gleitende Durchschnitte reduzieren die Verzögerung durch mehr Gewicht auf die jüngsten Preise. Zum Beispiel gewichtet ein 10-Perioden-exponentieller gleitender Durchschnitt den jüngsten Preis um 18,18. Exponentialprozent 2 / (TIMEPER 1) oder 2 / (WINDOWSIZE 1) Zeitintervall 8212 Länge der Zeitperiode nichtnegative Ganzzahl Wählen Sie Ihr LandDokumentation Dieses Beispiel zeigt, wie Sie gleitende Durchschnittsfilter und Resampling verwenden, um die Auswirkungen von periodischen Komponenten der Tageszeit zu isolieren Stündliche Temperaturablesungen sowie unerwünschte Leitungsgeräusche 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ähle dein Land

No comments:

Post a Comment