Friday 27 January 2017

2d Moving Average Filter Matlab

Ich muss einen gleitenden Durchschnitt über eine Datenreihe innerhalb einer for-Schleife berechnen. 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 jeden Wert gleichmäßig gewichten und eine Größe N bewegten Filter dann tun möchten, würden Sie tun möchten Mit dem gültigen Argument in conv wird mit weniger Werten in Ms, als Sie in M ​​haben. Verwenden Sie diese, 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. 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 in dem Spaltenvektor Y unter Verwendung eines gleitenden Durchschnittsfilters. Die Ergebnisse werden im Spaltenvektor yy zurückgegeben. Die voreingestellte Spanne für den gleitenden Durchschnitt ist 5.Created 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: 41128 Moving Average In Matlab Ich finde mich in der Notwendigkeit der Mittelung Die Daten habe ich, um das Rauschen ein wenig zu 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. Um den Filter anzuwenden, können wir einfach Folgendes sagen: 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. Moving Durchschnittliche Funktion resultmovingmean (Daten, Fenster, Dim, Option) berechnet einen zentrierten gleitenden Durchschnitt der Datenmatrixdaten unter Verwendung einer Fenstergröße, die im Fenster in dim Dimension angegeben ist Der in der Option angegebene Algorithmus. Dim und Option sind optionale Eingänge und werden standardmäßig auf 1. Dim und option optionale Eingänge können ganz übersprungen werden oder können durch a ersetzt werden. Beispielsweise gibt movingmean (data, window) die gleichen Ergebnisse wie movingmean (data, window, 1,1) oder movingmean (data, window ,, 1). Die Größe und Dimension der Eingabedatenmatrix ist nur durch die maximale Matrixgröße für Ihre Plattform begrenzt. Das Fenster muss eine ganze Zahl sein und sollte ungerade sein. Wenn das Fenster gerade ist, wird es auf die nächstniedrigere ungerade Zahl abgerundet. Funktion berechnet den gleitenden Durchschnitt mit einem Mittelpunkt und (Fenster-1) 2 Elementen vor und nach der angegebenen Dimension. An den Rändern der Matrix wird die Anzahl der Elemente vor oder nachher reduziert, so dass die tatsächliche Fenstergröße kleiner als das angegebene Fenster ist. Die Funktion ist in zwei Teile, ein 1d-2d-Algorithmus und ein 3D-Algorithmus gebrochen. Dies wurde getan, um die Lösungsgeschwindigkeit zu optimieren, insbesondere in kleineren Matrizen (d. H. 1000 x 1). Ferner werden mehrere verschiedene Algorithmen für das Problem 1d-2d und 3d bereitgestellt, da in bestimmten Fällen der Standardalgorithmus nicht der schnellste ist. Dies geschieht typischerweise, wenn die Matrix sehr breit ist (d. h. 100 x 100000 oder 10 x 1000 x 1000), und der gleitende Durchschnitt wird in der kürzeren Dimension berechnet. Die Größe, bei der der Standardalgorithmus langsamer ist, hängt vom Computer ab. MATLAB 7.8 (R2009a) Tags für Diese Datei Bitte anmelden, um Tags zu speichern. Bitte melden Sie sich an, um einen Kommentar oder eine Bewertung hinzuzufügen. Kommentare und Bewertungen (8) Die Funktion befasst sich mit Enden, indem sie den nachlaufenden oder führenden Teil des Fensters beschneiden und zu einem anfänglichen oder nachlaufenden gleitenden Durchschnitt anstelle eines zentrierten Bildes übergehen. Um mit dem Beispiel zu gehen, das Sie in Ihrem Kommentar gegeben haben, wenn die Fenstergröße 3 ist, dann in einer Mitte von 1 die Funktion Mittelwerte von Daten von den Punkten 1 und 2 an einer Mitte von 2 Punkten 1, 2 und 3 werden in einer Mitte von 9 gemittelt Die Punkte 8, 9 und 10 werden gemittelt und in einer Mitte von 10 (angenommen, der Vektor hat 10 Einträge) werden die Punkte 9 und 10 gemittelt. Wie bewegt sich movingmean mit den Enden? Fängt es mit einer Fenstergröße an, die nur Punkt 1 bei 1, dann 3 Punkte bei Punkt 2, dann Erhöhung in Fenstergröße bis die Fenstergröße ist, die in der Funktionseingabe spezifiziert ist, beginnen Danke. Nett und einfach. Vielen Dank. Gute Arbeit Sehr nützlich, wie Stephan Wolf sagte. Gerade was ich lookin für war. Zentrierter gleitender Durchschnitt, der in der Lage ist, in einem Diagramm über die gesamte Breite zu arbeiten, ohne die Fenstergröße des Filters zu betrachten und den Anfang zu bewegen. Große Beschleunigung der Geschwindigkeit der Ingenieur-und Wissenschaft MathWorks ist der führende Entwickler der mathematischen Computing-Software für Ingenieure und Wissenschaftler.


No comments:

Post a Comment