Learn R Programming

signal (version 1.8-0)

sgolay: Savitzky-Golay smoothing filters

Description

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

Usage

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

Value

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

Arguments

p

filter order.

n

filter length (must be odd).

m

return the m-th derivative of the filter coefficients.

ts

time scaling factor.

Author

Original Octave version by Paul Kienzle pkienzle@users.sf.net. Modified by Pascal Dupuis. Conversion to R by Tom Short.

Details

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.

References

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 https://octave.sourceforge.io/

See Also

sgolayfilt, filter