Fri Apr 19 13:15:58 EDT 2013

Transposition of realizations

To compute the transposition of a filter realization:

- Reverse arrows
- Exchange summation points "+" with contact points "o"
- Swap input and output

( Note that a summation point with fanout is actually 2 nodes: a
summuation node connected to a contact point node. )

What is the algebraic counterpart to this?  (see below)

A way to prove this is probably to first devise a way to construct
arbitrary networks from primitives, prove it for the primitives and
prove that the construction rules leave the property intact.

The property is satisfied by these primitives:
- unit delay
- multiplicative scaling

The property is preserved by these compositions:
- serial composition (A B)
- parallel composition (o A/B +)
- feedback composition (+ A/B' o)

( There is probably a link to the Haskell ArrowLoop rules! )

Creating loops is like parallel composition, only one of the two
networks is reversed, the input is a summation node and the output is
a contact point.

From trying some examples, it seems that this is a complete set of
operations to construct an arbitrary network from primitives.

Given an arbitrary connected graph, the following algorithm can be
used to construct it in terms of the primitive operations.

1. Pick a primitive edge in the graph to start the construction

2. For all primitive edges between the 2 nodes, apply parallel or
   feedback composition to construct a subgraph.

3. If all nodes are covered, we're done.  If not, continue.

4. Pick a primitive edge that connects the current subgraph to a node
   outside of the subgraph, using serial composition.

5. Apply parallel or feedback composition for all nodes in the
   subgraph that connect to the newly added node.  Goto 5.

While it follows from construction, still, this transposition business
is rather remarkable.  It's not visible in "flat" algebraic form of a
transfer function, since there is no sharing.  I wonder if it is
visible in state-space form.

Yes. It follows directly from it!

The transfer function of a standard form state space model is

  C (Iz - A)^{-1} B + D.

For a SISO system this is scalar value, so taking the
transpose of it doesn't change its value.  This yields

  B^T (Iz - A^T)^{-1} C^T + D^T,

which corresponds to the transpose of the system matrix.  Transposing
the system matrix corresponds to performing the network transposition