Wednesday 8 November 2017

Matlab Simulink Gewichteter Gleitender Durchschnitt


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 besagt, dass diese Framesamples 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. Beantwortet Mar 26 14 um 17: 39Weight Moving Average (Obsolete) Hinweis: Der Weighted Moving Average Block ist veraltet. Dieser Block wurde aus der Diskrete Bibliothek in R2008a entfernt und durch den diskreten FIR-Filterblock ersetzt. Bestehende Modelle, die den Weighted Moving Average Block enthalten, funktionieren jedoch weiterhin für die Abwärtskompatibilität. Verwenden Sie den Block für diskrete FIR-Filter in neuen Modellen. Verwenden Sie die Slupdate-Funktion, um Weighted Moving Average mit Discrete FIR Filter in vorhandenen Modellen zu ersetzen. Der gewichtete Moving Average Block samplet und hält die N neuesten Eingaben, multipliziert jeden Eingang mit einem angegebenen Wert (angegeben durch den Parameter Weight) und stapelt sie in einem Vektor. Dieser Baustein unterstützt sowohl Single-Input-Single-Output - (SISO) als auch Single-Inputmulti-Output (SIMO) - Modi. Für den SISO-Modus wird der Weights-Parameter als Zeilenvektor angegeben. Für den SIMO-Modus werden die Gewichte als Matrix angegeben, wobei jede Zeile einem separaten Ausgang entspricht. Sie können wählen, ob der Datentyp und die Skalierung der Gewichte im Dialog mit dem Parameter Gain-Datentyp spezifiziert werden sollen oder nicht. Der Parameter Initial condition liefert die Anfangswerte für alle Zeiten vor der Startzeit. Sie legen das Zeitintervall zwischen den Samples mit dem Parameter Sample time fest. Der gewichtete Moving Average-Block multipliziert zuerst seine Eingaben mit dem Parameter "Gewichte", wandelt diese Ergebnisse mit den angegebenen Rundungs - und Überlaufmodi in den Ausgabedatentyp um und führt dann die Summation aus. Unterstützung des Datentyps Der Block "Gewichteter Verschiebungsdurchschnitt" unterstützt alle numerischen Datentypen, die Simulink x00AE unterstützt, einschließlich Festkomma-Datentypen. Parameter Legen Sie die Gewichte des gleitenden Durchschnitts einer Zeile pro Ausgabe fest. Der Parameter "Gewichte" wird von Doubles in den angegebenen Datentyp offline umgewandelt, indem Round-to-Nearest und Sättigung verwendet werden. Geben Sie die Anfangswerte für alle Zeiten vor der Startzeit an. Der Parameter Initial condition wird vom Doubles in den Inputdatentyp Offline über Round-to-Nearest und Sättigung konvertiert. Geben Sie das Zeitintervall zwischen den Samples an. Um die Abtastzeit zu erben, setzen Sie diesen Parameter auf -1. Weitere Informationen finden Sie unter Angeben der Beispielzeit in der Online-Dokumentation. Ausgabedatentyp Geben Sie den Ausgabedatentyp an. Sie können Folgendes festlegen: Eine Regel, die einen Datentyp erbt, z. B. Inherit: Inherit über Backpropagation Der Name eines Datentypobjekts, z. B. ein Simulink. NumericType-Objekt Ein Ausdruck, der beispielsweise einen Datentyp auswertet , Fixdt (1,16,0) Klicken Sie auf die Schaltfläche Datentyp-Assistent anzeigen, um den Datentyp-Assistenten anzuzeigen. Mit dem Sie den Parameter Ausgabedatentyp einstellen können. Sperren der Ausgabeskalierung gegen Änderungen mit dem Autokalibrierungswerkzeug Wählen Sie diese Option, um die Skalierung der Ausgänge gegen Änderungen mit dem Fixpunkt-Werkzeug zu sperren. Integer-Rundungsmodus Rundungsmodus für die Fixpunktausgabe. Weitere Informationen finden Sie unter Rundung. Sättigung auf max oder min, wenn Überläufe auftreten Wenn ausgewählt, fixpunktüberläufe sättigen. Andernfalls wickeln sie. Geben Sie den Datentyp des Parameters "Gewichte" an. Sie können Folgendes festlegen: Eine Regel, die einen Datentyp erbt, z. B. Inherit: Inherit über interne Regel Der Name eines Datentypobjekts, z. B. ein Simulink. NumericType-Objekt Ein Ausdruck, der beispielsweise einen Datentyp auswertet , Fixdt (1,16,0) Klicken Sie auf die Schaltfläche Datentyp-Assistent anzeigen, um den Datentyp-Assistenten anzuzeigen. Mit dem Sie den Parameter Gain-Datentyp einstellen können. (Weitere Informationen finden Sie unter Datentypen mit Hilfe des Datentypassistenten.) Angenommen, Sie möchten diesen Block für zwei Ausgänge (SIMO-Modus) konfigurieren, wobei der erste Ausgang durch y 1 (k) a 1 x22C5 u (k) b 1 x22C5 gegeben ist (K x2212 1) c 1 x22C5 u (k x2212 2) Der zweite Ausgang ist gegeben durch y 2 (k) a 2 x22C5 u (k) b 2 x22C5 u (k x2212 1) und die Anfangswerte von u (k - 1) und u (k - 2) sind durch ic1 und ic2 gegeben. beziehungsweise. Um den Block für den gewichteten Moving Average für diesen Fall zu konfigurieren, müssen Sie den Parameter Weight als a1 b1 c1 a2 b2 c2 mit c2 0 und den Parameter Initial condition als ic1 ic2 angeben. MerkmaleDokumentation 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 ist und 124 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 weiteres gemeinsames Filter folgt der Binomialexpansion von (12,12) 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 Binomialfilter zu finden, falten Sie 12 12 mit sich selbst und konvergieren dann iterativ den Ausgang mit 12 12 eine vorgeschriebene 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