The Autocorrelation block calculates the autocorrelation on the first dimension of the input n-dimensional array. The calculation can be performed in time or frequency domain.
The method of autocorrelation calculation in time domain is implemented - the input signal is correlated with its complex conjugate reversed in time.
You can specify the maximum delay for autocorrelation using the Compute all non-negative lags and Maximum non-negative lag (less than input length) parameters.
Ports
Input
Port_1 - data input vector | matrix
Data input. The unit accepts multichannel and multidimensional input data with real or complex value.
Port_1 - autocorrelated output signal vector | matrix
Output signal that contains autocorrelation of input data.
When the input is a matrix of dimension M by N, the output is a matrix of dimension l+1 by N. - is the maximum positive delay for the autocorrelation.
When the input is an n-dimensional array, the block outputs an n-dimensional array. The size of the first dimension is l+1, and the sizes of all other dimensions are the same as the sizes of the input array. For example, when the input signal is an M by N by P array, the block outputs an l+1 by N by P array.
Data types:Float64.
Support for complex numbers: Yes
Parameters
Main
Compute all non-negative lags - calculation of autocorrelation on all non-negative delays On (by default) | Off
When checked, the Autocorrelation block calculates autocorrelation for all non-negative lags in the range [0, length(input) - 1].
When unchecked, the block calculates autocorrelation using delays in the range [0, l], where l is the value specified for the Maximum non-negative lag (less than input length) parameter.
Maximum non-negative lag (less than input length) is the maximum positive delay 1 (by default) | Integer greater than or equal to 0 and less than input length.
Maximum positive delay for autocorrelation, specified as an integer greater than or equal to zero and less than input length.
Dependencies
To use this parameter, uncheck Compute all non-negative lags.
Scaling - output data scaling None (By default) | Biased | Unbiased | Unity at zero-lag.
The scaling applied to the output data.
None - generates raw autocorrelation without normalisation.
Biased - generates a biased autocorrelation estimate.
Unity at zero-lag - normalises the autocorrelation estimate for each channel so that the zero-lag sum, the first element in each column, is identical to 1.
Read More
Autocorrelation
Autocorrelation is the correlation of a signal with itself at different points in time.
For a deterministic discrete-time sequence (), autocorrelation is calculated using the following relationship:
,
where is the delay and denotes the complex conjugation. If the input signal is a realisation of a wide-sense stationary (WSS) random process of length , is an estimate of the theoretical autocorrelation:
,
where
- is the expectation operator.
The `Unity at zero-lag' normalisation divides each sequence value by the autocorrelation or an estimate of the autocorrelation at zero-lag.
The most commonly used estimate of the theoretical autocorrelation of a WSS random process is the bias estimate:
ρ.
Algorithms
A sequence of autocorrelation samples (or values) is calculated using this equation:
- the element with zero delay in -th column of the input data.
- lag index.
- input data column index.
- complex conjugation.
- number of elements in each column.
- maximum positive delay for autocorrelation.
When you choose to compute autocorrelation with all non-negative delays, . Otherwise, is the maximum specified value of a non-negative integer.