Applies an IIR filter to a data stream.
- Author
- Creighton, T. D.
Description
These functions apply a generic time-domain filter given by an object *filter
of type REAL4IIRFilter
or REAL8IIRFilter
to a list *vector
of data representing a time series. This is done in place using the auxiliary data series formalism described in IIRFilter.h, so as to accomodate potentially large data series. To filter a piece of a larger dataset, the calling routine may pass a vector structure whose data pointer and length fields specify a subset of a larger vector.
The routine LALDIIRFilterREAL4Vector()
applies a double-precision filter to single-precision data. It makes a single pass through the data, continuously updating the filter history at each step rather than storing the auxiliary array in-place. This reduces roundoff error by keeping all intermediate results to double-precision.
Algorithm
The implementation of LALDIIRFilterREAL4Vector()
not only has lower truncation errors than LALIIRFilterREAL4Vector()
, but also appears to be more computationally efficient, for reasons I have not yet determined; see the documentation for IIRFilterTest.c. These combine to suggest that LALDIIRFilterREAL4Vector()
is the better overall algorithm for filtering REAL4Vectors
.
◆ LALIIRFilterREAL4Vector()
◆ LALIIRFilterREAL8Vector()
◆ LALDIIRFilterREAL4Vector()
◆ COMPLEX_DATA
◆ SINGLE_PRECISION [1/2]
◆ SINGLE_PRECISION [2/2]