Public Member Functions |
| | gri_iir (const std::vector< tap_type > &fftaps, const std::vector< tap_type > &fbtaps) throw (std::invalid_argument) |
| | Construct an IIR with the given taps.
|
| | gri_iir () |
| | ~gri_iir () |
| o_type | filter (const i_type input) |
| | compute a single output value.
|
| void | filter_n (o_type output[], const i_type input[], long n) |
| | compute an array of N output values. input must have N valid entries.
|
| unsigned | ntaps_ff () const |
| unsigned | ntaps_fb () const |
| void | set_taps (const std::vector< tap_type > &fftaps, const std::vector< tap_type > &fbtaps) throw (std::invalid_argument) |
| | install new taps.
|
template<class i_type, class o_type, class tap_type>
class gri_iir< i_type, o_type, tap_type >
base class template for Infinite Impulse Response filter (IIR)
template<class i_type, class o_type, class tap_type>
| gri_iir< i_type, o_type, tap_type >::gri_iir |
( |
const std::vector< tap_type > & |
fftaps, |
|
|
const std::vector< tap_type > & |
fbtaps |
|
) |
| throw (std::invalid_argument) |
|
inline |
Construct an IIR with the given taps.
This filter uses the Direct Form I implementation, where
\p fftaps contains the feed-forward taps, and \p fbtaps the feedback ones.
\p fftaps and \p fbtaps must have equal numbers of taps
The input and output satisfy a difference equation of the form
with the corresponding rational system function
Note that some texts define the system function with a + in the denominator.
If you're using that convention, you'll need to negate the feedback taps.