|
Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
|
Stateful direct-form II transposed IIR filter. More...
#include <fft.H>
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 §ion) | |
| Construct a linear filter from a single BiquadSection. | |
| template<typename NumContainer , typename DenContainer > requires Is_Real_Container<NumContainer> | |
| and Is_Real_Container< DenContainer > | LFilter (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 IIRCoefficients & | coefficients () 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< Real > | filter (const Array< Real > &signal) |
| Processes a signal block through the stateful filter. | |
| template<typename Container > requires Is_Real_Container<Container> | |
| Array< Real > | filter (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< Real > | state_ |
| bool | configured_ = false |
Stateful direct-form II transposed IIR filter.
|
default |
Default constructor for an unconfigured LFilter.
|
inlineexplicit |
Construct a linear filter from numerator and denominator arrays.
The filter is normalized such that a[0] = 1.
| numerator | Feed-forward coefficients (B). |
| denominator | Feed-back coefficients (A). |
Definition at line 11495 of file fft.H.
References Aleph::FFT< Real >::LFilter::initialize_state().
|
inlineexplicit |
Construct a linear filter from IIRCoefficients.
| coeffs | IIR coefficients. |
|
inlineexplicit |
Construct a linear filter from a single BiquadSection.
| section | Biquad section. |
|
inlineexplicit |
|
inlinenoexcept |
Returns the active normalized filter coefficients.
Definition at line 11544 of file fft.H.
References Aleph::FFT< Real >::LFilter::coeffs_.
|
inlinenoexcept |
Returns whether the filter has been initialized with coefficients.
Definition at line 11538 of file fft.H.
References Aleph::FFT< Real >::LFilter::configured_.
|
inline |
Processes a signal block through the stateful filter.
Definition at line 11575 of file fft.H.
References Aleph::FFT< Real >::LFilter::coeffs_, Aleph::FFT< Real >::IIRCoefficients::denominator, Aleph::FFT< Real >::iir_filter_impl(), Aleph::FFT< Real >::IIRCoefficients::numerator, Aleph::FFT< Real >::LFilter::require_configured(), and Aleph::FFT< Real >::LFilter::state_.
Referenced by Aleph::FFT< Real >::LFilter::filter(), Aleph::FFT< Real >::LFilterBank::filter_channel(), and Aleph::FFT< Real >::LFilterBank::filter_channel().
|
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().
|
inlineprivate |
Definition at line 11476 of file fft.H.
References Aleph::FFT< Real >::LFilter::coeffs_, Aleph::Array< T >::create(), Aleph::FFT< Real >::IIRCoefficients::denominator, Aleph::divide_and_conquer_partition_dp(), Aleph::FFT< Real >::LFilter::order(), Aleph::Array< T >::size(), and Aleph::FFT< Real >::LFilter::state_.
Referenced by Aleph::FFT< Real >::LFilter::LFilter().
|
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().
|
inlineprivate |
Definition at line 11469 of file fft.H.
References ah_runtime_error_if, Aleph::FFT< Real >::LFilter::configured_, and Aleph::divide_and_conquer_partition_dp().
Referenced by Aleph::FFT< Real >::LFilter::filter(), Aleph::FFT< Real >::LFilter::reset(), and Aleph::FFT< Real >::LFilter::set_state().
|
inline |
Resets the delay-line state to zero.
Definition at line 11556 of file fft.H.
References Aleph::divide_and_conquer_partition_dp(), Aleph::FFT< Real >::LFilter::require_configured(), Aleph::Array< T >::size(), and Aleph::FFT< Real >::LFilter::state_.
|
inline |
Manually overrides the delay-line state.
Definition at line 11564 of file fft.H.
References ah_invalid_argument_if, Aleph::divide_and_conquer_partition_dp(), Aleph::FFT< Real >::LFilter::require_configured(), Aleph::Array< T >::size(), and Aleph::FFT< Real >::LFilter::state_.
|
inlinenoexcept |
Returns the current internal delay-line state.
Definition at line 11550 of file fft.H.
References Aleph::FFT< Real >::LFilter::state_.
|
private |
Definition at line 11464 of file fft.H.
Referenced by Aleph::FFT< Real >::LFilter::coefficients(), Aleph::FFT< Real >::LFilter::filter(), Aleph::FFT< Real >::LFilter::initialize_state(), and Aleph::FFT< Real >::LFilter::order().
|
private |
Definition at line 11466 of file fft.H.
Referenced by Aleph::FFT< Real >::LFilter::configured(), and Aleph::FFT< Real >::LFilter::require_configured().
|
private |
Definition at line 11465 of file fft.H.
Referenced by Aleph::FFT< Real >::LFilter::filter(), Aleph::FFT< Real >::LFilter::initialize_state(), Aleph::FFT< Real >::LFilter::reset(), Aleph::FFT< Real >::LFilter::set_state(), and Aleph::FFT< Real >::LFilter::state().