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.