## Modal Representation

When the state transition matrix is*diagonal*, we have the so-called

*modal representation*. In the single-input, single-output (SISO) case, the general diagonal system looks like

Since the state transition matrix is diagonal, the modes are

*decoupled*, and we can write each mode's time-update independently:

*parallel one-pole systems*. See §9.2.2 and §6.8.7 regarding the conversion of direct-form filter transfer functions to parallel (complex) one-pole form.

### Diagonalizing a State-Space Model

To obtain the*modal representation*, we may

*diagonalize*any state-space representation. This is accomplished by means of a particular

*similarity transformation*specified by the

*eigenvectors*of the state transition matrix . An

*eigenvector*of the square matrix is any vector for which

*diagonalized*, as we will see below. A system can be diagonalized whenever the eigenvectors of are

*linearly independent*. This always holds when the system poles are

*distinct*. It may or may not hold when poles are

*repeated*. To see how this works, suppose we are able to find linearly independent eigenvectors of , denoted , . Then we can form an matrix having these eigenvectors as columns. Since the eigenvectors are linearly independent, is full rank and can be used as a one-to-one linear transformation, or

*change-of-coordinates*matrix. From Eq.(G.19), we have that the transformed state transition matrix is given by

We have incidentally shown that the eigenvalues of the state-transition matrix are the poles of the system transfer function. When it is

*diagonal*,

*i.e.*, when diag, the state-space model may be called a

*modal representation*of the system, because the poles appear explicitly along the diagonal of and the system's dynamic modes are decoupled. Notice that the diagonalized state-space form is essentially equivalent to a

*partial-fraction expansion*form (§6.8). In particular, the

*residue*of the th pole is given by . When complex-conjugate poles are combined to form real, second-order blocks (in which case is block-diagonal with blocks along the diagonal), this is corresponds to a partial-fraction expansion into real, second-order, parallel filter sections.

### Finding the Eigenvalues of A in Practice

Small problems may be solved by hand by solving the system of equations`eig()`may be used to find the eigenvalues of (system poles) numerically.

^{G.10}

### Example of State-Space Diagonalization

For the example of Eq.(G.7), we obtain the following results:>> % Initial state space filter from example above: >> A = [-1/2, -1/3; 1, 0]; % state transition matrix >> B = [1; 0]; >> C = [2-1/2, 3-1/3]; >> D = 1; >> >> eig(A) % find eigenvalues of state transition matrix A ans = -0.2500 + 0.5204i -0.2500 - 0.5204i >> roots(den) % find poles of transfer function H(z) ans = -0.2500 + 0.5204i -0.2500 - 0.5204i >> abs(roots(den)) % check stability while we're here ans = 0.5774 0.5774 % The system is stable since each pole has magnitude < 1.Our second-order example is already in

*real*form, because it is only second order. However, to illustrate the computations, let's obtain the eigenvectors and compute the

*complex*modal representation:

>> [E,L] = eig(A) % [Evects,Evals] = eig(A) E = -0.4507 - 0.2165i -0.4507 + 0.2165i 0 + 0.8660i 0 - 0.8660i L = -0.2500 + 0.5204i 0 0 -0.2500 - 0.5204i >> A * E - E * L % should be zero (A * evect = eval * evect) ans = 1.0e-016 * 0 + 0.2776i 0 - 0.2776i 0 0 % Now form the complete diagonalized state-space model (complex): >> Ei = inv(E); % matrix inverse >> Ab = Ei*A*E % new state transition matrix (diagonal) Ab = -0.2500 + 0.5204i 0.0000 + 0.0000i -0.0000 -0.2500 - 0.5204i >> Bb = Ei*B % vector routing input signal to internal modes Bb = -1.1094 -1.1094 >> Cb = C*E % vector taking mode linear combination to output Cb = -0.6760 + 1.9846i -0.6760 - 1.9846i >> Db = D % feed-through term unchanged Db = 1 % Verify that we still have the same transfer function: >> [numb,denb] = ss2tf(Ab,Bb,Cb,Db) numb = 1.0000 2.0000 + 0.0000i 3.0000 + 0.0000i denb = 1.0000 0.5000 - 0.0000i 0.3333 >> num = [1, 2, 3]; % original numerator >> norm(num-numb) ans = 1.5543e-015 >> den = [1, 1/2, 1/3]; % original denominator >> norm(den-denb) ans = 1.3597e-016

### Properties of the Modal Representation

The vector in a modal representation (Eq.(G.21)) specifies how the modes are*driven*by the input. That is, the th mode receives the input signal weighted by . In a computational model of a drum, for example, may be changed corresponding to different striking locations on the drumhead. The vector in a modal representation (Eq.(G.21)) specifies how the modes are to be

*mixed*into the output. In other words, specifies how the output signal is to be created as a

*linear combination*of the mode states:

*unique*since and may be scaled in compensating ways to produce the same transfer function. (The diagonal elements of may also be permuted along with and .) Each element of the state vector holds the state of a single first-order mode of the system. For oscillatory systems, the diagonalized state transition matrix must contain

*complex*elements. In particular, if mode is both oscillatory and

*undamped*(lossless), then an excited state-variable will oscillate

*sinusoidally*, after the input becomes zero, at some frequency , where

*complex*multiplies. The function

`cdf2rdf()`in the Matlab Control Toolbox can be used to convert complex diagonal form to real block-diagonal form.

**Next Section:**

Repeated Poles

**Previous Section:**

Similarity Transformations