Savitzky-Golay Smoothing
Polynomial filtering method of Savitzky and Golay.
savgol(T, fl, forder = 4, dorder = 0)
T |
Vector of signals to be filtered. |
fl |
Filter length (for instance fl = 51..151), has to be odd. |
forder |
Filter order (2 = quadratic filter, 4 = quartic). |
dorder |
Derivative order (0 = smoothing, 1 = first derivative, etc.). |
Savitzky-Golay smoothing performs a local polynomial regression on a series of values which are treated as being equally spaced to determine the smoothed value for each point. Methods are also provided for calculating derivatives.
Vector representing the smoothed time series.
For derivatives T2 has to be divided by the step size to the order
(and to be multiplied by k! — the sign appears to be wrong).
Peter Riegler implemented a Matlab version in 2001. Based on this, Hans W. Borchers published an R version in 2003.
See Numerical Recipes, 1992, Chapter 14.8, for details.
RTisean::sav_gol
, signal::sgolayfilt
, whittaker
.
# *** Sinosoid test function *** ts <- sin(2*pi*(1:1000)/200) t1 <- ts + rnorm(1000)/10 t2 <- savgol(t1, 51) ## Not run: plot( 1:1000, t1, col = "grey") lines(1:1000, ts, col = "blue") lines(1:1000, t2, col = "red") ## End(Not run)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.