sgolayfilt {signal}R Documentation

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 class '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).

Details

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

Value

The filtered signal, of length(x).

Author(s)

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

References

Octave Forge https://octave.sourceforge.io/

See Also

sgolay, filter

Examples

# 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

[Package signal version 1.8-1 Index]