GNU Radio 3.7.1 C++ API
|
IIR filter with float input, float output and double taps. More...
#include <iir_filter_ffd.h>
Public Types | |
typedef boost::shared_ptr < iir_filter_ffd > | sptr |
Public Member Functions | |
virtual void | set_taps (const std::vector< double > &fftaps, const std::vector< double > &fbtaps)=0 |
Static Public Member Functions | |
static sptr | make (const std::vector< double > &fftaps, const std::vector< double > &fbtaps, bool oldstyle=true) |
IIR filter with float input, float output and double taps.
This filter uses the Direct Form I implementation, where fftaps
contains the feed-forward taps, and fbtaps
the feedback ones.
oldstyle:
The old style of the IIR filter uses feedback taps that are negative of what most definitions use (scipy and Matlab among them). This parameter keeps using the old GNU Radio style and is set to TRUE by default. When taps generated from scipy, Matlab, or gr_filter_design, use the new style by setting this to FALSE.
The input and output satisfy a difference equation of the form \f{ y[n] - \sum_{k=1}^{M} a_k y[n-k] = \sum_{k=0}^{N} b_k x[n-k] \f}
with the corresponding rational system function \f{ H(z) = \ frac{\sum_{k=0}^{M} b_k z^{-k}}{1 - \sum_{k=1}^{N} a_k z^{-k}} \f}
static sptr gr::filter::iir_filter_ffd::make | ( | const std::vector< double > & | fftaps, |
const std::vector< double > & | fbtaps, | ||
bool | oldstyle = true |
||
) | [static] |
virtual void gr::filter::iir_filter_ffd::set_taps | ( | const std::vector< double > & | fftaps, |
const std::vector< double > & | fbtaps | ||
) | [pure virtual] |