##
filter2

filter2 —
Performs filtering using a transposed form-II digital filter lattice with no time-varying control.

## Description

General purpose custom filter with time-varying pole control. The filter coefficients implement the following difference equation:

(1)*y(n) = b0*x[n] + b1*x[n-1] +...+ bM*x[n-M] - a1*y[n-1] -...- aN*y[n-N]

the system function for which is represented by:

B(Z) b0 + b1*Z^{-1} + ... + bM*Z^{-M}

H(Z) = ---- = --------------------------

A(Z) 1 + a1*Z^{-1} + ... + aN*Z^{-N}

## Syntax

ares **filter2** asig, iM, iN, ib0, ib1, ..., ibM, ia1, ia2, ..., iaN

kres **filter2** ksig, iM, iN, ib0, ib1, ..., ibM, ia1, ia2, ..., iaN

## Initialization

At initialization the number of zeros and poles of the filter are specified along with the corresponding zero and pole coefficients. The coefficients must be obtained by an external filter-design application such as Matlab and specified directly or loaded into a table via *GEN01*.

## Performance

The* filter2* opcodes perform filtering using a transposed form-II digital filter lattice with no time-varying control.

Since *filter2* implements generalized recursive filters, it can be used to specify a large range of general DSP algorithms. For example, a digital waveguide can be implemented for musical instrument modeling using a pair of *delayr* and *delayw* opcodes in conjunction with the *filter2* opcode.

## Examples

A first-order linear-phase lowpass linear-phase FIR filter operating on a k-rate signal:

## Credits

Author: Michael A. Casey |

M.I.T. |

Cambridge, Mass. |

1997 |

New in version 3.47