Accelerating the pace of engineering and science

# corrmtx

Data matrix for autocorrelation matrix estimation

## Syntax

X = corrmtx(x,m)
X = corrmtx(x,m,'method')
[X,R] = corrmtx(...)

## Description

X = corrmtx(x,m) returns an (n+m)-by-(m+1) rectangular Toeplitz matrix X, such that X'X is a (biased) estimate of the autocorrelation matrix for the length n data vector x. m must be a positive integer strictly less than the length of the input x.

X = corrmtx(x,m,'method') computes the matrix X according to the method specified by the string 'method':

• 'autocorrelation': (default) X is the (n+m)-by-(m+1) rectangular Toeplitz matrix that generates an autocorrelation estimate for the length n data vector x, derived using prewindowed and postwindowed data, based on an mth-order prediction error model.

• 'prewindowed': X is the n-by-(m+1) rectangular Toeplitz matrix that generates an autocorrelation estimate for the length n data vector x, derived using prewindowed data, based on an mth-order prediction error model.

• 'postwindowed': X is the n-by-(m+1) rectangular Toeplitz matrix that generates an autocorrelation estimate for the length n data vector x, derived using postwindowed data, based on an mth-order prediction error model.

• 'covariance': X is the (nm)-by-(m+1) rectangular Toeplitz matrix that generates an autocorrelation estimate for the length n data vector x, derived using nonwindowed data, based on an mth-order prediction error model.

• 'modified': X is the 2(nm)-by-(m+1) modified rectangular Toeplitz matrix that generates an autocorrelation estimate for the length n data vector x, derived using forward and backward prediction error estimates, based on an mth-order prediction error model.

[X,R] = corrmtx(...) also returns the (m+1)-by-(m+1) autocorrelation matrix estimate R, calculated as X'*X.

## Examples

```n = 0:99;
s = exp(i*pi/2*n)+2*exp(i*pi/4*n)+exp(i*pi/3*n)+randn(1,100);
m = 12;
X = corrmtx(s,m,'modified');```

expand all

### Algorithms

The Toeplitz data matrix computed by corrmtx depends on the method you select. The matrix determined by the autocorrelation (default) method is given by the following matrix.

$X=\left[\begin{array}{ccc}x\left(1\right)& \cdots & 0\\ ⋮& \ddots & ⋮\\ x\left(m+1\right)& \cdots & x\left(1\right)\\ ⋮& \ddots & ⋮\\ x\left(n-m\right)& \cdots & x\left(m+1\right)\\ ⋮& \ddots & ⋮\\ x\left(n\right)& \cdots & x\left(n-m\right)\\ ⋮& \ddots & ⋮\\ 0& \cdots & x\left(n\right)\end{array}\right]$

In this matrix, m is the same as the input argument m to corrmtx, and n is length(x). Variations of this matrix are used to return the output X of corrmtx for each method:

• 'autocorrelation': (default) X = X, above.

• 'prewindowed': X is the n-by-(m+1) submatrix of X that is given by the portion of X above the lower gray line.

• 'postwindowed': X is the n-by-(m+1) submatrix of X that is given by the portion of X below the upper gray line.

• 'covariance': X is the (nm)-by-(m+1) submatrix of X that is given by the portion of X between the two gray lines.

• 'modified': X is the 2(nm)-by-(m+1) matrix Xmod shown below.

${X}_{\mathrm{mod}}=\left[\begin{array}{ccc}x\left(m+1\right)& \cdots & x\left(1\right)\\ ⋮& \ddots & ⋮\\ x\left(n-m\right)& \cdots & x\left(m+1\right)\\ ⋮& \ddots & ⋮\\ x\left(n\right)& \cdots & x\left(n-m\right)\\ x\ast \left(1\right)& \cdots & x\ast \left(m+1\right)\\ ⋮& ⋰& ⋮\\ x\ast \left(m+1\right)& \cdots & x\ast \left(n-m\right)\\ ⋮& ⋰& ⋮\\ x\ast \left(n-m\right)& \cdots & x\ast \left(n\right)\end{array}\right]$

## References

[1] Marple, S. Lawrence. Digital Spectral Analysis. Englewood Cliffs, NJ: Prentice-Hall, 1987.