Accelerating the pace of engineering and science

# filtic

Initial conditions for 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.

$\begin{array}{l}x=\left[x\left(-1\right),x\left(-2\right),x\left(-3\right),\dots ,x\left(-n\right)\right]\\ y=\left[y\left(-1\right),y\left(-2\right),y\left(-3\right),\dots ,y\left(-m\right)\right]\end{array}$

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 shown in the following illustration.

n – 1 is the filter order.

filtic works for both real and complex inputs.

## 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.
```

expand all

### Algorithms

filtic performs a reverse difference equation to obtain the delay states z.

## References

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