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?

  • 1
    $\begingroup$ 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$ $\endgroup$
    – Hilmar
    Jun 10, 2021 at 13:11
  • $\begingroup$ 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. $\endgroup$
    – rrogers
    Jun 16, 2021 at 13:32
  • $\begingroup$ 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? $\endgroup$ Jun 18, 2021 at 16:28

2 Answers 2


Ljung, "System Identification: Theory for the User", suggests:

Picture of page 291 of Ljung


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.

Your input output relationship is

$$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.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.