Title: | Efficient Savitzky-Golay Filtering |
---|---|
Description: | Smoothing signals and computing their derivatives is a common requirement in signal processing workflows. Savitzky-Golay filters are a established method able to do both (Savitzky and Golay, 1964 <doi:10.1021/ac60214a047>). This package implements one dimensional Savitzky-Golay filters that can be applied to vectors and matrices (either row-wise or column-wise). Vectorization and memory allocations have been profiled to reduce computational fingerprint. Short filter lengths are implemented in the direct space, while longer filters are implemented in frequency space, using a Fast Fourier Transform (FFT). |
Authors: | Sergio Oller Moreno [aut, cre] , Robert Gentleman [ctb, cph] (Contributor to src/stats_filter.c and src/fft.c (derived from the stats R package)), Ross Ihaka [ctb, cph] (Contributor to src/stats_filter.c and src/fft.c (derived from the stats R package)), Brian Ripley [ctb, cph] (Contributor to src/stats_filter.c and src/fft.c (derived from the stats R package)), Martin Maechler [ctb, cph] (Contributor to src/stats_filter.c and src/fft.c (derived from the stats R package)), Duncan Murdoch [ctb, cph] (Contributor to src/stats_filter.c and src/fft.c (derived from the stats R package)), Institute for Bioengineering of Catalonia [cph] |
Maintainer: | Sergio Oller Moreno <[email protected]> |
License: | GPL (>= 2) |
Version: | 1.0.3 |
Built: | 2024-11-07 02:40:09 UTC |
Source: | https://github.com/zeehio/sgolay |
Smooth data or compute its derivatives with a Savitzky-Golay smoothing filter.
sgolayfilt( x, p = 3, n = p + 3 - p%%2, m = 0, ts = 1, rowwise = FALSE, engine = c("auto", "fft", "filter") )
sgolayfilt( x, p = 3, n = p + 3 - p%%2, m = 0, ts = 1, rowwise = FALSE, engine = c("auto", "fft", "filter") )
x |
A numeric matrix or vector |
p |
filter order. |
n |
filter length (must be odd). |
m |
return the m-th derivative of the filter coefficients. |
ts |
time scaling factor. |
rowwise |
If |
engine |
How is the filter applied. This parameter impacts the performance, but not the results.
"auto" will select automatically an efficient engine. |
A matrix or vector of the same dimensions or length as x
, with the result of the filter
x <- runif(300) y <- sgolayfilt(x, p=2, n = 21)
x <- runif(300) y <- sgolayfilt(x, p=2, n = 21)