Signal Processing Toolbox
filtic

Find initial conditions for a transposed direct form II filter implementation

Syntax

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

Description

```z = filtic(b,a,y,x) ``` finds the initial conditions, `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 = filtic(b,a,y) ``` assumes that the input `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:

• ```Requires vector inputs.
```

See Also

`filter`, `filtfilt`

References

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

 filtfilt fir1