Reachability, observability, and Hankel singular values ======================================================= .. admonition:: Tutorial goal Connect state-space reachability and observability with finite Hankel singular values. .. note:: New to the terminology? See the :doc:`lattice DSP concept map <../../algorithms/concept_map>` and the :doc:`causality/data-use guide <../../theory/causality_and_data_use>` for how online, offline, block, and MIMO examples should be read. Context ------- Hankel singular values are easier to interpret once they are tied to state-space reachability and observability. This tutorial builds a small system with unreachable and unobservable state directions and shows that the input-output Hankel matrix only captures directions that are both excited by inputs and seen at outputs. Key idea and equations ---------------------- For a state-space model ``(A, B, C, D)``, Markov parameters satisfy .. math:: M_k = C A^{k-1} B, and a block Hankel matrix factors as .. math:: \mathcal H = \mathcal O\,\mathcal R, where ``R`` is reachability and ``O`` is observability. How to read the result ---------------------- The reachability and observability ranks are both three in the toy model, but the finite Hankel matrix has only two significant singular values because only two directions are both reachable and observable. Run command ----------- .. code-block:: bash python examples/reachability_observability_hankel_demo.py Source code ----------- .. literalinclude:: ../../../examples/reachability_observability_hankel_demo.py :language: python :linenos: