moving_median¶
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.
- rvMedian = moving_median(rvY, nNeighbor)
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
rvY ist das zu glättende Signal.
- nNeighbor
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