IIRFilter Class Reference
[Recursive Filters]

Implements a discrete filter. More...

#include <IIRFilter.h>

List of all members.

Public Member Functions

 IIRFilter (vector< Decimal > &inputCoeff, vector< Decimal > &outputCoef)
 One input constructor.
 IIRFilter (vector< vector< Decimal > > &inputCoeff, vector< Decimal > &outputCoef)
 Multi input constructor.
 ~IIRFilter ()
 IIRFilter (const IIRFilter &t)
 Copy constructor.
IIRFilteroperator= (const IIRFilter &t)
 Assigment operator =.
void step (const Decimal &in, Decimal &out)
 Executes a step of the recursive filter.
void step (const vector< Decimal > &in, Decimal &out)
 Executes a step of the recursive filter, in case of multiple inputs.


Detailed Description

Implements a discrete filter.

Author:
Antonio Franchi

Antonio Franchi


Constructor & Destructor Documentation

IIRFilter::IIRFilter ( vector< Decimal > &  inputCoeff,
vector< Decimal > &  outputCoef 
)

One input constructor.

Parameters:
[in] inputCoeff Coefficients of the denominator of the Zeta transform.
Ex. If you want b0 + b1*z + b2*z^2 +z^3 you have to set:
inputCoeff[0] = b0, inputCoeff[1] = b1, inputCoeff[2] = b2
Note that the last coefficient is not involved since it is always considered as 1.
[in] outputCoeff Coefficients of the numerator of the Zeta transform.
Ex. If you want a0 + a1*z + a2*z^2 + a3*z^3 you have to set:
outputCoeff[0] = a0, outputCoeff[1] = a1, outputCoeff[2] = a2, outputCoeff[3] = a3
Note that if outputCoeff.size() > inputCoeff.size() + 1 then outputCoeff is cut at the entry outputCoeff[inputCoeff.size()] (included). This is needed to have a causal filter.

IIRFilter::IIRFilter ( vector< vector< Decimal > > &  inputCoeff,
vector< Decimal > &  outputCoef 
)

Multi input constructor.

Parameters:
[in] inputCoeff Vector of Coefficients of the denominators of the Zeta transform for each different input.
Ex. If you want b0 + b1*z + b2*z^2 +z^3 you have to set:
inputCoeff[0] = b0, inputCoeff[1] = b1, inputCoeff[2] = b2
Note that the last coefficient is not involved since it is always considered as 1.
[in] outputCoeff Coefficients of the numerator of the Zeta transform.
Ex. If you want a0 + a1*z + a2*z^2 + a3*z^3 you have to set:
outputCoeff[0] = a0, outputCoeff[1] = a1, outputCoeff[2] = a2, outputCoeff[3] = a3
Note that if outputCoeff.size() > inputCoeff.size() + 1 then outputCoeff is cut at the entry outputCoeff[inputCoeff.size()] (included). This is needed to have a causal filter.

IIRFilter::~IIRFilter (  ) 

IIRFilter::IIRFilter ( const IIRFilter t  ) 

Copy constructor.


Member Function Documentation

IIRFilter & IIRFilter::operator= ( const IIRFilter t  ) 

Assigment operator =.

void IIRFilter::step ( const Decimal in,
Decimal out 
)

Executes a step of the recursive filter.

Note:
If the filter has more than one input the inputs other than the first are put to zero.
Parameters:
[in] in Input value.
[out] out Output value.

void IIRFilter::step ( const vector< Decimal > &  in,
Decimal out 
)

Executes a step of the recursive filter, in case of multiple inputs.

Parameters:
[in] in Input values.
[out] out Output value.


The documentation for this class was generated from the following files:

Generated on Mon Feb 20 07:01:09 2017 for MIP by  doxygen 1.5.6