armax1 armax identification

## Syntax

                [arc, resid] = armax1(r, s, q, y, u)
                [arc, resid] = armax1(r, s, q, y, u, b0f)

## Arguments

y

  output signal

u

  input signal

r,s,q

  auto regression orders with r >=0, s >=-1.

b0f

  optional parameter. Its default value is 0 and it means that the coefficient b0 must be identified. if bof=1 the b0 is supposed to be zero and is not identified

arc

  is tlist with type "ar" and fields a, b, d, ny, nu, sig

  a

    is the vector `[1,a1,...,a_r]`

  b

    is the vector `[b0,......,b_s]`

  d

    is the vector `[1,d1,....,d_q]`

  sig

    resid=[ sig*echap(1),....,];

## Description

armax1 is used to identify the coefficients of a 1-dimensional ARX process:

    A(z^-1)y= B(z^-1)u + D(z^-1)sig*e(t)
    e(t) is a 1-dimensional white noise with variance 1.
    A(z)= 1+a1*z+...+a_r*z^r; ( r=0 => A(z)=1)
    B(z)= b0+b1*z+...+b_s z^s ( s=-1 => B(z)=0)
    D(z)= 1+d1*z+...+d_q*z^q  ( q=0 => D(z)=1)

for the method, see Eykhoff in trends and progress in system identification) page 96. with

    z(t)=[y(t-1),..,y(t-r),u(t),...,
          u(t-s),e(t-1),...,e(t-q)]

and

    coef= [-a1,..,-ar,b0,...,b_s,d1,...,d_q]'
    y(t)= coef'* z(t) + sig*e(t).

a sequential version of the AR estimation where e(t-i) is replaced by an estimated value is used (RLLS). With q=0 this method is exactly a sequential version of armax

## Examples

    a = [1, -2.851, 2.717, -0.865];
    b = [0, 1, 1, 1];
    d = [1, 0.7, 0.2];
    ar = armac(a, b, d, 1, 1, 1);
    disp(_("Simulation of an ARMAX process:"));
    disp(ar);

    n = 300;
    u = -prbs_a(n, 1, int([2.5,5,10,17.5,20,22,27,35]*100/12));
    zd = narsimul(ar, u);

    // using now armax1 : colored noise identification
    // you can test the same example with
    [arc1, resid] = armax1(3,3,2,zd(1:n),u,1);
    disp(arc1);

## Important notice

In Scilab versions up to 4.1.2 the returned value in `arc.sig` is the square of `sig` square. To be conform with the help, the display of arma models and the armax function, starting from Scilab-5.0 version the returned `arc.sig` is `sig`.