Scilab Website | Contribute with GitLab | Mailing list archives | ATOMS toolboxes
Scilab Online Help
6.1.0 - Русский

Change language to:
English - Français - 日本語 - Português -

Please note that the recommended version of Scilab is 2025.0.0. This page might be outdated.
See the recommended documentation of this function

Справка Scilab >> Signal Processing > Identification > lattn

lattn

recursive solution of normal equations

Syntax

[la,lb]=lattn(n,p,cov)

Arguments

n

maximum order of the filter

p

fixed dimension of the MA part. If p= -1, the algorithm reduces to the classical Levinson recursions.

cov

matrix containing the Rk's (d*d matrices for a d-dimensional process).It must be given the following way

\begin{eqnarray}
                            \begin{pmatrix}
                            R_0\\R_1\\R_2\\ \vdots \\R_{nlags}
                            \end{pmatrix}
                            \end{eqnarray}

la

list-type variable, giving the successively calculated polynomials (degree 1 to degree n),with coefficients Ak

Description

solves recursively on n (p being fixed) the following system (normal equations), i.e. identifies the AR part (poles) of a vector ARMA(n,p) process,

\begin{eqnarray}
            \begin{pmatrix}
            I&-A_1&\cdots&-A_n
            \end{pmatrix}
            \ast
            \begin{pmatrix}
            R_{p+1}&R_{p+2}&\cdots&R_{p+n} \\
            R_p&R_{p+1}&\cdots&R_{p+n-1} \\
            R_{p+n-1}&R_p&\cdots&R_{p+n-2} \\
            \vdots&\vdots&\cdots&\vdots \\
            R_{p+1-n}&R_{p+2-n}&\cdots&R_p
            \end{pmatrix}
            = 0
            \end{eqnarray}

where {Rk;k=1,nlag} is the sequence of empirical covariances.

Example

//Generate the process
t1=0:0.1:100;
y1=sin(2*%pi*t1)+sin(2*%pi*2*t1);
y1=y1+rand(y1,"normal");

//Covariance of y1
nlag=128;
c1=corr(y1,nlag);
c1=c1';

//Compute the filter with maximum order=15 and p=1
n=15;
[la1,sig1]=lattn(n,1,c1);

//Compare result of poles with p=-1 and with levin function
[la2,sig2]=lattn(n,-1,c1);
for i=1:n
  s2=roots(la2(i));
  s2=log(s2)/2/%pi/.1; //estimated poles
  s2=gsort(imag(s2));
  s2=s2(1:i/2);
end;
[la3,sig3]=levin(n,c1);
for i=1:n
  s3=roots(la3(i));
  s3=log(s3)/2/%pi/.1; //estimated poles
  s3=gsort(imag(s3));
  s3=s3(1:i/2);
end;

See also

  • levin — Toeplitz system solver by Levinson algorithm (multidimensional)
  • lattp — Identification of MA part of a vector ARMA process
Report an issue
<< frfit Identification lattp >>

Copyright (c) 2022-2024 (Dassault Systèmes)
Copyright (c) 2017-2022 (ESI Group)
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Tue Feb 25 08:54:56 CET 2020