# System identification for a single-input-single-output-system

Let $$u(n)$$ be the input and $$v(n)$$ the output of a single-input-single-output system described by the Auto-Regressive-Moving-Average equation $$v(n)=\sum_{k=0}^{m_{0}}b_ku(n-k)+\sum_{k=1}^{n_{0}}a_{k}v(n-k).$$ Assume that $$v(n)$$ is known for all $$n$$ and $$u(n)=0$$ for some interval $$n=t_{0},t_{0}+1,\dots,N$$.

Then you can determine the coefficients $$a_k$$ by solving the equation $$\left(\begin{matrix}v(t_{0})\\v(t_{0}+1)\\\vdots\\v(N)\end{matrix}\right)=\left(\begin{matrix}v(t_{0}-1) & \dots & v(t_{0}-n_{0})\\ v(t_{0}) & \dots &v(t_{0}-n_{0}+1)\\ \dots & \dots & \dots\\ v(N-1)& \dots & v(N-n_{0})\end{matrix}\right) \left(\begin{matrix}a_1\\a_2\\\dots\\a_{n_{0}}\end{matrix}\right)$$

But how can you determine the coefficients $$b_k$$ and the values of $$u(n)$$ which are not equal to zero?

• I think have to start your output vector at $t_0+m_0$. You need to wait for the end of the FIR portion until the output becomes purely recursive. So your gap has to be at least $N > m_0 + n_0$ Jun 10 at 13:11
• You're making some tacit assumptions; but assuming your determination of a_k is accurate. You're into "State Space" formulation; and a bit more. Examine en.wikipedia.org/wiki/Closed-loop_transfer_function now you have to back track to get X(s); you did assume that you knew the closed loop and output? Now if you fill out the input U(n) as a matrix and invert it. If you like, I can write it up as an answer; but that's the core. For uncontrollable U(n) you might have to use pseudo/Moore-Penrose inversion: en.wikipedia.org/wiki/Moore%E2%80%93Penrose_inverse. Jun 16 at 13:32
• I know that it is not an answer, but I am not able to comment on rrogers' interesting comment. Could you please write it up as an answer for the case that U(n) is uncontrollable? Jun 18 at 16:28

But how can you determine the coefficients bk and the values of u(n) which are not equal to zero?

I don't think you can. What you describe is an IIR filter with the transfer function

$$H(z) = \frac{b_0 + b_1z^{-1}+ b_2z^{-2}+ ...+ b_{m_0}z^{-m_0}}{a_0 + a_1z^{-1} + a_2z^{-2}+ ...+ a_{n_0}z^{-n_0}} = \frac{H_Z(z)}{H_P(z)}$$

Where $$H_Z(z)$$ is the transfer functions of the zeros and the $$H_P(z)$$ the transfer functions of the poles. $$H_Z(z)$$ is an FIR filter.

$$V(z) = H(z) \cdot U(z) = \frac{H_Z(z)}{H_P(z)} \cdot U(z)$$

Assuming you can actually identify the poles during the input gaps (which is sort of questionable in practice). You can write this as

$$U(z) \cdot H_Z(z) = V(z) \cdot H_P(z)$$

And here is the problem: you can only identify the product of the input and the FIR filter but it's not unique, there are many different combination of input and filter that will result in the exact same signal.

Let's say you know that the first non-zero input sample after a gap is at time $$n = L$$. You know that

$$v(L) = a_1v(L-1) + ... + a_Nv(L-N) + b_0u(L)$$

You can only solve for the product of $$u(L)$$ and $$b_0$$ but there is no unique solution for each individually.