sgolayfilt: Apply a Savitzky-Golay smoothing filter

Description Usage Arguments Details Value Author(s) References See Also Examples

View source: R/sgolayfilt.R

Description

Smooth data with a Savitzky-Golay smoothing filter.

Usage

1
2
3
4
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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# 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

Example output

Attaching package: 'signal'

The following objects are masked from 'package:stats':

    filter, poly

signal documentation built on May 25, 2021, 9:06 a.m.

Related to sgolayfilt in signal...