Linear State Space Models
As introduced in Book II [449, Appendix G], in the linear,
time-invariant case, a discrete-time state-space model looks
like a vector first-order finite-difference model:
where









The state-space representation is especially powerful for
multi-input, multi-output (MIMO) linear systems, and also for
time-varying linear systems (in which case any or all of the
matrices in Eq.(1.8) may have time subscripts
) [220].
To cast the previous force-driven mass example in state-space form, we
may first observe that the state of the mass is specified by its
velocity and position
, or
.2.9Thus, to Eq.
(1.5) we may add the explicit difference equation
![$\displaystyle x[(n+1)T] \eqsp x(nT) + T\,v(nT)
\eqsp x(nT) + T\,v[(n-1)T] + \frac{T^2}{m} f[(n-1)T]
$](http://www.dsprelated.com/josimages_new/pasp/img255.png)

with

General features of this example are that the entire physical state of
the system is collected together into a single vector, and the
elements of the matrices include physical parameters (and
the sampling interval, in the discrete-time case). The parameters may
also vary with time (time-varying systems), or be functions of the
state (nonlinear systems).
The general procedure for building a state-space model is to label all
the state variables and collect them into a vector
, and then
work out the state-transition matrix
, input gains
, output
gains
, and any direct coefficient
. A state variable
is needed for each lumped energy-storage element (mass,
spring, capacitor, inductor), and one for each sample of delay in
sampled distributed systems. After that, various equivalent (but
numerically preferable) forms can be generated by means of
similarity transformations [449, pp. 360-374]. We
will make sparing use of state-space models in this book, because
they can be linear-algebra intensive, and therefore rarely used in
practical real-time signal processing systems for music and audio
effects. However, the state-space framework is an important
general-purpose tool that should be kept in mind [220], and
there is extensive support for state-space models in the matlab
(``matrix laboratory'') language and its libraries. We will use it
mainly as an analytical tool from time to time.
As noted earlier, a point mass only requires a first-order model:





Impulse Response of State Space Models
As derived in Book II [449, Appendix G], the impulse response of the state-space model can be summarized as
Thus, the




In our force-driven-mass example, we have ,
, and
. For a position output we have
while for a velocity
output we would set
. Choosing
simply feeds
the whole state vector to the output, which allows us to look at both
simultaneously:
Thus, when the input force is a unit pulse, which corresponds
physically to imparting momentum at time 0 (because the
time-integral of force is momentum and the physical area under a unit
sample is the sampling interval
), we see that the velocity after
time 0 is a constant
, or
, as expected from
conservation of momentum. If the velocity is constant, then the
position must grow linearly, as we see that it does:
. The finite difference approximation to the time-derivative
of
now gives
, for
, which
is consistent.
Zero-Input Response of State Space Models
The response of a state-space model Eq.(1.8) to initial
conditions, i.e., its initial state
, is given by

In our force-driven mass example, with the external force set to zero,
we have, from Eq.(1.9) or Eq.
(1.11),
![$\displaystyle \left[\begin{array}{c} x_{n+1} \\ [2pt] v_{n+1} \end{array}\right...
...ght]
\eqsp \left[\begin{array}{c} x_0+v_0 n T \\ [2pt] v_0 \end{array}\right].
$](http://www.dsprelated.com/josimages_new/pasp/img286.png)




Next Section:
Transfer Functions
Previous Section:
State Space Models