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

#include <hcascadedbiquadfilter.h>

Inheritance diagram for HCascadedBiQuadFilter< T >:
Inheritance graph
[legend]
Collaboration diagram for HCascadedBiQuadFilter< T >:
Collaboration graph
[legend]

Public Member Functions

 HCascadedBiQuadFilter (HWriter< T > *writer, float *coefficients, int length, size_t blocksize, HProbe< T > *probe=NULL)
 
 HCascadedBiQuadFilter (HWriterConsumer< T > *consumer, float *coefficients, int length, size_t blocksize, HProbe< T > *probe=NULL)
 
 HCascadedBiQuadFilter (HReader< T > *reader, float *coefficients, int length, size_t blocksize, HProbe< T > *probe=NULL)
 
 HCascadedBiQuadFilter (HWriter< T > *writer, std::vector< float * > biquadCoefficients, size_t blocksize, HProbe< T > *probe=NULL)
 
 HCascadedBiQuadFilter (HWriterConsumer< T > *consumer, std::vector< float * > biquadCoefficients, size_t blocksize, HProbe< T > *probe=NULL)
 
 HCascadedBiQuadFilter (HReader< T > *reader, std::vector< float * > biquadCoefficients, size_t blocksize, HProbe< T > *probe=NULL)
 
 ~HCascadedBiQuadFilter ()
 
int Write (T *src, size_t blocksize)
 
int Read (T *dest, size_t blocksize)
 
bool Start ()
 
bool Stop ()
 
void SetCoefficients (float *coefficients, int length)
 
bool Command (HCommand *command)
 
- Public Member Functions inherited from HReader< T >
virtual ~HReader ()=default
 
HReader< T > * Reader ()
 
- 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 HWriterConsumer< T >
HWriterConsumer< T > * Consumer ()
 

Static Public Member Functions

static HCascadedBiQuadFilter< T > * Create (HWriter< T > *writer, size_t blocksize, char *coeffsFilename)
 
static HCascadedBiQuadFilter< T > * Create (HWriterConsumer< T > *consumer, size_t blocksize, char *coeffsFilename)
 
static HCascadedBiQuadFilter< T > * Create (HReader< T > *reader, size_t blocksize, char *coeffsFilename)
 

Detailed Description

template<class T>
class HCascadedBiQuadFilter< T >

A generic cascaded biquad filter (a number of biquads cascaded efter each other).

Given a set of coefficients, usually calculated by a filterdesign tool - but they can be taken from one or several generic biquads (HHighpassBiQuad, HNotchBiQuad, etc.).

The parameters must be provided in the order: b0,1 b1,1 b2,1 a1,1 a2,1 b0,2 b1,2 b2,2 a1,2 a2,2 b0,... b1,... b2,... a1,... a2,... b0,N b1,N b2,N a1,N a2,N

The coefficients can either be defined as an array in the source code, or come from a file - use the factory method Create() to read such coefficients. (this is practical when you are finetuning a filter)

Examples
saq.cpp.

Constructor & Destructor Documentation

◆ HCascadedBiQuadFilter() [1/6]

template<class T >
HCascadedBiQuadFilter< T >::HCascadedBiQuadFilter ( HWriter< T > *  writer,
float *  coefficients,
int  length,
size_t  blocksize,
HProbe< T > *  probe = NULL 
)

Construct a new HCascadedBiQuadFilter

◆ HCascadedBiQuadFilter() [2/6]

template<class T >
HCascadedBiQuadFilter< T >::HCascadedBiQuadFilter ( HWriterConsumer< T > *  consumer,
float *  coefficients,
int  length,
size_t  blocksize,
HProbe< T > *  probe = NULL 
)

Construct a new HCascadedBiQuadFilter

◆ HCascadedBiQuadFilter() [3/6]

template<class T >
HCascadedBiQuadFilter< T >::HCascadedBiQuadFilter ( HReader< T > *  reader,
float *  coefficients,
int  length,
size_t  blocksize,
HProbe< T > *  probe = NULL 
)

Construct a new HCascadedBiQuadFilter

◆ HCascadedBiQuadFilter() [4/6]

template<class T >
HCascadedBiQuadFilter< T >::HCascadedBiQuadFilter ( HWriter< T > *  writer,
std::vector< float * >  biquadCoefficients,
size_t  blocksize,
HProbe< T > *  probe = NULL 
)

Construct a new HCascadedBiQuadFilter

◆ HCascadedBiQuadFilter() [5/6]

template<class T >
HCascadedBiQuadFilter< T >::HCascadedBiQuadFilter ( HWriterConsumer< T > *  consumer,
std::vector< float * >  biquadCoefficients,
size_t  blocksize,
HProbe< T > *  probe = NULL 
)

Construct a new HCascadedBiQuadFilter

◆ HCascadedBiQuadFilter() [6/6]

template<class T >
HCascadedBiQuadFilter< T >::HCascadedBiQuadFilter ( HReader< T > *  reader,
std::vector< float * >  biquadCoefficients,
size_t  blocksize,
HProbe< T > *  probe = NULL 
)

Construct a new HCascadedBiQuadFilter

◆ ~HCascadedBiQuadFilter()

template<class T >
HCascadedBiQuadFilter< T >::~HCascadedBiQuadFilter

Default destructor

Member Function Documentation

◆ Command()

template<class T >
bool HCascadedBiQuadFilter< T >::Command ( HCommand command)
inlinevirtual

Execute or carry through a command

Implements HReader< T >.

◆ Create() [1/3]

template<class T >
static HCascadedBiQuadFilter<T>* HCascadedBiQuadFilter< T >::Create ( HReader< T > *  reader,
size_t  blocksize,
char *  coeffsFilename 
)
inlinestatic

Factory method to create a new cascaded filter from the name of a file with coefficients

◆ Create() [2/3]

template<class T >
static HCascadedBiQuadFilter<T>* HCascadedBiQuadFilter< T >::Create ( HWriter< T > *  writer,
size_t  blocksize,
char *  coeffsFilename 
)
inlinestatic

Factory method to create a new cascaded filter from the name of a file with coefficients

◆ Create() [3/3]

template<class T >
static HCascadedBiQuadFilter<T>* HCascadedBiQuadFilter< T >::Create ( HWriterConsumer< T > *  consumer,
size_t  blocksize,
char *  coeffsFilename 
)
inlinestatic

Factory method to create a new cascaded filter from the name of a file with coefficients

◆ Read()

template<class T >
int HCascadedBiQuadFilter< T >::Read ( T *  dest,
size_t  blocksize 
)
virtual

Read a block of samples from the filter

Implements HReader< T >.

◆ SetCoefficients()

template<class T >
void HCascadedBiQuadFilter< T >::SetCoefficients ( float *  coefficients,
int  length 
)

Set filter coefficients

◆ Start()

template<class T >
bool HCascadedBiQuadFilter< T >::Start
virtual

Prepare filter for operation

Reimplemented from HReader< T >.

◆ Stop()

template<class T >
bool HCascadedBiQuadFilter< T >::Stop
virtual

Shutdown the filter

Reimplemented from HReader< T >.

◆ Write()

template<class T >
int HCascadedBiQuadFilter< T >::Write ( T *  src,
size_t  blocksize 
)
virtual

Write a block of samples to the filter

Implements HWriter< T >.


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