Block Autocorrelation calculates the autocorrelation from the first dimension of the input n-dimensional array. The calculation can be performed in the time or frequency domain.
A method for calculating autocorrelation in the 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
Entrance
Port_1 — data entry vector | the matrix
Data entry. The block accepts multi-channel and multidimensional input data with a real or complex value.
Port_1 — autocorrelated output signal vector | the matrix
An output signal that contains the autocorrelation of the input data.
When the input is a matrix of dimension M by N, the output is a matrix of dimension l+1 by N. — maximum positive delay for autocorrelation.
When the input signal 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 match the size of the input array. For example, when the input signal is an array M by N on P, the block outputs an array l+1 by N on P.
Data types: Float64
Support for complex numbers: Yes
Parameters
Main
Compute all non-negative lags — calculation of autocorrelation over all non-negative lags enabled (by default) | turned off
When the checkbox for this parameter is checked, the block Autocorrelation calculates the autocorrelation over all non-negative delays in the range [0, length(input) — 1].
When the checkbox is unchecked, the block calculates the autocorrelation using delays in the range [0, l], where l — the value specified for the parameter Maximum non-negative lag (less than input length).
Maximum non-negative lag (less than input length) — maximum positive delay 1 (default) | Integer greater than or equal to 0 and less than input length
The maximum positive delay for autocorrelation, specified as an integer that is greater than or equal to zero and less than the input length.
Dependencies
To use this option, uncheck Compute all non-negative lags.
Scaling — scaling the output data of None (by default) | Biased | Unbiased | Unity at zero-lag
The scaling applied to the output data.
None — generates raw autocorrelation without normalization.
Biased — generates a biased autocorrelation estimate.
Unbiased — generates an unbiased autocorrelation estimate.
Unity at zero-lag — normalizes the autocorrelation score for each channel so that the sum with zero delay, the first element in each column, is identical to 1.
Additional Info
Autocorrelation
Autocorrelation is the correlation of a signal with itself at different points in time.
For a deterministic discrete-time sequence () the autocorrelation is calculated using the following relation:
,
where —the delay, eh denotes a complex conjugation. If the input signal is the implementation of a wide-sense stationary (WSS) random process of length , is an estimate of the theoretical autocorrelation:
,
where
— the mathematical expectation operator.
Normalization Unity at zero-lag divides each sequence value by the autocorrelation or the zero-lag autocorrelation estimate.
The most commonly used estimate of the theoretical autocorrelation of a random WSS process is the biased estimate:
ρ.
Algorithms
A sequence of samples (or values) of autocorrelation calculated using this equation:
— element with zero delay in -m column of input data.
— the lag index.
— the index of the input data column.
— complex coupling.
— the number of items in each column.
— maximum positive delay for autocorrelation.
When you decide to calculate the autocorrelation with all non-negative delays, . Otherwise — this is the maximum specified value of a non-negative integer.