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.