Tuesday 10 January 2017

Wie Man Einen Gleitenden Durchschnitt In Matlab Macht

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: 41078 Moving Average In Matlab Oft finde ich die Notwendigkeit, die Daten zu mitteln, die ich habe, um das Rauschen etwas zu reduzieren Bit. 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 in Azimuth. Ich muss einen gleitenden Durchschnitt über eine Datenreihe berechnen, innerhalb einer for-Schleife. Ich muss den gleitenden Durchschnitt über N9 Tage erhalten. Das Array Im-Berechnen ist 4 Reihe 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 einem Diagramm darstellen. Ich googeln ein wenig über gleitende Durchschnitte und den conv Befehl und fand etwas, das ich versuchte, in meinem Code umzusetzen: So grundsätzlich berechne ich meinen Durchschnitt und plot ihn mit einem (falschen) gleitenden Durchschnitt. Ich wählte die wts Wert direkt an der Mathworks-Website, so dass ist falsch. (Quelle: mathworks. nlhelpeconmoving-average-trend-estimation. html) Mein Problem aber ist, dass ich nicht verstehe, was dieses 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 völlig falsch mache, könnte ich etwas Hilfe dabei haben Mein aufrichtigster Dank. Die Verwendung von 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 ahnen). Die Summe dieses Vektors sollte immer gleich Eins sein. Wenn Sie möchten, dass jeder Wert gleichmäßig Gewicht und eine Größe N bewegte Filter dann möchten Sie tun Mit dem gültigen Argument in conv wird mit weniger Werten in Ms, als Sie haben in M. Verwenden Sie, wenn Sie dont die Auswirkungen von Nullpolsterung. Wenn Sie die Signalverarbeitung Toolbox haben, können Sie cconv verwenden, wenn Sie einen kreisförmigen gleitenden Durchschnitt ausprobieren möchten. Etwas wie Sie sollten die conv und cconv Dokumentation für weitere Informationen lesen, wenn Sie havent bereits.29 September, 2013 Moving Durchschnitt durch Convolution Was ist gleitend Durchschnitt und was ist es gut für Wie ist die gleitende Mittelung durch Faltung durchgeführt Moving Average ist eine einfache Operation Um das Rauschen eines Signals zu unterdrücken: Wir setzen den Wert jedes Punktes auf den Mittelwert der Werte in seiner Nachbarschaft. Nach einer Formel: Hier ist x die Eingabe und y das Ausgangssignal, während die Größe des Fensters w ist, die ungerade sein soll. Die obige Formel beschreibt eine symmetrische Operation: Die Proben werden von beiden Seiten des aktuellen Punktes genommen. Unten ist ein Beispiel aus dem wirklichen Leben. Der Punkt, auf dem das Fenster gelegt wird, ist tatsächlich rot. Werte außerhalb x sind Nullen: Um zu spielen und sehen die Auswirkungen der gleitenden Durchschnitt, werfen Sie einen Blick auf diese interaktive Demonstration. Wie man es durch Faltung erkennt Wie Sie vielleicht erkannt haben, ist die Berechnung des einfachen gleitenden Mittels ähnlich der Faltung: In beiden Fällen wird ein Fenster entlang des Signals geschoben und die Elemente im Fenster zusammengefasst. Also, geben Sie ihm einen Versuch, die gleiche Sache zu tun, indem Sie Faltung. Verwenden Sie die folgenden Parameter: Die gewünschte Ausgabe ist: Als erster Ansatz versuchen wir, was wir durch Faltung des x-Signals durch den folgenden k-Kernel erreichen: Der Ausgang ist genau dreimal größer als erwartet. Es ist auch ersichtlich, dass die Ausgabewerte die Zusammenfassung der drei Elemente im Fenster sind. 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 geteilt: Durch eine Formel mit der Teilung: Aber wäre es nicht optimal, die Teilung während der Konvolution zu machen Hier kommt die Idee, indem wir die Gleichung umordnen: So werden wir den folgenden k Kernel verwenden: Auf diese Weise werden wir Erhalten Sie die gewünschte Ausgabe: Im Allgemeinen: wenn wir gleitenden Durchschnitt durch Faltung mit einer Fenstergröße von w machen wollen. Verwenden wir den folgenden k-Kernel: Eine einfache Funktion, die den gleitenden Durchschnitt ausführt, ist: Eine Beispielnutzung ist:


No comments:

Post a Comment