#include <DigitalFilter.h>
Public Member Functions | |
IIRFilter (size_t order, const double *acoeffs, const double *bcoeffs) | |
IIRFilter (std::complex< double > gain, size_t nzeroes, const std::complex< double > *digiZeroes, size_t npoles, const std::complex< double > *digiPoles) | |
IIRFilter (const FIRFilter &fir) | |
virtual void | filterOut (size_t n, const double *w, double *out) const |
virtual std::complex< double > | transfer (std::complex< double > z) const |
size_t | getOrder () const |
size_t | nAcoeffs () const |
size_t | nBcoeffs () const |
virtual size_t | nDigiPoles () const |
virtual size_t | nDigiZeroes () const |
virtual const std::complex< double > * | getDigiPoles () const |
virtual const std::complex< double > * | getDigiZeroes () const |
std::complex< double > | getDigiGain () const |
TString | asString () const |
virtual void | Draw (const char *opt="", int color=1) const |
Public Member Functions inherited from FFTtools::DigitalFilter | |
virtual double * | filter (size_t n, const double *w) const |
virtual void | filterGraph (TGraph *g, bool filterErrors=false) const |
virtual void | filterReplace (size_t n, double *w) const |
virtual void | impulse (size_t n, double *out, size_t delay=0) const |
virtual double * | impulse (size_t n, size_t delay=0) const |
TGraph * | impulseGraph (size_t n=101, double dt=1, size_t delay=50) const |
virtual void | response (size_t n, TGraph **amplitude_response, TGraph **phase_response, TGraph **group_delay=0) const |
virtual TGraph * | amplitudeResponse (size_t n=101) const |
virtual TGraph * | phaseResponse (size_t n=101) const |
virtual TGraph * | groupDelay (size_t n=101) const |
double | avgDelay (double min_freq=0, double max_freq=1, int n=101) const |
virtual TPad * | drawResponse (TPad *c=0, int n=101, int delay=50) const |
Protected Member Functions | |
void | computePolesAndZeroes () |
void | computeCoeffsFromDigiPoles () |
IIR filter implementation
An IIR Filter is a rational function of z^-1 (which, of course, is e^(-jw), the unit delay) )
b0 + b1 z^-1 + b2 z^-2 + ...
H(z) = ----------------------------— a0 + a1 z^-1 + a2 z^-2 + ...
a0 is typically 1 (otherwise b0 and a0 are degenerate), but this isn't enforced.
Definition at line 255 of file DigitalFilter.h.
|
inline |
initialize filter from digital zeroes/poles/gain
Definition at line 264 of file DigitalFilter.h.
FFTtools::IIRFilter::IIRFilter | ( | const FIRFilter & | fir | ) |
initialize filter from an FIR filter. If the FIR filter has a large delay, this might end up having quite a large order
Definition at line 702 of file DigitalFilter.cxx.
|
virtual |
Draw pole zero diagram
Allowed options: same - draw on top circ - draw unit circle pol - draw polar axis
Definition at line 740 of file DigitalFilter.cxx.
|
virtual |
Filter input with previously allocated output.
n | size of waveform to filter |
w | input waveform |
out | output waveform (assumed to be allocated) |
Implements FFTtools::DigitalFilter.
Definition at line 549 of file DigitalFilter.cxx.