Wednesday 27 September 2017

Rolling Moving Average Matlab


29 September, 2013 Gleitender Durchschnitt durch Faltung Was ist gleitender Durchschnitt und was ist es gut für Wie ist das Bewegen der Mittelung durch die Faltung gemacht Bewegen Durchschnitt ist eine einfache Operation verwendet in der Regel zu unterdrücken Rauschen eines Signals: Wir setzen den Wert jedes Punktes auf die Durchschnitt der Werte in seiner Nachbarschaft. Nach einer Formel: Hier ist x die Eingabe und y ist das Ausgangssignal, während die Größe des Fensters w ist, soll ungerade sein. Die obige Formel beschreibt eine symmetrische Operation: Die Proben werden von beiden Seiten des tatsächlichen Punktes genommen. Unten ist ein echtes Leben Beispiel. Der Punkt, an dem das Fenster gelegt wird, ist rot. Werte außerhalb von x sollen Nullen sein: Um herumzuspielen und die Effekte des gleitenden Durchschnitts zu sehen, werfen Sie einen Blick auf diese interaktive Demonstration. Wie man es durch Faltung macht Wie Sie vielleicht erkannt haben, ist die Berechnung des einfachen gleitenden Durchschnitts ähnlich der Faltung: In beiden Fällen wird ein Fenster entlang des Signals verschoben und die Elemente im Fenster werden zusammengefasst. Also, versuch es, das Gleiche zu tun, indem du eine Faltung benutzt. Verwenden Sie die folgenden Parameter: Die gewünschte Ausgabe ist: Als erster Ansatz, versuchen wir, was wir bekommen, indem wir das x-Signal durch den folgenden k-Kernel falten: Der Ausgang ist genau dreimal größer als der erwartete. Es kann auch gesehen werden, dass die Ausgangswerte die Zusammenfassung der drei Elemente im Fenster sind. Es ist, weil während der Faltung das Fenster verschoben 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. Die Ausgabe wird durch 3 geteilt: Nach einer Formel, die die Teilung einschließt: Aber wäre es nicht optimal, die Teilung während der Faltung zu machen. Hier kommt die Idee, indem sie die Gleichung neu arrangiert: So werden wir den folgenden k Kernel verwenden: Auf diese Weise werden wir Bekomme die gewünschte Ausgabe: Im Allgemeinen: Wenn wir gleitenden Durchschnitt durch Faltung mit einer Fenstergröße von w machen wollen. Wir verwenden den folgenden k Kernel: Eine einfache Funktion, die den gleitenden Durchschnitt macht: Ein Beispiel ist: Der beste Weg, dies zu tun (meiner Meinung nach) wäre, einen Circular-Puffer zu verwenden, um deine Bilder zu speichern. In einem Kreis - oder Ringpuffer wird das älteste Datenelement im Array durch das neueste Element überschrieben, das in das Array eingefügt wird. Die Grundlagen der Herstellung einer solchen Struktur sind im kurzen Mathworks-Video beschrieben. Implementieren eines einfachen kreisförmigen Puffers. Für jede Iteration von Ihnen Hauptschleife, die sich mit einem einzigen Bild, laden Sie einfach ein neues Bild in den Zirkular-Puffer und dann verwenden MATLAB s eingebaute Mittelfunktion, um den Durchschnitt effizient zu nehmen. Wenn Sie eine Fensterfunktion auf die Daten anwenden müssen, dann machen Sie eine temporäre Kopie der Frames multipliziert mit der Fensterfunktion und nehmen Sie den Durchschnitt der Kopie bei jeder Iteration der Schleife. Antwortete Aug 6 12 um 10:11 berechnet eine Art Moving Average für jede der 10 Bands über alle deine Bilder. Diese Zeile berechnet einen gleitenden Durchschnitt des Mittelwertes über deine Bilder: Für beide sollst du eine Pufferstruktur hinzufügen, die nur die letzten 10 Bilder enthält. Um es zu vereinfachen, kannst du auch einfach alles im Gedächtnis halten. Hier ist ein Beispiel für Yout: Ändern Sie diese Zeile: (Hinzufügen einer Dimension) Und ändern Sie diese: Dann zur Anzeige verwenden Sie würden etw. Ähnlich für meanvalue beantwortet Aug 6 12 at 14:19 Ihre Antwort 2017 Stack Exchange, IncI müssen einen gleitenden Durchschnitt über eine Datenreihe berechnen, innerhalb einer for-Schleife. Ich muss den gleitenden Durchschnitt über N9 Tage bekommen. Das Array Im Computing in ist 4 Serien von 365 Werten (M), die selbst Mittelwerte eines anderen Satzes von Daten sind. Ich möchte die Mittelwerte meiner Daten mit dem gleitenden Durchschnitt in einer Handlung darstellen. Ich googelte ein bisschen über bewegte Durchschnitte und den Conv-Befehl und fand etwas, was ich versucht habe, in meinem Code zu implementieren: Also grundsätzlich berechne ich meinen Mittel und plot es mit einem (falschen) gleitenden Durchschnitt. Ich habe den WTS-Wert direkt von der Mathworks-Website ausgewählt, also ist das falsch. (Quelle: mathworks. nlhelpeconmoving-average-trend-estimation. html) Mein Problem aber ist, dass ich nicht verstehe, was diese wts ist. Könnte jemand erklären, wenn es etwas mit den Gewichten der Werte zu tun hat: das ist in diesem Fall ungültig. Alle Werte werden gleich gewichtet. Und wenn ich das ganz falsch mache, könnte ich mir etwas helfen. Mein herzlichster Dank. Fragte am 23.09 um 19:05 Mit conv ist eine hervorragende Möglichkeit, einen gleitenden Durchschnitt zu implementieren. In dem Code, den Sie verwenden, ist wts, wie viel Sie jeden Wert wiegen (wie Sie erraten). Die Summe dieses Vektors sollte immer gleich eins sein. Wenn du deinen Wert gleichmäßig erwärmen möchtest und eine Größe N bewegter Filter machst, dann würdest du es tun wollen Mit dem gültigen Argument in conv wird es darum gekommen, weniger Werte in Ms zu haben, als du in M ​​hast. Benutze das gleiche, wenn du die Auswirkungen von nicht beachtet hast Nullpolsterung. Wenn Sie die Signalverarbeitung Toolbox können Sie cconv verwenden, wenn Sie einen kreisförmigen gleitenden Durchschnitt versuchen wollen. Etwas wie Sie sollten die conv und cconv Dokumentation für weitere Informationen lesen, wenn Sie havent bereits haben. Sie können Filter verwenden, um einen laufenden Durchschnitt zu finden, ohne eine for-Schleife zu verwenden. Dieses Beispiel findet den laufenden Durchschnitt eines 16-Element-Vektors unter Verwendung einer Fenstergröße von 5. 2) glatt als Teil der Curve Fitting Toolbox (die in den meisten Fällen verfügbar ist) yy glatt (y) glättet die Daten im Spaltenvektor Y mit einem gleitenden durchschnittlichen Filter. Die Ergebnisse werden im Spaltenvektor yy zurückgegeben. Die Standardspanne für den gleitenden Durchschnitt beträgt 5.

No comments:

Post a Comment