From: Sergio on
Hi,

I have a ARX SISO model described by:

A(q)y(t-n_k) = B(q)u(t-m_k)

where:

A(q) = 1+a_1*q^{-1}+...+a_1*q^{-n_a}
B(q) = b_0+b_1*q^{-1}+...+b_1*q^{-n_b}
n_k is the input delay

that is:
y(t)+a_1*y(t-1)+...a_{n_a}*y(t-n_a)=b_0*u(t-n_k)+b_1*u(t-1-n_k)+....+b_{n_b}*u(t-n_b-n_k)

I would like to use the "rarx" function and validate its result with artificially generated data but from the manual I see that n_k (the delay) must be greater than 0.

The manual also say that for using n_k=0 "...shift the input sequence appropriately and use nk = 1 (see nkshift).".

How can I do this?


For instance, suppose that
n_a=2, n_b=2, n_k=0
and
a_1=-1.5, a_2=0.7
b_0=1, b_1=0.5, b_2=0.2

I can generate some artifical data from this model
m0 = idpoly([1 -1.5 0.7], [1 0.5 0.2]); % model
u = sign(randn(50,1)); % input
e = 0.2*randn(50,1); % noise
y = sim(m0,[u e]);
z = iddata(y,u);


But I don't know what parameters should I pass to "rarx" in order to create the above model structure:

Can someone help me?

Thank you very much!!

Best,

Sergio