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

Stateful cascade of second-order sections. More...

#include <fft.H>

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

Public Member Functions

 SOSFilter ()=default
 Default constructor for an unconfigured SOSFilter.
 
 SOSFilter (const Array< BiquadSection > &sections)
 Construct a cascade of second-order sections (SOS).
 
template<typename SectionsContainer >
requires Is_Biquad_Container<SectionsContainer>
 SOSFilter (const SectionsContainer &sections)
 Construct a cascade of SOS from any biquad container.
 
size_t num_sections () const noexcept
 Returns the number of sections in the cascade.
 
bool configured () const noexcept
 Returns whether the filter has been configured.
 
const Array< Real > & state (const size_t index) const
 Returns the current delay-line state of section index.
 
void reset ()
 Resets all internal delay lines to zero.
 
Array< Realfilter (const Array< Real > &signal)
 Processes a signal block through the stateful SOS cascade.
 
template<typename Container >
requires Is_Real_Container<Container>
Array< Realfilter (const Container &signal)
 Processes a real-valued container through the stateful SOS cascade.
 

Private Member Functions

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

Private Attributes

Array< BiquadSectionsections_
 
Array< IIRCoefficientscoeffs_
 
Array< Array< Real > > states_
 
bool configured_ = false
 

Detailed Description

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

Stateful cascade of second-order sections.

Definition at line 11597 of file fft.H.

Constructor & Destructor Documentation

◆ SOSFilter() [1/3]

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

Default constructor for an unconfigured SOSFilter.

◆ SOSFilter() [2/3]

template<std::floating_point Real = double>
Aleph::FFT< Real >::SOSFilter::SOSFilter ( const Array< BiquadSection > &  sections)
inlineexplicit

Construct a cascade of second-order sections (SOS).

Parameters
sectionsArray of biquad sections.

Definition at line 11631 of file fft.H.

References ah_invalid_argument_if, Aleph::FFT< Real >::SOSFilter::coeffs_, Aleph::FFT< Real >::SOSFilter::initialize_states(), Aleph::FFT< Real >::normalize_iir_coefficients(), and Aleph::FFT< Real >::SOSFilter::sections_.

◆ SOSFilter() [3/3]

template<std::floating_point Real = double>
Aleph::FFT< Real >::SOSFilter::SOSFilter ( const SectionsContainer sections)
inlineexplicit

Construct a cascade of SOS from any biquad container.

Template Parameters
SectionsContainerContainer of BiquadSection.
Parameters
sectionsBiquad sections.

Definition at line 11651 of file fft.H.

Member Function Documentation

◆ configured()

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

Returns whether the filter has been configured.

Definition at line 11662 of file fft.H.

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

◆ filter() [1/2]

◆ filter() [2/2]

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

Processes a real-valued container through the stateful SOS cascade.

Definition at line 11710 of file fft.H.

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

◆ initialize_states()

◆ num_sections()

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

Returns the number of sections in the cascade.

Definition at line 11656 of file fft.H.

References Aleph::FFT< Real >::SOSFilter::sections_.

◆ require_configured()

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

◆ reset()

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

Resets all internal delay lines to zero.

Definition at line 11678 of file fft.H.

References Aleph::divide_and_conquer_partition_dp(), Aleph::FFT< Real >::SOSFilter::require_configured(), and Aleph::FFT< Real >::SOSFilter::states_.

◆ state()

template<std::floating_point Real = double>
const Array< Real > & Aleph::FFT< Real >::SOSFilter::state ( const size_t  index) const
inline

Returns the current delay-line state of section index.

Definition at line 11669 of file fft.H.

References ah_out_of_range_error_if, Aleph::Array< T >::size(), and Aleph::FFT< Real >::SOSFilter::states_.

Referenced by Aleph::FFT< Real >::SOSFilter::initialize_states().

Member Data Documentation

◆ coeffs_

template<std::floating_point Real = double>
Array<IIRCoefficients> Aleph::FFT< Real >::SOSFilter::coeffs_
private

◆ configured_

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

◆ sections_

template<std::floating_point Real = double>
Array<BiquadSection> Aleph::FFT< Real >::SOSFilter::sections_
private

◆ states_

template<std::floating_point Real = double>
Array<Array<Real> > Aleph::FFT< Real >::SOSFilter::states_
private

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