# ACORR

## Purpose:

Calculates the auto-correlation using the convolution method.

## Syntax:

ACORR(series, norm)

series

-

A series or array.

norm

-

Optional. An integer, the normalization method:

 0: None (default) 1: Unity (-1 to 1) 2: Biased 3: Unbiased

A series.

## Example:

W1: gsin(1000, .001, 4)

W3: acorr(W1)

performs the auto-correlation of a sine wave. The peaks of the result indicate the series is very similar to itself at the time intervals where the peaks occur, i.e. the series is periodic.

## Example:

W1: gsin(1000, .001, 4)

W2: gnorm(1000, .001)

W3: acorr(W1, 1)

W4: acorr(W2, 1)

W3 displays the auto-correlation of a sine wave normalized to -1 and 1. W4 shows the normalized auto-correlation of random noise.

The normalized maximum of both results is 1.0 at time t = 0, indicating the expected perfect correlation at time t = 0 (true for all series).

The series of W4 displays only one distinct peak at t = 0, indicating that W2 is not correlated with itself and is non-periodic.

Both series display a triangular envelope due to the assumption that the input series is zero before the first sample and after the last sample.

## Remarks:

The auto-correlation for a random process is defined as:

where E is the expected value operator, x[n] is a stationary random process and * indicates complex conjugate. In practice, the auto-correlation is estimated because only a finite sample of an infinite duration random process is available. The estimate of the auto-correlation function for a series of length N is defined as:

ACORR performs correlation by computing the direct convolution of the input series.

The output length L is:

L = 2 * length(s) - 1

The zeroth lag component is the mid point of the series.

The BIASED normalization divides the result by N, the length of the input series.

The UNBIASED normalization divides the result by

N - abs(N - i - 1) + 1

where i is the index of the result with a start value of 1. For a 0 start index, the unbiased estimate becomes:

The auto-correlation is used to determine how similar a series is to itself or if a series is periodic.

See FACORR for the frequency domain implementation.

See ACOV to remove the mean from the input series before calculating the auto-correlation.