Flan
Public Member Functions | Static Public Member Functions | Friends | List of all members
r8b::CDSPFracDelayFilterBank Class Reference

Sinc function-based fractional delay filter bank class. More...

#include <CDSPFracInterpolator.h>

Inheritance diagram for r8b::CDSPFracDelayFilterBank:
Inheritance graph
[legend]
Collaboration diagram for r8b::CDSPFracDelayFilterBank:
Collaboration graph
[legend]

Public Member Functions

 CDSPFracDelayFilterBank (const int aFilterFracs, const int aElementSize, const int aInterpPoints, const double aReqAtten, const bool aIsThird)
 Constructor. More...
 
int getFilterLen () const
 Function returns the length of the filter.
 
int getFilterFracs () const
 Function returns the number of fractional positions sampled by the bank.
 
const double & operator[] (const int i) const
 
void unref ()
 This function should be called when the filter obtained via the filter bank cache is no longer needed.
 

Static Public Member Functions

static void roundReqAtten (double &att, const bool aIsThird)
 Function "rounds" the specified attenuation to the nearest effective value. More...
 

Friends

class CDSPFracDelayFilterBankCache
 

Detailed Description

Sinc function-based fractional delay filter bank class.

Class implements storage and initialization of a bank of sinc-based fractional delay filters, expressed as 0th, 1st, 2nd or 3rd order polynomial interpolation coefficients. The filters are windowed by the "Kaiser" power-raised window function.

Constructor & Destructor Documentation

◆ CDSPFracDelayFilterBank()

r8b::CDSPFracDelayFilterBank::CDSPFracDelayFilterBank ( const int  aFilterFracs,
const int  aElementSize,
const int  aInterpPoints,
const double  aReqAtten,
const bool  aIsThird 
)
inline

Constructor.

Parameters
aFilterFracsThe number of fractional delay positions to sample, -1 - use default.
aElementSizeThe size of each filter's tap, in "double" values. This parameter corresponds to the complexity of interpolation. 4 should be set for 3rd order, 3 for 2nd order, 2 for linear interpolation, 1 for whole-numbered stepping.
aInterpPointsThe number of points the interpolation is based on. This value should not be confused with the ElementSize. Set to 2 for linear or no interpolation.
aReqAttenRequired filter attentuation.
aIsThird"True" if one-third filter is required.

Member Function Documentation

◆ operator[]()

const double& r8b::CDSPFracDelayFilterBank::operator[] ( const int  i) const
inline
Parameters
iFilter index, in the range 0 to FilterFracs, inclusive.
Returns
Reference to the filter.

◆ roundReqAtten()

static void r8b::CDSPFracDelayFilterBank::roundReqAtten ( double &  att,
const bool  aIsThird 
)
inlinestatic

Function "rounds" the specified attenuation to the nearest effective value.

Parameters
[in,out]attRequired filter attentuation. Will be rounded to the nearest value.
aIsThird"True" if one-third filter is required.

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