|
Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
|
Stateful cascade of second-order sections. More...
#include <fft.H>
Public Member Functions | |
| SOSFilter ()=default | |
| Default constructor for an unconfigured SOSFilter. | |
| SOSFilter (const Array< BiquadSection > §ions) | |
| Construct a cascade of second-order sections (SOS). | |
| template<typename SectionsContainer > requires Is_Biquad_Container<SectionsContainer> | |
| SOSFilter (const SectionsContainer §ions) | |
| 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< Real > | filter (const Array< Real > &signal) |
| Processes a signal block through the stateful SOS cascade. | |
| template<typename Container > requires Is_Real_Container<Container> | |
| Array< Real > | filter (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< BiquadSection > | sections_ |
| Array< IIRCoefficients > | coeffs_ |
| Array< Array< Real > > | states_ |
| bool | configured_ = false |
Stateful cascade of second-order sections.
|
default |
Default constructor for an unconfigured SOSFilter.
|
inlineexplicit |
Construct a cascade of second-order sections (SOS).
| sections | Array 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_.
|
inlineexplicit |
Construct a cascade of SOS from any biquad container.
| SectionsContainer | Container of BiquadSection. |
| sections | Biquad sections. |
|
inlinenoexcept |
Returns whether the filter has been configured.
Definition at line 11662 of file fft.H.
References Aleph::FFT< Real >::SOSFilter::configured_.
|
inline |
Processes a signal block through the stateful SOS cascade.
Definition at line 11688 of file fft.H.
References Aleph::FFT< Real >::SOSFilter::coeffs_, Aleph::divide_and_conquer_partition_dp(), Aleph::FFT< Real >::iir_filter_impl(), Aleph::FFT< Real >::SOSFilter::require_configured(), and Aleph::FFT< Real >::SOSFilter::states_.
Referenced by Aleph::FFT< Real >::SOSFilter::filter(), Aleph::FFT< Real >::SOSFilterBank::filter_channel(), Aleph::FFT< Real >::SOSFilterBank::filter_channel(), and Aleph::FFT< Real >::sosfilt().
|
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().
|
inlineprivate |
Definition at line 11612 of file fft.H.
References Aleph::FFT< Real >::SOSFilter::coeffs_, Aleph::Array< T >::create(), Aleph::divide_and_conquer_partition_dp(), Aleph::Array< T >::size(), Aleph::FFT< Real >::SOSFilter::state(), and Aleph::FFT< Real >::SOSFilter::states_.
Referenced by Aleph::FFT< Real >::SOSFilter::SOSFilter().
|
inlinenoexcept |
Returns the number of sections in the cascade.
Definition at line 11656 of file fft.H.
References Aleph::FFT< Real >::SOSFilter::sections_.
|
inlineprivate |
Definition at line 11605 of file fft.H.
References ah_runtime_error_if, Aleph::FFT< Real >::SOSFilter::configured_, and Aleph::divide_and_conquer_partition_dp().
Referenced by Aleph::FFT< Real >::SOSFilter::filter(), and 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_.
|
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().
|
private |
Definition at line 11600 of file fft.H.
Referenced by Aleph::FFT< Real >::SOSFilter::SOSFilter(), Aleph::FFT< Real >::SOSFilter::filter(), and Aleph::FFT< Real >::SOSFilter::initialize_states().
|
private |
Definition at line 11602 of file fft.H.
Referenced by Aleph::FFT< Real >::SOSFilter::configured(), and Aleph::FFT< Real >::SOSFilter::require_configured().
|
private |
Definition at line 11599 of file fft.H.
Referenced by Aleph::FFT< Real >::SOSFilter::SOSFilter(), and Aleph::FFT< Real >::SOSFilter::num_sections().
|
private |
Definition at line 11601 of file fft.H.
Referenced by Aleph::FFT< Real >::SOSFilter::filter(), Aleph::FFT< Real >::SOSFilter::initialize_states(), Aleph::FFT< Real >::SOSFilter::reset(), and Aleph::FFT< Real >::SOSFilter::state().