Die Funktion moving_median berechnet einen gleitenden Median für das gegebene Signal. Die Funktion kann zum Glätten eines Signals und zum Entfernen von Ausreißern verwendet werden.
Returnwert
rvMedian ist das geglättete Signal. Das Signal hat die gleiche Länge wie rvY. Am Anfang und Ende des Signals werden entsprechend weniger Datenpunkte bei der Mittelwertbildung berücksichtigt.
Parameter
rvY ist das zu glättende Signal.
nNeighbor ist die Fensterbreite. 3 <= nNeighbor <= 1025. Gerade Werte werden auf die nächst größe ungerade ganze Zahl aufgerundet.
Beispiel
Im folgenden Beispiel werden 5 aufeinander folgende Punkte aufsteigend sortiert. Der dritte Wert wird nach rvOut geschrieben. Bei einer Fensterbreite von 5 Punkten werden die ersten zwei Punkte und die letzten zwei Punkte von rvIn unverändert nach rvOut geschrieben. Der erste berechnete Punkt ist der dritte Wert in rvOut. [4,5,6,7,27] -> 6, [4,6,7,8,27] -> 7, usw.
rvIn = [5, 7, 6, 4, 27, 8, 4, 5]
rvOut = moving_median(rvIn, 5)
rvOut -> [5, 7, 6, 7, 6, 8, 4, 5]
x = linspace(0, 2*PI, 1000)
y = sin(x) + rand(1, 1000) * 0.1
yy = moving_median(y, 11);
h = plot(x, y);
XYSetProps(h[3], "curve_color = 'blue'");
h = plot(x, yy, h[2]);
XYSetProps(h[3], "curve_color = 'red'");
History
| Version | Beschreibung |
|---|---|
| 5.14.9 | Neu. |
Siehe auch
Überblick Mathematik, moving_average, fspline, pspline, akimaspline, sgolayfilt
id-244162