IIR_Filter

Author : Bernard Schutz

Version : 1.0

Input Types : VectorType
Output Types : VectorType
Date : 21 Feb 2002 

Contents


Description of IIR_Filter

The unit called IIR_Filter applies a direct* IIR filter to the input data set. The filter is defined by the user giving two sets of coefficients {a(j)} and {b(j)}, which are applied to the input data {x(j)} to produce output data {y(j)}by the formula

y(n) = a(0)x(n) + a(1)x(n-1) + a(2)x(n-2) + ... - b(0)y(n-1) - b(1)y(n-2) - ...  (NB: our convention is that the b*y terms are subtracted)

This is re-applied at each value of n.

The user can select whether to continue the data values {x(n)} and {y(n)} across the successive data sets. When the algorithm starts on a new data set it assumes that earlier values of x and y (i.e. x(-1), y(-1), etc) are all zero.

For more information, see the help file on time-domain filtering in Triana.
 

Using FIR_Filter

IIR_Filter's parameter window (double-click on the unit) is used to set the filter coefficients {a(j)}and {b(j)}. The user enters any number of coefficients, separated by spaces. The order of the filter is assumed to be the number of such coefficients in the two sequences, which do not have to be the same length. The user can also choose whether to continue the filter from one data set to the next when the unit is accepting successive data sets. This option is selected by default. If each input should be treated as a new set then the check-box should be un-checked. The user must choose the filter coefficients according to what kind of effect is desired. Special care should be exercised in choosing the sequence {b(j)}, so that the filter remains stable.



*A "direct" filter is applied by convolution on the input data values. It does not use Fourier techniques. However, the input data set is allowed to be any VectorType, so that it could be time-series data or spectral data.