You are here : matlabSignal Processingcorrmtx

# corrmtx() - Signal Processing

```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 smaller 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 (n – m)-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(n – m)-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.```

### Syntax

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

### Example

```Modified Data and Autocorrelation MatricesOpen This Example
Generate a signal composed of three complex exponentials embedded in white Gaussian noise. Compute the data and autocorrelation matrices using the 'modified' method.
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,R] = corrmtx(s,m,'modified');
Plot the real and imaginary parts of the autocorrelation matrix.[A,B] = ndgrid(1:m+1);
subplot(2,1,1)
plot3(A,B,real(R))
title('Re(R)')
subplot(2,1,2)
plot3(A,B,imag(R))
title('Im(R)')```