sgolayfilt¶
sgolayfilt berechnet einen gleitenden Mittelwert mit dem Savitzky-Golay-Verfahren.
- rvY2 = sgolayfilt(rvY1)
- rvY2 = sgolayfilt(rvY1, p)
- rvY2 = sgolayfilt(rvY1, p, nNeighbor)
Returnwert
rvY2 ist der Ergebnisvektor.
Parameter
- rvY1
rvY1 ist ein reeller Vektor mit mindstens p x-Koordinaten.
- p
p ist der Grad des Ausgleichspolynoms (1 .. 10, Default-Wert = 3).
- nNeighbor
nNeighbor ist die halbe Fensterbreite. Die gesamte Fensterbreite ist
nNeighbor * 2 + 1
. (Default-Wert = 20).
Beispiel
def test_sgolay()
{
N = 200;
t = linspace(0, 10, N);
s = sin(2*PI/5*t);
srand(1);
sr = s + 0.3 * (rand(size(t))-0.5);
// Sinus
h = plot(t, s);
XYSetProps(h[3], "curve-color='black'")
XYSetLegendText(h[3], "sinus");
// sin+rand
h = plot(t, sr, h[2]);
XYSetProps(h[3], "curve-color='blue'")
XYSetLegendText(h[3], "sinus+random");
y = moving_average(sr, 10)
h = plot(t, y, h[2]);
XYSetProps(h[3], "curve-color='red'")
XYSetLegendText(h[3], "moving average (smooth())");
// smooth(sin+rand)
y = sgolayfilt(sr, 3, 20);
h = plot(t, y, h[2]);
XYSetProps(h[3], "curve-color='green'")
XYSetLegendText(h[3], "Savitzky-Golay Filter");
}
History
Version |
Beschreibung |
---|---|
5.8.0 |
Neu. |
Siehe auch
Überblick Mathematik, pspline, fspline, akimaspline, interpol, moving_average
id-931091