Suppose I have a discrete state space model:

\begin{align} \theta[k+1] &= A \theta[k] + B u[k]\\ y[k] &= C \theta[k] \end{align}

I know that the equivalent transfer function can be found by solving

$$ Y(z) = C (zI-A)^{-1} B U(z) $$

But is there a quick way to determine the order of the transfer function for each input? I.e., the degree of its numerator and denominators, assuming that the dimensions of $A$ will be $n\times n$, $B$'s will be $n \times m$ and $C$'s will be $1 \times n$? (Assuming here there is only one variable being observed.)

  • $\begingroup$ This is probably superfluous but the recursion structure should be directly obvious from the Eigenvalue/Eigenvector values. $\endgroup$
    – rrogers
    Commented Sep 2, 2015 at 14:05
  • 1
    $\begingroup$ if $m \ne 1$ then you have multiple transfer functions (all with the same denominator). the order will be $n$ unless you have pole-zero cancellation, but that pole-zero cancellation only hides a state inside. there could be an unstable pole cancelled by a zero (both outside the unit circle) and your system could be going to hell on the inside and you wouldn't know it on the outside until numerical limits are reached. $\endgroup$ Commented Nov 29, 2015 at 17:52

1 Answer 1


One trick will be whether there are any pole-zero cancellations in the overall transfer function. For that, you will probably need to check for the minimality of the system (i.e. check whether the system is both controllable and observable).

The question of "determine the order of the transfer function for each input" seems odd, to me. If the system is minimal (it can't be represented by a smaller order system), then you need it as-is. Pulling out one of the $m\times 1$ systems on its own may be of interest, but you can't reduce it without destroying the overall system.

Can you give more information about why you want to examine just one of the $m$ transfer functions?

  • $\begingroup$ In the end, I want to be able to identify the coefficients of such a system, probably with some least-squares optimisation. For that I need to know how far back "in the past" I need to look, for each timestep. $\endgroup$
    – lindelof
    Commented Aug 31, 2015 at 14:28
  • $\begingroup$ @lindelof : That confuses me further... surely the best way to identify the overall transfer function is to do the whole thing at once, rather than each on individually? $\endgroup$
    – Peter K.
    Commented Sep 30, 2015 at 18:55

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.