Matlab Moving Average Array
Ich habe einen Vektor und ich möchte den gleitenden Durchschnitt von ihm mit einem Fenster der Breite 5.Für Beispiel, wenn der Vektor in Frage ist 1,2,3,4,5,6,7,8 dann. das erste Eintragung des resultierenden Vektors sollte die Summe aller Einträge in 1,2,3,4,5 dh 15.die zweite Eintragung des resultierenden Vektors sollte die Summe aller Einträge in 2,3,4,5,6 sein 20. Am Ende sollte der daraus resultierende Vektor 15,20,25,30 sein. Wie kann ich das machen. Die Conv-Funktion ist gleich Ihre Gasse. Drei Antworten, drei verschiedene Methoden Hier ist ein schneller Benchmark verschiedene Eingabegrößen, feste Fenster Breite von 5 mit timeit fühlen sich frei, Löcher in es in den Kommentaren zu stoßen, wenn Sie denken, es muss raffiniert werden. conv taucht als der schnellste Ansatz es s etwa doppelt so schnell wie Münze Ansatz mit Filter und etwa viermal so schnell wie Luis Mendo s Ansatz mit cumsum. Here ist ein weiterer Benchmark feste Eingangsgröße von 1e4 verschiedenen Fensterbreiten Hier Luis Mendo s cumsum Ansatz taucht als der klare Sieger, weil seine Komplexität ist in erster Linie Geregelt durch die Länge der Eingabe und ist unempfindlich auf die Breite des Fensters. Um zusammenzufassen, sollten Sie die conv-Ansatz, wenn Ihr Fenster relativ klein ist. Verwenden Sie die Cumsum-Ansatz, wenn Ihr Fenster relativ groß ist. Code für Benchmarks Notwendigkeit, einen gleitenden Durchschnitt über eine Datenreihe zu berechnen, innerhalb einer for-Schleife muss ich den gleitenden Durchschnitt über N 9 Tage erhalten. Das Array I m, das in 1 ist, ist 4 Serie 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 zeichnen. Ich googelte ein bisschen über bewegte Durchschnitte und den Conv-Befehl und fand etwas, was ich versucht habe, in meinem Code zu implementieren. So grundsätzlich berechne ich meinen Mittel und plot es Mit einem falschen gleitenden Durchschnitt habe ich den WTS-Wert direkt von der Mathworks-Website, so dass ist falsche Quelle Mein Problem aber ist, dass ich nicht verstehen, 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 valu Es sind gleich gewichtet. Und wenn ich das ganz falsch mache, könnte ich etwas Hilfe mit ihm bekommen. Mein aufrichtigsten Dank. Schicht Sep 23 14 am 19 05.Using conv ist eine hervorragende Möglichkeit, einen gleitenden Durchschnitt zu implementieren In den Code Sie Verwenden Sie, wts ist, wie viel Sie wiegen jeden Wert, wie Sie erraten, die Summe von diesem Vektor sollte immer gleich Eins Wenn Sie möchten, um jeden Wert gleichmäßig Gewicht und eine Größe N bewegenden Filter dann möchten Sie tun. Using die Gültiges Argument in Conv wird dazu führen, dass weniger Werte in Ms als Sie haben in M Verwenden Sie das gleiche, wenn Sie don t mind die Auswirkungen der Null-Polsterung Wenn Sie die Signalverarbeitung Toolbox können Sie cconv verwenden, wenn Sie einen kreisförmigen gleitenden Durchschnitt versuchen wollen etwas Etwas Like. You sollte die conv und cconv-Dokumentation für weitere Informationen lesen, wenn Sie bereits t bereits. 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, mit 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 in der Spalte Vektor y mit einem gleitenden Durchschnitt Filter Ergebnisse werden in der Spalte Vektor zurückgegeben yy Die Standard-Spanne für den gleitenden Durchschnitt ist 5.29 September, 2013.Moving Durchschnitt durch Faltung. Was Ist gleitend Durchschnitt und was ist es gut für. Wie bewegt sich die Mittelung durch die Verwendung von Faltung durchgeführt. Moving Durchschnitt ist eine einfache Operation verwendet in der Regel zu unterdrücken Rauschen eines Signals setzen wir den Wert jedes Punktes auf den Durchschnitt der Werte in seiner Nachbarschaft By A formula. Hier x ist 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 die Proben von beiden Seiten des tatsächlichen Punktes genommen werden. Below ist ein Echtes Leben Beispiel Der Punkt, an dem das Fenster tatsächlich gelegt wird, ist rot Werte außerhalb von x sollen Nullen sein. Um herumzuspielen und die Effekte des gleitenden Durchschnitts zu sehen, schau doch mal diese interaktive Demonstration an. Wie es durch Faltung zu tun ist Du kannst ha Erkannt, die Berechnung der einfachen gleitenden Durchschnitt ist ähnlich wie die Faltung in beiden Fällen ein Fenster wird entlang des Signals verschoben und die Elemente im Fenster sind zusammengefasst Also, geben Sie es versuchen, das Gleiche tun, indem Sie Faltung 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 ausfüllen. Die Ausgabe ist genau dreimal größer als die erwartete Es kann auch gesehen werden, dass die Ausgangswerte die Zusammenfassung von sind Die drei Elemente im Fenster Es ist, weil während der Faltung das Fenster entlang geschoben 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, wird die Ausgabe durch 3.By eine Formel einschließlich der Division geteilt. Aber wäre es nicht optimal, die Division während der Faltung zu machen Hier kommt die Idee von Um die Gleichung neu zu ordnen. So werden wir den folgenden k Kernel verwenden. Auf diese Weise erhalten wir die gewünschte Ausgabe. Im Allgemeinen, wenn wir gleitenden Durchschnitt durch Faltung mit einer Fenstergröße von w wollen, werden wir den folgenden k kernel verwenden. Einfach Funktion, die den gleitenden Durchschnitt durchführt. Ein Beispiel ist der Gebrauch.
Comments
Post a Comment