Accelerating the pace of engineering and science

# dfilt.statespace

Discrete-time, state-space filter

## Syntax

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

## Description

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\left(n+1\right)=Ax\left(n\right)+Bu\left(n\right)\\ y\left(n\right)=Cx\left(n\right)+Du\left(n\right)\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.

## Examples

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)
```