arl2

SISO model realization by L2 transfer approximation

Calling Sequence

h=arl2(y,den0,n [,imp])
h=arl2(y,den0,n [,imp],'all')
[den,num,err]=arl2(y,den0,n [,imp])
[den,num,err]=arl2(y,den0,n [,imp],'all')

Arguments

:y real vector or polynomial in z^-1, it contains the coefficients
of the Fourier’s series of the rational system to approximate (the impulse response)
: :den0 a polynomial which gives an initial guess of the solution, it
may be poly(1,’z’,’c’)
: :n integer, the degree of approximating transfer function (degree of
den)

: :imp integer in (0,1,2) (verbose mode) : :h transfer function num/den or transfer matrix (column vector)

when flag ‘all’ is given.
: :den polynomial or vector of polynomials, contains the
denominator(s) of the solution(s)
: :num polynomial or vector of polynomials, contains the numerator(s)
of the solution(s)
: :err real constant or vector , the l2-error achieved for each
solutions

:

Description

[den,num,err]=arl2(y,den0,n [,imp]) finds a pair of polynomials num and den such that the transfer function num/den is stable and its impulse response approximates (with a minimal l2 norm) the vector y assumed to be completed by an infinite number of zeros.

If y(z) = y(1)(1/z)+y(2)(1/z^2)+ ...+ y(ny)(1/z^ny)

then l2-norm of num/den - y(z) is err.

n is the degree of the polynomial den.

The num/den transfer function is a L2 approximant of the Fourier’s series of the rational system.

Various intermediate results are printed according to imp.

[den,num,err]=arl2(y,den0,n [,imp],’all’) returns in the vectors of polynomials num and den a set of local optimums for the problem. The solutions are sorted with increasing errors err. In this case den0 is already assumed to be poly(1,’z’,’c’)

Examples

v=`ones`_(1,20);
`clf`_();
`plot2d1`_('enn',0,[v';`zeros`_(80,1)],2,'051',' ',[1,-0.5,100,1.5])

[d,n,e]=arl2(v,`poly`_(1,'z','c'),1)
`plot2d1`_('enn',0,`ldiv`_(n,d,100),2,'000')
[d,n,e]=arl2(v,d,3)
`plot2d1`_('enn',0,`ldiv`_(n,d,100),3,'000')
[d,n,e]=arl2(v,d,8)
`plot2d1`_('enn',0,`ldiv`_(n,d,100),5,'000')

[d,n,e]=arl2(v,`poly`_(1,'z','c'),4,'all')
`plot2d1`_('enn',0,`ldiv`_(n(1),d(1),100),10,'000')

See Also

  • ldiv polynomial matrix long division
  • imrep2ss state-space realization of an impulse response
  • time_id SISO least square identification
  • armax armax identification
  • frep2tf transfer function realization from frequency response

Table Of Contents

This Page