SGOLAYFILT

Purpose:

Filters a series with a Savitzky-Golay smoothing filter.

Syntax:

SGOLAYFILT(x, d, N, w)

x

-

A series, the input series to smooth.

d

-

Optional. An integer or array. If an integer, the Savitzky-Golay polynomial degree. If an array, the explicit Savitzky-Golay coefficients. Defaults to the integer 3, design and process a 3rd order filter.

N

-

Optional. An integer, the number of points for the smoothing window. Defaults to d + 2 if d is odd, else d + 3.

w

-

Optional. A series of length N, the weighting factors. Defaults to all ones.

Returns:

A series, the result of filtering the input data with the smoothing filter.

Example:

W1: gsweep(1000, 1/1000, 1, 50) + gnorm(1000, 1/1000)/5

W2: sgolayfilt(w1)

W3: linavg(w1, 10)

W4: w2;overp(w3, lred)

 

W1 contains 1000 samples of a noisy swept sinewave from 1 Hz to 50Hz.

W2 filters the data in W1 with a 3rd order 5 point Savitzky-Golay filter.

W3 filters the data in W1 with a 10 point zero phase moving average.

W4 graphically compares the two results. The Savitzky-Golay filter more accurately preserves the peak heights of the high frequency oscillations of the input data.

Example:

W1: gsweep(1000, 1/1000, 1, 50) + gnorm(1000, 1/1000)/5

W2: sgolayfilt(w1, 3, 11)

W3: linavg(w1, 10)

W4: w2;overp(w3, lred)

 

Same as above except a 3rd order 11 point Savitzky-Golay filter is used.

Example:

W1: gsweep(1000, 1/1000, 1, 50) + gnorm(1000, 1/1000)/5

W2: linavg(w1, 10)

W3: sgolay(3, 11)

W4: sgolayfilt(w1, w3);overp(w2, lred)

 

Similar to above except the Savitzky-Golay filter coefficients are given as an explicit input array.

Remarks:

Savitzky-Golay filters perform data smoothing and preserve peak resolution by least squares fitting a d order polynomial to an N point sliding window. The data window, N, should be an odd value.

 

If the filter coefficients are explicit, the window length N and weights w are ignored if provided.

 

See SGOLAY to generate explicit Savitzky-Golay coefficients.

See Also:

CONV

FILTEQ

LINAVG

MOVAVG

SGOLAY