# Documentation

### This is machine translation

Translated by
Mouseover text to see original. Click the button below to return to the English verison of the page.

To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

# armcov

Autoregressive all-pole model parameters — modified covariance method

## Syntax

a = armcov(x,p)
[a,e] = armcov(x,p)

## Description

a = armcov(x,p) uses the modified covariance method to fit a pth-order autoregressive (AR) model to the input signal, x, which is assumed to be the output of an AR system driven by white noise. This method minimizes the forward and backward prediction errors in the least-squares sense. The output array, a, contains the normalized estimates of the AR system parameters, A(z), in descending powers of z. a has p + 1 columns. If x is a vector, then a is a row vector. If a is a matrix, then the coefficients along the nth row of a model the nth column of x.

[a,e] = armcov(x,p) returns the variance estimate, e, of the white noise input to the AR model.

## Examples

collapse all

Use a vector of polynomial coefficients to generate an AR(4) process by filtering 1024 samples of white noise. Reset the random number generator for reproducible results. Use the modified covariance method to estimate the coefficients.

rng default

A = [1 -2.7607 3.8106 -2.6535 0.9238];

y = filter(1,A,0.2*randn(1024,1));

arcoeffs = armcov(y,4)
arcoeffs =

1.0000   -2.7741    3.8404   -2.6841    0.9360

Generate 50 realizations of the process, changing each time the variance of the input noise. Compare the modified-covariance-estimated variances to the actual values.

nrealiz = 50;

noisestdz = rand(1,nrealiz)+0.5;

randnoise = randn(1024,nrealiz);

for k = 1:nrealiz
y = filter(1,A,noisestdz(k) * randnoise(:,k));
[arcoeffs,noisevar(k)] = armcov(y,4);
end

plot(noisestdz.^2,noisevar,'*')
title('Noise Variance')
xlabel('Input')
ylabel('Estimated')

Repeat the procedure using armcov's multichannel syntax.

realiz = bsxfun(@times,noisestdz,randnoise);

Y = filter(1,A,realiz);

[coeffs,variances] = armcov(Y,4);

hold on
plot(noisestdz.^2,variances,'o')

q = legend('Single channel loop','Multichannel');
q.Location = 'best';

collapse all

### AR(p) Model

Let y(n) be a wide-sense stationary random process obtained by filtering a white noise input with variance e with the system function A(z). If Py(e) is the power spectral density of y(n), then

${P}_{y}\left({e}^{j\omega }\right)=\frac{e}{{|A\left({e}^{j\omega }\right)|}^{2}}=\frac{e}{{|1+\sum _{k=1}^{p}a\left(k\right){e}^{-j\omega k}|}^{2}}.$

Because the method characterizes the input data using an all-pole model, the correct choice of the model order, p, is important.