signal (version 0.7-6)

sgolay: Savitzky-Golay smoothing filters

Description

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

Usage

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

Arguments

p

filter order.

n

filter length (must be odd).

m

return the m-th derivative of the filter coefficients.

ts

time scaling factor.

Value

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

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 http://octave.sf.net

See Also

sgolayfilt, filter