DSPRelated.com
Free Books

Properties of the Modal Representation

The vector $ {\tilde B}$ in a modal representation (Eq.$ \,$(G.21)) specifies how the modes are driven by the input. That is, the $ i$th mode receives the input signal $ u(n)$ weighted by $ {\tilde b}_i$. In a computational model of a drum, for example, $ {\tilde B}$ may be changed corresponding to different striking locations on the drumhead.

The vector $ {\tilde C}$ in a modal representation (Eq.$ \,$(G.21)) specifies how the modes are to be mixed into the output. In other words, $ {\tilde C}$ specifies how the output signal is to be created as a linear combination of the mode states:

$\displaystyle y(n) = {\tilde C}\underline{{\tilde x}}(n) = {\tilde c}_1 {\tilde x}_1(n) + {\tilde c}_2 {\tilde x}_2(n) + \cdots + {\tilde c}_N {\tilde x}_N(n)
$

In a computational model of an electric guitar string, for example, $ {\tilde C}$ changes whenever a different pick-up is switched in or out (or is moved [99]).

The modal representation is not unique since $ {\tilde B}$ and $ {\tilde C}$ may be scaled in compensating ways to produce the same transfer function. (The diagonal elements of $ \tilde{A}$ may also be permuted along with $ {\tilde B}$ and $ {\tilde C}$.) Each element of the state vector $ \underline{{\tilde x}}(n)$ 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 $ i$ is both oscillatory and undamped (lossless), then an excited state-variable $ {\tilde x}_i(n)$ will oscillate sinusoidally, after the input becomes zero, at some frequency $ \omega_i$, where

$\displaystyle \lambda _i = e^{j\omega_iT}
$

relates the system eigenvalue $ \lambda_i $ to the oscillation frequency $ \omega_i$, with $ T$ denoting the sampling interval in seconds. More generally, in the damped case, we have

$\displaystyle \lambda _i = R_i e^{j\omega_iT}
$

where $ R_i$ is the pole (eigenvalue) radius. For stability, we must have

$\displaystyle \left\vert R_i\right\vert<1.
$

In practice, we often prefer to combine complex-conjugate pole-pairs to form a real, ``block-diagonal'' system; in this case, the transition matrix $ \tilde{A}$ is block-diagonal with two-by-two real matrices along its diagonal of the form

$\displaystyle \mathbf{A}_i = \left[\begin{array}{cc} 2R_iC_i & -R_i^2 \\ [2pt] 1 & 0 \end{array}\right]
$

where $ R_i=\left\vert\lambda_i\right\vert$ is the pole radius, and $ 2R_iC_i \isdef
2R_i\cos(\omega_i T) = \lambda_i + \overline{\lambda_i} =
2$re$ \left\{\lambda_i\right\}$. Note that, for real systems, a real second order block requires only two multiplies (one in the lossless case) per time update, while a complex second-order system requires two 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:
Jordan Canonical Form
Previous Section:
Example of State-Space Diagonalization