Friday 10 November 2017

Simulink Moving Average Beispiel


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 Realzeit-Implementierung 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. (Standard) Exponentielle Gewichtung Schiebefenster 8212 Ein Fenster der Länge Die Fensterlänge bewegt sich über die Eingabedaten entlang jedes Kanals. Für jeden Sample, den das Fenster verschiebt, berechnet der Block den Mittelwert über die Daten im Fenster. Exponentialgewichtung 8212 Der Block multipliziert die Proben mit einem Satz von Gewichtungsfaktoren. Die Größe der Gewichtungsfaktoren nimmt exponentiell ab, wenn das Alter der Daten ansteigt und niemals Null erreicht. Um den Durchschnitt zu berechnen, summiert der Algorithmus die gewichteten Daten. Fensterlänge angeben 8212 Flag zur Angabe der Fensterlänge auf (Standard) aus Wenn Sie dieses Kontrollkästchen aktivieren, entspricht die Länge des Schiebefensters dem Wert, den Sie in Fensterlänge angeben. Wenn Sie dieses Kontrollkästchen deaktivieren, ist die Länge des Schiebefensters unendlich. In diesem Modus berechnet der Block den Durchschnitt des aktuellen Samples und alle vorherigen Samples im Kanal. Fensterlänge 8212 Länge des Schiebefensters 4 (default) positive skalare Ganzzahl Die Fensterlänge gibt die Länge des Schiebefensters an. Dieser Parameter wird angezeigt, wenn Sie das Kontrollkästchen Fensterlänge angeben auswählen. Vergessender Faktor 8212 Exponentieller Gewichtungsfaktor 0,9 (Voreinstellung) positiver realer Skalar im Bereich (0,1 Dieser Parameter gilt, wenn Sie Methode auf Exponentielle Gewichtung setzen. Ein Vergessensfaktor von 0,9 gibt mehr Gewicht zu den älteren Daten als ein Vergessensfaktor von 0,1 Ein vergessener Faktor von 1.0 zeigt unendlichen Speicher an Alle vorherigen Samples erhalten ein gleiches Gewicht Dieser Parameter ist einstellbar und kann auch während der Simulation verändert werden Simulieren mit 8212 Simulationsart Codegenerierung Interpreted Simulation Modell mit dem erzeugten C-Code Simulink x00AE erzeugt beim erstmaligen Ausführen einer Simulation C-Code für den Baustein Der C-Code wird für nachfolgende Simulationen wiederverwendet, solange sich das Modell nicht ändert Simulationsgeschwindigkeit als interpretierte Ausführung Simulieren Sie Modell mit dem Interpreter MATLAB x00AE Diese Option verkürzt die Startzeit, hat aber eine langsamere Simulationsgeschwindigkeit als die Codegenerierung. Mehr über Algorithmen Schiebefenstermethode Bei der Schiebefenstermethode ist die Ausgabe für jede Eingangsabtastung der Durchschnitt der aktuellen Abtastung und der Len - 1 vorherigen Abtastwerte. Len ist die Länge des Fensters. Um die ersten Len - 1 - Ausgänge zu berechnen, füllt der Algorithmus das Fenster mit Nullen aus, wenn das Fenster noch nicht genügend Daten enthält. Als Beispiel, um den Durchschnitt zu berechnen, wenn die zweite Eingangsabtastung kommt, füllt der Algorithmus das Fenster mit Len-2 Nullen. Der Datenvektor, x. Sind dann die beiden Datenabtastungen, gefolgt von Len-2 Nullen. Wenn Sie die SpecifyWindowLength - Eigenschaft auf false festlegen. Wählt der Algorithmus eine unendliche Fensterlänge. In diesem Modus ist die Ausgabe der gleitende Durchschnitt des aktuellen Samples und alle vorhergehenden Samples im Kanal. Exponentielles Gewichtungsverfahren Bei dem exponentiellen Gewichtungsverfahren wird der gleitende Durchschnitt rekursiv unter Verwendung dieser Formeln berechnet: w N. x03BB x03BB w N x2212 1. x03BB 1. x x00AF N. x03BB (1 x2212 1W N. x03BB) x x00AF N x2212 1. x03BB (1 w N. x03BB) x N x x00AF N. x03BB 8212 Bewegender Mittelwert beim aktuellen Abtastwert x N 8212 aktueller Dateneingabemuster x x00AF N x2212 1. x03BB 8212 Bewegender Mittelwert beim vorhergehenden Abtastwert 955 8212 Vergößerungsfaktor w N. x03BB 8212 Gewichtungsfaktor für den aktuellen Datenabtastwert (1 x2212 1 w N. x03BB) x x00AF N x2212 1. x03BB 8212 Auswirkung der vorherigen Daten auf den Mittelwert Für den ersten Abtastwert mit N 1 wählt der Algorithmus w N. x03BB 1. Für die nächste Probe wird der Gewichtungsfaktor aktualisiert und zur Berechnung des Mittelwertes gemäß der rekursiven Gleichung verwendet. Wenn das Alter der Daten zunimmt, nimmt die Größe des Gewichtungsfaktors exponentiell ab und erreicht niemals Null. Mit anderen Worten, die jüngsten Daten haben mehr Einfluss auf den aktuellen Durchschnitt als die älteren Daten. Der Wert des Vergessensfaktors bestimmt die Änderungsgeschwindigkeit der Gewichtungsfaktoren. Ein Vergessensfaktor von 0,9 verleiht den älteren Daten mehr Gewicht als ein Vergessensfaktor von 0,1. Ein Vergessensfaktor von 1,0 zeigt unendlichen Speicher an. Alle vorhergehenden Proben erhalten ein gleiches Gewicht. Systemobjekte Wählen Sie Ihr LandDokumentation Dieses Beispiel zeigt, wie gleitende Durchschnittsfilter und Resampling verwendet werden, um die Auswirkungen von periodischen Komponenten der Tageszeit auf die stündliche Temperaturmessung zu isolieren und unerwünschte Leitungsgeräusche aus einer offenen Spannungsmessung zu entfernen. 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