Overload List
| # | Signature | Description |
|---|---|---|
| 1 | void SavGolayImpulse(TMtx *H, TMtx *Diff, int FrameSize, int Order, TVec *Weights = null); | Design a Savitzky-Golay polynomial smoothing filter. |
| 2 | void SavGolayImpulse(TVec *H, int FrameSize, int Order, TVec *Weights = null); | The resulting H vector contains FIR type impulse response, which can be passed to the FirInit routine. |
Overload 1: void SavGolayImpulse(TMtx *H, TMtx *Diff, int FrameSize, int Order, TVec *Weights = null);
Design a Savitzky-Golay polynomial smoothing filter.
Compute a Savitzky-Golay polynomial smoothing filter: a polynomial of degree Order is least-squares fitted to each FrameSize-long window of the signal. H is sized FrameSize x FrameSize; row i holds the filter producing the fitted value at window position i. Only the center row of H is used for filtering the signal interior, the upper and lower rows of H are applied to the transition regions where the signal starts and stops (see SignalUtils::SavGolayFilter). Diff is sized (Order+1) x FrameSize; row k recovers the coefficient of x^k of the fitted polynomial, with x counted in samples relative to the window center, so row 1 is the first-derivative filter.
Weights, when assigned, must hold FrameSize strictly positive values and the fit minimizes the weighted sum of squares; H is then not symmetric. An exception is raised if FrameSize is not odd, if Order is not in [0, FrameSize-1], or if Weights are present with wrong length, non-positive values or a precision different from H. The computation runs in the precision of H.
Overload 2: void SavGolayImpulse(TVec *H, int FrameSize, int Order, TVec *Weights = null);
The resulting H vector contains FIR type impulse response, which can be passed to the FirInit routine.
Returns the center row of the Savitzky-Golay smoothing matrix: the FIR filter fitting a polynomial of degree Order to each FrameSize-long window and evaluating it at the window center. Optional Weights (FrameSize strictly positive values, same precision as H) select a weighted least-squares fit.