# EXPMOVAVG

## Purpose:

Computes the exponential moving average.

## Syntax:

EXPMOVAVG(series,
a, yi)

series |
- |
A series or table. |

a |
- |
Optional. A real, the smoothing factor where
0 <= **a** <= 1.
Defaults to 1.0, no averaging. |

yi |
- |
Optional. A real, the initial value. Defaults
to **series[1]**, the first input
value. |

##

## Alternate Syntax:

EXPMOVAVG(series, N, yi)

series |
- |
A series or table. |

N |
- |
Optional. An integer, the effective number
of points to average where **N**
>= 1. Defaults to 1, no averaging. |

yi |
- |
Optional. A real, the initial value. Defaults
to **series[1]**, the first input
value. |

## Returns:

A series, the exponential moving average.

## Example:

W1: 1..5

W2: expmovavg(w1, 0.5)

W2 == {1.0, 1.5, 2.25, 3.125, 4.0625}

The XOFFSET of the result is 1.0.

## Example:

W1: 1..5

W2: expmovavg(w1, 3)

W2 == {1.0, 1.5, 2.25, 3.125, 4.0625}

Same as above except the smoothing factor is in the form of the effective
number of points to smooth. The effective number of points, **N**
is related to **a**, the smoothing
factor by:

*N* = (2 / *a*)
- 1

## Example:

W1: integ(gnorm(1000, 1/100))

W2: expmovavg(w1, 0.7)

W3: expmovavg(w1, 0.1)

W1 contains 1000
samples of synthesized data.

W2 performs a standard
exponential moving average with a
smoothing factor of 0.7.

W3 performs a standard
exponential moving average by with
a smoothing factor of 0.1.

The degree of smoothing is increased as
the smoothing factor approaches 0.0.
The degree of smoothing is decreased as the smoothing factor approaches
1.0.

## Remarks:

EXPMOVAVG computes the exponential moving
average with a smoothing factor using the following difference equation:

y[n] = a x[n] +
(1 - a)
y[n -
1]

where **a** is the smoothing factor
for 0 <= **a** <= 1. The smoothing
effect decreases as **a** approaches
1, with no smoothing for **a **= 1.0.

EXPMOVAVG uses FILTEQ
to implement the difference equation.

By default, *y*[0] =
*yi*
= *x*[1].

The effective number of points to average,
**N**, is related to the smoothing
factor **a**, by:

*N* = (2 / *a*)
- 1

where **N**
is similar to the number of points to average as with the standard moving
average. If the smoothing parameter of EXPMOVAVG is an integer greater
or equal to 1, it is assumed to be the effective number of points as determined
above.

See LINEXPAVG
to compute an exponential moving average with zero phase shift to preserve
peak locations.

## See Also:

AVGFILT

EXPFIT

FILTEQ

LINEXPAVG

MOVAVG