## Repeated Poles

The above summary of state-space diagonalization works as stated when
the modes (poles) of the system are distinct. When there are two or
more resonant modes corresponding to the same ``natural frequency''
(eigenvalue of ), then there are two further subcases: If the
eigenvectors corresponding to the repeated eigenvalue (pole) are
*linearly independent*, then the modes are independent and can be
treated as distinct (the system can be diagonalized). Otherwise, we
say the equal modes are *coupled*.

The coupled-repeated-poles situation is detected when the matrix of
eigenvectors `V` returned by the
`eig` matlab function [*e.g.*, by saying
`[V,D] = eig(A)`] turns out to be *singular*.
Singularity of `V` can be defined as when its *condition
number* [`cond(V)`] exceeds some threshold, such as
`1E7`. In this case, the linearly dependent eigenvectors can
be replaced by so-called *generalized eigenvectors* [58].
Use of that similarity transformation then produces a ``block
diagonalized'' system instead of a diagonalized system, and one of the
blocks along the diagonal will be a matrix corresponding
to the pole repeated times.

Connecting with the discussion regarding repeated poles in
§6.8.5, the Jordan block corresponding to a pole
repeated times plays exactly the same role of repeated poles
encountered in a partial-fraction expansion, giving rise to terms in
the impulse response proportional to
,
, and so
on, up to
, where denotes the repeated pole
itself (*i.e.*, the repeated eigenvalue of the state-transition matrix
).

### Jordan Canonical Form

The *block diagonal* system having the eigenvalues along the
diagonal and ones in some of the superdiagonal elements (which serve
to couple repeated eigenvalues) is called *Jordan canonical
form*. Each block size corresponds to the multiplicity of the repeated
pole. As an example, a pole of multiplicity could give
rise to the following *Jordan block*:

^{G.11}Note, however, that a pole of multiplicity three can also yield two Jordan blocks, such as

Interestingly, neither Matlab nor Octave seem to have a numerical
function for computing the Jordan canonical form of a matrix. Matlab
will try to do it *symbolically* when the matrix entries are
given as exact rational numbers (ratios of integers) by the
`jordan` function, which requires the Maple symbolic
mathematics toolbox. Numerically, it is generally difficult to
distinguish between poles that are repeated exactly, and poles that
are merely close together. The `residuez` function sets a
numerical threshold below which poles are treated as repeated.

**Next Section:**

State-Space Analysis Example: The Digital Waveguide Oscillator

**Previous Section:**

Modal Representation