sgolay: Savitzky-Golay smoothing filters

View source: R/sgolay.R

sgolayR Documentation

Savitzky-Golay smoothing filters


Computes the filter coefficients for all Savitzky-Golay smoothing filters.


sgolay(p, n, m = 0, ts = 1)



filter order.


filter length (must be odd).


return the m-th derivative of the filter coefficients.


time scaling factor.


The early rows of the result F smooth based on future values and later rows smooth based on past values, with the middle row using half future and half past. In particular, you can use row i to estimate x[k] based on the i-1 preceding values and the n-i following values of x values as y[k] = F[i,] * x[(k-i+1):(k+n-i)].

Normally, you would apply the first (n-1)/2 rows to the first k points of the vector, the last k rows to the last k points of the vector and middle row to the remainder, but for example if you were running on a realtime system where you wanted to smooth based on the all the data collected up to the current time, with a lag of five samples, you could apply just the filter on row n-5 to your window of length n each time you added a new sample.


An square matrix with dimensions length(n) that is of class 'sgolayFilter' (so it can be used with filter).


Original Octave version by Paul Kienzle Modified by Pascal Dupuis. Conversion to R by Tom Short.


William H. Press, Saul A. Teukolsky, William T. Vetterling, Brian P. Flannery, Numerical Recipes in C: The Art of Scientific Computing , 2nd edition, Cambridge Univ. Press, N.Y., 1992.

Octave Forge

See Also

sgolayfilt, filter

signal documentation built on June 26, 2024, 9:06 a.m.

Related to sgolay in signal...