## Documentation Center |

Savitzky-Golay filter design

`b = sgolay(k,f)b = sgolay(k,f,w)[b,g] = sgolay(...)`

`b = sgolay(k,f)` designs
a Savitzky-Golay FIR smoothing filter `b`. The polynomial
order `k` must be less than the frame size, `f`,
which must be odd. If `k` = `f-1`,
the designed filter produces no smoothing. The output, `b`,
is an `f`-by-`f` matrix whose rows
represent the time-varying FIR filter coefficients. In a smoothing
filter implementation (for example, `sgolayfilt`),
the last `(f-1)/2` rows (each an FIR filter) are
applied to the signal during the startup transient, and the first `(f-1)/2` rows
are applied to the signal during the terminal transient. The center
row is applied to the signal in the steady state.

`b = sgolay(k,f,w)` specifies
a weighting vector `w` with length `f`,
which contains the real, positive-valued weights to be used during
the least-squares minimization.

`[b,g] = sgolay(...)` returns
the matrix `g` of differentiation filters. Each column
of `g` is a differentiation filter for derivatives
of order `p`-1 where `p` is the
column index. Given a signal `x` of length `f`,
you can find an estimate of the `p`^{th} order
derivative, `xp`, of its middle value from:

xp((f+1)/2) = (factorial(p)) * g(:,p+1)' * x

[1] Orfanidis, Sophocles J. *Introduction
to Signal Processing*. Englewood Cliffs, NJ: Prentice Hall,
1996.

`filter` | `fir1` | `firls` | `sgolayfilt`

Was this topic helpful?