cbadc.analog_system.topology.tf2abcd

cbadc.analog_system.topology.tf2abcd(b: ndarray, a: ndarray) Tuple[ndarray, ndarray, ndarray, ndarray][source]

Transform a transferfunctions into a controllable canonical state space form.

Specifcally, for a filter with the transfer function

\(\frac{\Sigma_{\ell = 0}^{L} b_{\ell}s^\ell}{s^{L} + \Sigma_{\ell=0}^{L-1} a_{k} s^\ell}\)

is represented in a controllable canonical state space representation form

\(\dot{\mathbf{x}}(t) = \begin{pmatrix}0, & 1, & 0 \\ & \ddots & \ddots \\ 0 & \dots & 0, & 1 \\ -a_{0}, & \dots, & & -a_{L-1} \end{pmatrix} \mathbf{x}(t) + \begin{pmatrix} 0 \\ \vdots \\ 0 \\ 1 \end{pmatrix} u(t)\)

\(y_\ell(t) = \begin{pmatrix}b_{0} - b_L a_0, & \dots, & b_{L-1} - b_L a_{L-1} \end{pmatrix} \mathbf{x}(t) + \begin{pmatrix} b_L\end{pmatrix} u(t)\)

Parameters
  • b (np.ndarray, shape=(L+1,)) – transferfunction nominator \(\begin{pmatrix}b_{L}, & \dots, & b_{0}\end{pmatrix}\).

  • a (np.ndarray, shape=(L,)) – transferfunction denominator \(\begin{pmatrix}a_{L-1}, & \dots, & a_{0}\end{pmatrix}\).

Returns

  • A (numpy.ndarray, shape=(L, L)) – a joint state transition matrix.

  • B (numpy.ndarray, shape=(L, 1)) – a joint input matrix.

  • CT (numpy.ndarray, shape=(1,L)) – a joint signal observation matrix.

  • D (numpy.ndarray, shape=(1,1)) – direct transition matrix.