Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
Loading...
Searching...
No Matches
Aleph::FFT< Real >::LFilter Class Reference

Stateful direct-form II transposed IIR filter. More...

#include <fft.H>

Collaboration diagram for Aleph::FFT< Real >::LFilter:
[legend]

Public Member Functions

 LFilter ()=default
 Default constructor for an unconfigured LFilter.
 
 LFilter (const Array< Real > &numerator, const Array< Real > &denominator)
 Construct a linear filter from numerator and denominator arrays.
 
 LFilter (const IIRCoefficients &coeffs)
 Construct a linear filter from IIRCoefficients.
 
 LFilter (const BiquadSection &section)
 Construct a linear filter from a single BiquadSection.
 
template<typename NumContainer , typename DenContainer >
requires Is_Real_Container<NumContainer>
and Is_Real_Container< DenContainerLFilter (const NumContainer &numerator, const DenContainer &denominator)
 Construct a linear filter from any real containers.
 
size_t order () const noexcept
 Returns the filter order (number of feedback coefficients - 1).
 
bool configured () const noexcept
 Returns whether the filter has been initialized with coefficients.
 
const IIRCoefficientscoefficients () const noexcept
 Returns the active normalized filter coefficients.
 
const Array< Real > & state () const noexcept
 Returns the current internal delay-line state.
 
void reset ()
 Resets the delay-line state to zero.
 
void set_state (const Array< Real > &new_state)
 Manually overrides the delay-line state.
 
Array< Realfilter (const Array< Real > &signal)
 Processes a signal block through the stateful filter.
 
template<typename Container >
requires Is_Real_Container<Container>
Array< Realfilter (const Container &signal)
 Processes a real-valued container through the stateful filter.
 

Private Member Functions

void require_configured (const char *ctx) const
 
void initialize_state ()
 

Private Attributes

IIRCoefficients coeffs_
 
Array< Realstate_
 
bool configured_ = false
 

Detailed Description

template<std::floating_point Real = double>
class Aleph::FFT< Real >::LFilter

Stateful direct-form II transposed IIR filter.

Definition at line 11462 of file fft.H.

Constructor & Destructor Documentation

◆ LFilter() [1/5]

template<std::floating_point Real = double>
Aleph::FFT< Real >::LFilter::LFilter ( )
default

Default constructor for an unconfigured LFilter.

◆ LFilter() [2/5]

template<std::floating_point Real = double>
Aleph::FFT< Real >::LFilter::LFilter ( const Array< Real > &  numerator,
const Array< Real > &  denominator 
)
inlineexplicit

Construct a linear filter from numerator and denominator arrays.

The filter is normalized such that a[0] = 1.

Parameters
numeratorFeed-forward coefficients (B).
denominatorFeed-back coefficients (A).

Definition at line 11495 of file fft.H.

References Aleph::FFT< Real >::LFilter::initialize_state().

◆ LFilter() [3/5]

template<std::floating_point Real = double>
Aleph::FFT< Real >::LFilter::LFilter ( const IIRCoefficients coeffs)
inlineexplicit

Construct a linear filter from IIRCoefficients.

Parameters
coeffsIIR coefficients.

Definition at line 11507 of file fft.H.

◆ LFilter() [4/5]

template<std::floating_point Real = double>
Aleph::FFT< Real >::LFilter::LFilter ( const BiquadSection section)
inlineexplicit

Construct a linear filter from a single BiquadSection.

Parameters
sectionBiquad section.

Definition at line 11513 of file fft.H.

◆ LFilter() [5/5]

template<std::floating_point Real = double>
and Is_Real_Container< DenContainer > Aleph::FFT< Real >::LFilter::LFilter ( const NumContainer numerator,
const DenContainer denominator 
)
inlineexplicit

Construct a linear filter from any real containers.

Template Parameters
NumContainerType for numerator.
DenContainerType for denominator.
Parameters
numeratorFeed-forward coefficients.
denominatorFeed-back coefficients.

Definition at line 11526 of file fft.H.

Member Function Documentation

◆ coefficients()

template<std::floating_point Real = double>
const IIRCoefficients & Aleph::FFT< Real >::LFilter::coefficients ( ) const
inlinenoexcept

Returns the active normalized filter coefficients.

Definition at line 11544 of file fft.H.

References Aleph::FFT< Real >::LFilter::coeffs_.

◆ configured()

template<std::floating_point Real = double>
bool Aleph::FFT< Real >::LFilter::configured ( ) const
inlinenoexcept

Returns whether the filter has been initialized with coefficients.

Definition at line 11538 of file fft.H.

References Aleph::FFT< Real >::LFilter::configured_.

◆ filter() [1/2]

◆ filter() [2/2]

template<std::floating_point Real = double>
Array< Real > Aleph::FFT< Real >::LFilter::filter ( const Container signal)
inline

Processes a real-valued container through the stateful filter.

Definition at line 11590 of file fft.H.

References Aleph::FFT< Real >::build_real_input(), and Aleph::FFT< Real >::LFilter::filter().

◆ initialize_state()

◆ order()

template<std::floating_point Real = double>
size_t Aleph::FFT< Real >::LFilter::order ( ) const
inlinenoexcept

Returns the filter order (number of feedback coefficients - 1).

Definition at line 11532 of file fft.H.

References Aleph::FFT< Real >::LFilter::coeffs_, Aleph::FFT< Real >::IIRCoefficients::denominator, Aleph::Array< T >::is_empty(), and Aleph::Array< T >::size().

Referenced by Aleph::FFT< Real >::LFilter::initialize_state().

◆ require_configured()

template<std::floating_point Real = double>
void Aleph::FFT< Real >::LFilter::require_configured ( const char ctx) const
inlineprivate

◆ reset()

template<std::floating_point Real = double>
void Aleph::FFT< Real >::LFilter::reset ( )
inline

◆ set_state()

template<std::floating_point Real = double>
void Aleph::FFT< Real >::LFilter::set_state ( const Array< Real > &  new_state)
inline

◆ state()

template<std::floating_point Real = double>
const Array< Real > & Aleph::FFT< Real >::LFilter::state ( ) const
inlinenoexcept

Returns the current internal delay-line state.

Definition at line 11550 of file fft.H.

References Aleph::FFT< Real >::LFilter::state_.

Member Data Documentation

◆ coeffs_

◆ configured_

template<std::floating_point Real = double>
bool Aleph::FFT< Real >::LFilter::configured_ = false
private

◆ state_


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