Learn R Programming

signal (version 0.5)

sgolayfilt: Apply a Savitsky-Golay smoothing filter

Description

Smooth data with a Savitsky-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, \ldots)

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
# 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