signal (version 0.7-6)

sgolayfilt: Apply a Savitzky-Golay smoothing filter

Description

Smooth data with a Savitzky-Golay smoothing filter.

Usage

sgolayfilt(x, p = 3, n = p + 3 - p%%2, m = 0, ts = 1)

# S3 method for sgolayFilter filter(filt, x, …)

Arguments

x

signal to be filtered.

p

filter order.

n

filter length (must be odd).

m

return the m-th derivative of the filter coefficients.

ts

time scaling factor.

filt

filter characteristics (normally generated by sgolay).

additional arguments (ignored).

Value

The filtered signal, of length(x).

Details

These filters are particularly good at preserving lineshape while removing high frequency squiggles.

References

Octave Forge http://octave.sf.net

See Also

sgolay, filter

Examples

Run this code
# NOT RUN {
# Compare a 5 sample averager, an order-5 butterworth lowpass
# filter (cutoff 1/3) and sgolayfilt(x, 3, 5), the best cubic
# estimated from 5 points.
bf <- butter(5,1/3)
x <- c(rep(0,15), rep(10, 10), rep(0, 15))
sg <- sgolayfilt(x)
plot(sg, type="l")
lines(filtfilt(rep(1, 5)/5,1,x), col = "red") # averaging filter
lines(filtfilt(bf,x), col = "blue")           # butterworth
points(x, pch = "x")                          # original data
# }

Run the code above in your browser using DataLab