arduino-audio-tools
Loading...
Searching...
No Matches
BiQuadDF1< T > Class Template Referenceabstract

Second-order IIR filter in Direct Form I. Maintains separate input and output histories (x and y delay lines). Requires more memory than DF2 but is less susceptible to quantization issues with fixed-point arithmetic. More...

#include <CodecOpusOgg.h>

Inheritance diagram for BiQuadDF1< T >:
Filter< float > Filter< float >

Public Member Functions

 BiQuadDF1 (const T(&b)[3], const T(&a)[2])
 BiQuadDF1 (const T(&b)[3], const T(&a)[2])
 BiQuadDF1 (const T(&b)[3], const T(&a)[2], T gain)
 BiQuadDF1 (const T(&b)[3], const T(&a)[2], T gain)
 BiQuadDF1 (const T(&b)[3], const T(&a)[3])
 BiQuadDF1 (const T(&b)[3], const T(&a)[3])
 BiQuadDF1 (const T(&b)[3], const T(&a)[3], T gain)
 BiQuadDF1 (const T(&b)[3], const T(&a)[3], T gain)
T process (T value) override
T process (T value) override
virtual float process (float in)=0
 Processes the input value and returns the filtered output value.
void reset () override
void reset () override

Protected Member Functions

 BiQuadDF1 ()=default
 BiQuadDF1 ()=default

Protected Attributes

T a_1 = 0
T a_2 = 0
T b_0 = 0
T b_1 = 0
T b_2 = 0
T x_0 = 0
T x_1 = 0
T y_1 = 0
T y_2 = 0

Detailed Description

template<typename T = float>
class audio_tools::audio_tools::BiQuadDF1< T >

Second-order IIR filter in Direct Form I. Maintains separate input and output histories (x and y delay lines). Requires more memory than DF2 but is less susceptible to quantization issues with fixed-point arithmetic.

Author
Pieter P tttapa / pschatzmann
Template Parameters
Tsample type (use float or double, not integer types)

Constructor & Destructor Documentation

◆ BiQuadDF1() [1/10]

template<typename T = float>
BiQuadDF1 ( const T(&) b[3],
const T(&) a[3] )
inline

◆ BiQuadDF1() [2/10]

template<typename T = float>
BiQuadDF1 ( const T(&) b[3],
const T(&) a[2] )
inline

◆ BiQuadDF1() [3/10]

template<typename T = float>
BiQuadDF1 ( const T(&) b[3],
const T(&) a[2],
T gain )
inline

◆ BiQuadDF1() [4/10]

template<typename T = float>
BiQuadDF1 ( const T(&) b[3],
const T(&) a[3],
T gain )
inline

◆ BiQuadDF1() [5/10]

template<typename T = float>
BiQuadDF1 ( )
protecteddefault

◆ BiQuadDF1() [6/10]

template<typename T = float>
BiQuadDF1 ( const T(&) b[3],
const T(&) a[3] )
inline

◆ BiQuadDF1() [7/10]

template<typename T = float>
BiQuadDF1 ( const T(&) b[3],
const T(&) a[2] )
inline

◆ BiQuadDF1() [8/10]

template<typename T = float>
BiQuadDF1 ( const T(&) b[3],
const T(&) a[2],
T gain )
inline

◆ BiQuadDF1() [9/10]

template<typename T = float>
BiQuadDF1 ( const T(&) b[3],
const T(&) a[3],
T gain )
inline

◆ BiQuadDF1() [10/10]

template<typename T = float>
BiQuadDF1 ( )
protecteddefault

Member Function Documentation

◆ process() [1/3]

template<typename T = float>
T process ( T value)
inlineoverride

◆ process() [2/3]

template<typename T = float>
T process ( T value)
inlineoverride

◆ process() [3/3]

virtual float process ( float in)
pure virtualinherited

Processes the input value and returns the filtered output value.

Implemented in BiQuadDF1< float >, and BiQuadDF2< float >.

◆ reset() [1/2]

template<typename T = float>
void reset ( )
inlineoverridevirtual

Clears the internal state (delay lines) without changing the coefficients. Call after reconfiguring filter parameters via begin() to avoid transients from stale state.

Reimplemented from Filter< float >.

◆ reset() [2/2]

template<typename T = float>
void reset ( )
inlineoverridevirtual

Clears the internal state (delay lines) without changing the coefficients. Call after reconfiguring filter parameters via begin() to avoid transients from stale state.

Reimplemented from Filter< float >.

Member Data Documentation

◆ a_1

template<typename T = float>
T a_1 = 0
protected

◆ a_2

template<typename T = float>
T a_2 = 0
protected

◆ b_0

template<typename T = float>
T b_0 = 0
protected

◆ b_1

template<typename T = float>
T b_1 = 0
protected

◆ b_2

template<typename T = float>
T b_2 = 0
protected

◆ x_0

template<typename T = float>
T x_0 = 0
protected

◆ x_1

template<typename T = float>
T x_1 = 0
protected

◆ y_1

template<typename T = float>
T y_1 = 0
protected

◆ y_2

template<typename T = float>
T y_2 = 0
protected

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