Apply a Savitzky-Golay smoothing filter
Smooth data with a Savitzky-Golay smoothing filter.
sgolayfilt(x, p = 3, n = p + 3 - p%%2, m = 0, ts = 1) ## S3 method for class 'sgolayFilter' filter(filt, x, ...)
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 |
... |
additional arguments (ignored). |
These filters are particularly good at preserving lineshape while removing high frequency squiggles.
The filtered signal, of length(x)
.
Original Octave version by Paul Kienzle pkienzle@users.sf.net. Modified by Pascal Dupuis. Conversion to R by Tom Short.
Octave Forge http://octave.sf.net
# 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
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.