HARDT - The Ham Radio DSP Toolkit
Public Member Functions | List of all members
HBiQuadFilter< BIQUAD, T > Class Template Reference

#include <hbiquadfilter.h>

Inheritance diagram for HBiQuadFilter< BIQUAD, T >:
Inheritance graph
[legend]
Collaboration diagram for HBiQuadFilter< BIQUAD, T >:
Collaboration graph
[legend]

Public Member Functions

 HBiQuadFilter (HWriter< T > *writer, float fCutOff, float rate, float quality, float gain, size_t blocksize, HProbe< T > *probe=NULL)
 
 HBiQuadFilter (HWriterConsumer< T > *consumer, float fCutOff, float rate, float quality, float gain, size_t blocksize, HProbe< T > *probe=NULL)
 
 HBiQuadFilter (HReader< T > *reader, float fCutOff, float rate, float quality, float gain, size_t blocksize, HProbe< T > *probe=NULL)
 
 ~HBiQuadFilter ()
 
virtual void Filter (T *src, T *dest, size_t blocksize)
 
void SetCoefficients (float fCutOff, float rate, float quality, float gain, size_t blocksize)
 
- Public Member Functions inherited from HIirFilter< T >
 HIirFilter (HWriter< T > *writer, float *coefficients, int length, size_t blocksize, HProbe< T > *prope=NULL)
 
 HIirFilter (HWriterConsumer< T > *consumer, float *coefficients, int length, size_t blocksize, HProbe< T > *probe=NULL)
 
 HIirFilter (HReader< T > *reader, float *coefficients, int length, size_t blocksize, HProbe< T > *probe=NULL)
 
 ~HIirFilter ()
 
void SetCoefficients (float *coefficients, int length)
 
std::vector< float > GetCoefficients ()
 
- Public Member Functions inherited from HFilter< T >
 ~HFilter ()
 
int Write (T *src, size_t blocksize)
 
int Read (T *dest, size_t blocksize)
 
bool Start ()
 
bool Stop ()
 
bool Command (HCommand *command)
 
void Enable ()
 
void Disable ()
 
bool GetEnabled ()
 
- Public Member Functions inherited from HObject
 HObject ()
 
- Public Member Functions inherited from HWriter< T >
virtual ~HWriter ()=default
 
HWriter< T > * Writer ()
 
- Public Member Functions inherited from HReader< T >
virtual ~HReader ()=default
 
HReader< T > * Reader ()
 
- Public Member Functions inherited from HWriterConsumer< T >
HWriterConsumer< T > * Consumer ()
 

Additional Inherited Members

- Static Public Member Functions inherited from HIirFilter< T >
static HIirFilter< T > * Create (HWriter< T > *writer, size_t blocksize, char *coeffsFilename)
 
static HIirFilter< T > * Create (HWriterConsumer< T > *consumer, size_t blocksize, char *coeffsFilename)
 
static HIirFilter< T > * Create (HReader< T > *reader, size_t blocksize, char *coeffsFilename)
 
- Static Public Member Functions inherited from HFilter< T >
static std::vector< float > ReadCoeffsFromFile (std::string filename)
 
static std::vector< float > ReadCoeffsFromFile (char *filename)
 
- Protected Member Functions inherited from HIirFilter< T >
void Init (float *coefficients, int length)
 
- Protected Member Functions inherited from HFilter< T >
 HFilter (HWriter< T > *writer, size_t blocksize, HProbe< T > *probe=NULL)
 
 HFilter (HWriterConsumer< T > *consumer, size_t blocksize, HProbe< T > *probe=NULL)
 
 HFilter (HReader< T > *reader, size_t blocksize, HProbe< T > *probe=NULL)
 
void SetWriter (HWriter< T > *writer)
 
- Protected Attributes inherited from HFilter< T >
int _blocksize
 

Detailed Description

template<class BIQUAD, class T>
class HBiQuadFilter< BIQUAD, T >

A generic biquad filter. When created, give the wanted biquad type (HHighpassBiquad, HLowpassBiQuad, etc.) and the base datatype. Coefficients will be calculated by the specific biquad implementation and used to initialize a 2. order IIR (biquad) filter.

Examples
readers_and_consumers.cpp, readers_and_writers.cpp, and saq.cpp.

Constructor & Destructor Documentation

◆ HBiQuadFilter() [1/3]

template<class BIQUAD , class T >
HBiQuadFilter< BIQUAD, T >::HBiQuadFilter ( HWriter< T > *  writer,
float  fCutOff,
float  rate,
float  quality,
float  gain,
size_t  blocksize,
HProbe< T > *  probe = NULL 
)
inline

Construct a new HBiQuadFilter. The biquad type must be given together with the base datatype and the filter specifications

◆ HBiQuadFilter() [2/3]

template<class BIQUAD , class T >
HBiQuadFilter< BIQUAD, T >::HBiQuadFilter ( HWriterConsumer< T > *  consumer,
float  fCutOff,
float  rate,
float  quality,
float  gain,
size_t  blocksize,
HProbe< T > *  probe = NULL 
)
inline

Construct a new HBiQuadFilter. The biquad type must be given together with the base datatype and the filter specifications

◆ HBiQuadFilter() [3/3]

template<class BIQUAD , class T >
HBiQuadFilter< BIQUAD, T >::HBiQuadFilter ( HReader< T > *  reader,
float  fCutOff,
float  rate,
float  quality,
float  gain,
size_t  blocksize,
HProbe< T > *  probe = NULL 
)
inline

Construct a new HBiQuadFilter. The biquad type must be given together with the base datatype and the filter specifications

◆ ~HBiQuadFilter()

template<class BIQUAD , class T >
HBiQuadFilter< BIQUAD, T >::~HBiQuadFilter ( )
inline

Default destructor

Member Function Documentation

◆ Filter()

template<class BIQUAD , class T >
virtual void HBiQuadFilter< BIQUAD, T >::Filter ( T *  src,
T *  dest,
size_t  blocksize 
)
inlinevirtual

Called to run the IIR filter calculations on a block of samples

Reimplemented from HIirFilter< T >.

◆ SetCoefficients()

template<class BIQUAD , class T >
void HBiQuadFilter< BIQUAD, T >::SetCoefficients ( float  fCutOff,
float  rate,
float  quality,
float  gain,
size_t  blocksize 
)
inline

Set filter coefficients by providing filter specifications


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