## Documentation |

Discrete-time, state-space filter

`Hd = dfilt.statespace(A,B,C,D)Hd = dfilt.statespace`

`Hd = dfilt.statespace(A,B,C,D)` returns
a discrete-time state-space filter, `Hd`, with rectangular
arrays `A`, `B`, `C`,
and `D`.

`A`, `B`, `C`,
and `D` are from the matrix or state-space form of
a filter's difference equations

$$\begin{array}{c}x(n+1)=Ax(n)+Bu(n)\\ y(n)=Cx(n)+Du(n)\end{array}$$

where *x*(*n*) is the vector
states at time *n*, *u*(*n*)
is the input at time *n*, `y` is
the output at time *n*, `A` is the
state-transition matrix, `B` is the input-to-state
transmission matrix, `C` is the state-to-output transmission
matrix, and `D` is the input-to-output transmission
matrix. For single-channel systems, `A` is an `m`-by-`m` matrix
where `m` is the order of the filter, `B` is
a column vector, `C` is a row vector, and `D` is
a scalar.

`Hd = dfilt.statespace` returns
a default, discrete-time state-space filter, `Hd`,
with `A`=[ ], `B`=[ ], `C`=[
], and `D`=1. This filter passes the input through
to the output unchanged.

The resulting filter states column vector has the same number
of rows as the number of rows of `A` or `B`.

Create a second-order, state-space filter structure from a second-order, lowpass Butterworth design.

[A,B,C,D] = butter(2,0.5); Hd = dfilt.statespace(A,B,C,D)

Was this topic helpful?