arma — Scilab arma library
Armax processes can be coded with Scilab tlist of type 'ar'
.
armac
is used to build Armax
scilab object. An 'ar'
tlist contains the fields ['a','b','d','ny','nu','sig']
.
this function creates a Scilab tlist which code an Armax
process A(z^-1)y= B(z^-1)u + D(z^-1)sig*e(t)
-->ar=armac([1,2],[3,4],1,1,1,sig); -->ar('a') ans = ! 1. 2. ! -->ar('sig') ans = 1.
Display the armax equation associated with ar
Display the armax equation associated with ar
using polynomial matrix display.
extract polynomial matrices from ar representation
is used to identify the coefficients of a n-dimensional ARX process A(z^-1)y= B(z^-1)u + sig*e(t)
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)
armax trajectory simulation.
armax simulation ( using rtitr)
Simple tests of ode and arsimul. Tests the option 'discret' of ode
pseudo random binary sequences generation
Linear regression
// Example extracted from the demo arma3.dem.sce in the cacsd module // Spectral power estimation // ( form Sawaragi et all) m = 18; a = [1,-1.3136,1.4401,-1.0919,+0.83527]; b = [0.0,0.13137,0.023543,0.10775,0.03516]; u = rand(1,1000,'n'); z = arsimul(a,b,[0],0,u); //----Using macro mese [sm,fr]=mese(z,m); //----The theorical result function gx=gxx(z,a,b) w = exp(-%i*2*%pi*z*(0:4))' gx = abs(b*w)^2/(abs(a*w)^2); endfunction res=[]; for x=fr res=[ res, gxx(x,a,b)]; end //----using armax estimation of order (4,4) // it's a bit tricky because we are not supposed to know the order [arc,la,lb,sig,resid]=armax(4,4,z,u); res1=[]; for x=fr res1=[ res1, gxx(x,la(1),lb(1))]; end //-- visualization of the results plot2d([fr;fr;fr]',[20*log10(sm/sm(1));20*log10(res/res(1));20*log10(res1/res1(1))]',[2,1,-1]) legend(["Using macro mese";"Theoretical value";"Arma identification"]) xtitle("Spectral power","frequency","spectral estimate")