# AVGFILT

## Purpose:

Filters a series using the average of the N neighboring points.

## Syntax:

AVGFILT(series, N, gval, lval)

 series - An input series or table. N - Optional. An integer, the number of neighbors to average. For point i, average points i-N through i+N exclusive of point i. Defaults to 1, i.e. for point i, average points i-1 and i+1 gval - Optional. A real, the "greater than" threshold at which to replace a point. Point i is replaced if: point[i] > gval * current average[i]. Defaults to 1.0, i.e. replace each point if it is greater than the average of the neighbors. lval - Optional. A real, the "less than" threshold at which to replace a point. Point i is replaced if: point[i] < lval * current average[i]. Defaults to unspecified, i.e. do not use a "lesser than" threshold.

A series.

## Example:

W1: gnorm(100,.01)

W2: avgfilt(W1)

replaces each point of W1 with the average of the previous and next point if it exceeds the average.

## Example:

W3: avgfilt(W1, 2)

replaces each point of W1 with the average of the two previous and two next points if it exceeds the average.

## Example:

W3: avgfilt(W1, 1, 1.2)

replaces each point of W1 with the average of the previous and next point if it exceeds the average by 20%.

## Example:

W4: avgfilt(W1, 1, 1.2, 1.3)

replaces each point of W1 with the average of the previous and next point if it exceeds the average by 20% or is less than the average by 30%.

## Example:

W5: avgfilt(W1, 1, 0, 0)

replaces each point of W1 with the average of the previous and next point unconditionally.

## Example:

W6: -avgfilt(-W1, 1, 1.2)

replaces each point of W1 with the average of the previous and next point if it is less than the average by 20%.

## Remarks:

AVGFILT uses the convolution function to calculate the neighbor averages. For N == 1, the kernel is simply: {1, 0, 1} / 2

See BLOCKAVG to compute a simple N point non-overlapping moving average.