# sgolayfilt: Apply a Savitzky-Golay smoothing filter In signal: Signal Processing

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

`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.