Saturday 11 February 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 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 März 26 14 um 17:39 Erstellt am Mittwoch, den 08. Oktober 2008 um 20:04 Uhr Zuletzt aktualisiert am Donnerstag, den 14. März 2013 um 01:29 Uhr Geschrieben von Batuhan Osmanoglu Zugriffe: 40950 Moving Average In Matlab Oft finde ich die Notwendigkeit, die Daten zu berechnen Müssen den Lärm ein wenig reduzieren. Ich schrieb paar Funktionen, um genau das tun, was ich will, aber Matlabs in Filter-Funktion gebaut funktioniert auch ziemlich gut. Hier schreibe ich über 1D und 2D Mittelung von Daten. 1D-Filter kann mit der Filterfunktion realisiert werden. Die Filterfunktion erfordert mindestens drei Eingangsparameter: den Zählerkoeffizienten für den Filter (b), den Nennerkoeffizienten für den Filter (a) und natürlich die Daten (X). Ein laufender Mittelwertfilter kann einfach definiert werden: Für 2D-Daten können wir die Funktion Matlabs filter2 verwenden. Für weitere Informationen, wie der Filter funktioniert, können Sie eingeben: Hier ist eine schnelle und schmutzige Implementierung eines 16 von 16 gleitenden durchschnittlichen Filters. Zuerst müssen wir den Filter definieren. Da alles, was wir wollen, gleicher Beitrag aller Nachbarn ist, können wir einfach die Funktion verwenden. Wir teilen alles mit 256 (1616), da wir nicht den allgemeinen Pegel (Amplitude) des Signals ändern wollen. Zur Anwendung des Filters können wir einfach sagen, die folgenden Unten sind die Ergebnisse für die Phase eines SAR-Interferogramms. In diesem Fall ist der Bereich in der Y-Achse und der Azimut auf der X-Achse abgebildet. Der Filter war 4 Pixel breit im Bereich und 16 Pixel breit im Azimut.


No comments:

Post a Comment