Signal Processing Toolbox |

Find initial conditions for a transposed direct form II filter implementation

**Syntax**

**Description**

`z`

finds the initial conditions, ` = `

filtic(b,a,y,x)
`z`

, for the delays in the *transposed direct form II* filter implementation given past outputs `y`

and inputs `x`

. The vectors `b`

and `a`

represent the numerator and denominator coefficients, respectively, of the filter's transfer function.

The vectors `x`

and `y`

contain the most recent input or output first, and oldest input or output last.

where `n`

is `length(b)-1`

(the numerator order) and `m`

is `length(a)-1`

(the denominator order). If` length(x)`

is less than `n`

, `filtic`

pads it with zeros to length `n`

; if `length(y)`

is less than `m`

, `filtic`

pads it with zeros to length `m`

. Elements of `x`

beyond `x(n-1)`

and elements of `y`

beyond `y(m-1)`

are unnecessary so `filtic`

ignores them.

Output `z`

is a column vector of length equal to the larger of *n* and *m*. `z`

describes the state of the delays given past inputs `x`

and past outputs `y`

.

`z`

assumes that the input ` = `

filtic(b,a,y)
`x`

is 0 in the past.

The transposed direct form II structure is

where *n*-1 is the filter order.

`filtic`

works for both real and complex inputs.

**Algorithm**

`filtic`

performs a reverse difference equation to obtain the delay states `z`

.

**Diagnostics**

If any of the input arguments `y`

, `x`

, `b`

, or `a`

is not a vector (that is, if any argument is a scalar or array), `filtic`

gives the following error message:

**See Also**

**References**

[1] Oppenheim, A.V., and R.W. Schafer, *Discrete-Time Signal Processing*, Prentice-Hall, 1989, pp. 296, 301-302.

filtfilt | fir1 |