Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
pulp::signal::NlmsAdaptiveFilterT< SampleType > Class Template Reference

#include <nlms_adaptive_filter.hpp>

Classes

struct  Result

Public Member Functions

void prepare (double sample_rate, int max_taps)
 Allocate fixed storage.
bool set_active_taps (int taps) noexcept
void set_step_size (SampleType mu) noexcept
 Clamp finite mu into the open NLMS stability interval (0, 2).
void set_denominator_floor (SampleType eps) noexcept
 Clamp the normalization floor to a finite, positive lower bound.
void set_leakage (SampleType leakage) noexcept
 Per-sample loss in [0, 1): the complete normalized update is retained by (1 - leakage), preserving bounded behavior at legal parameter edges.
void set_adapt_enabled (bool enabled) noexcept
void reset () noexcept
Result process_sample (SampleType primary, SampleType reference) noexcept
void process_block (const SampleType *primary, const SampleType *reference, Result *out, int n) noexcept
bool try_snapshot_coefficients (SampleType *dest, int capacity, int &active_taps_out) const noexcept
int active_taps () const noexcept
int max_taps () const noexcept
double sample_rate () const noexcept
int latency_samples () const noexcept
std::size_t retained_bytes () const noexcept

Member Function Documentation

◆ active_taps()

template<typename SampleType = float>
int pulp::signal::NlmsAdaptiveFilterT< SampleType >::active_taps ( ) const
inlinenoexcept

◆ latency_samples()

template<typename SampleType = float>
int pulp::signal::NlmsAdaptiveFilterT< SampleType >::latency_samples ( ) const
inlinenoexcept

◆ max_taps()

template<typename SampleType = float>
int pulp::signal::NlmsAdaptiveFilterT< SampleType >::max_taps ( ) const
inlinenoexcept

◆ prepare()

template<typename SampleType = float>
void pulp::signal::NlmsAdaptiveFilterT< SampleType >::prepare ( double sample_rate,
int max_taps )
inline

Allocate fixed storage.

Tap capacity is recovered into [1, 8192]; an invalid sample rate leaves processing fail-closed until the next valid prepare(). Repeated prepare is supported and resets all state.

◆ process_block()

template<typename SampleType = float>
void pulp::signal::NlmsAdaptiveFilterT< SampleType >::process_block ( const SampleType * primary,
const SampleType * reference,
Result * out,
int n )
inlinenoexcept

◆ process_sample()

template<typename SampleType = float>
Result pulp::signal::NlmsAdaptiveFilterT< SampleType >::process_sample ( SampleType primary,
SampleType reference )
inlinenoexcept

◆ reset()

template<typename SampleType = float>
void pulp::signal::NlmsAdaptiveFilterT< SampleType >::reset ( )
inlinenoexcept

◆ retained_bytes()

template<typename SampleType = float>
std::size_t pulp::signal::NlmsAdaptiveFilterT< SampleType >::retained_bytes ( ) const
inlinenoexcept

◆ sample_rate()

template<typename SampleType = float>
double pulp::signal::NlmsAdaptiveFilterT< SampleType >::sample_rate ( ) const
inlinenoexcept

◆ set_active_taps()

template<typename SampleType = float>
bool pulp::signal::NlmsAdaptiveFilterT< SampleType >::set_active_taps ( int taps)
inlinenoexcept

◆ set_adapt_enabled()

template<typename SampleType = float>
void pulp::signal::NlmsAdaptiveFilterT< SampleType >::set_adapt_enabled ( bool enabled)
inlinenoexcept

◆ set_denominator_floor()

template<typename SampleType = float>
void pulp::signal::NlmsAdaptiveFilterT< SampleType >::set_denominator_floor ( SampleType eps)
inlinenoexcept

Clamp the normalization floor to a finite, positive lower bound.

◆ set_leakage()

template<typename SampleType = float>
void pulp::signal::NlmsAdaptiveFilterT< SampleType >::set_leakage ( SampleType leakage)
inlinenoexcept

Per-sample loss in [0, 1): the complete normalized update is retained by (1 - leakage), preserving bounded behavior at legal parameter edges.

◆ set_step_size()

template<typename SampleType = float>
void pulp::signal::NlmsAdaptiveFilterT< SampleType >::set_step_size ( SampleType mu)
inlinenoexcept

Clamp finite mu into the open NLMS stability interval (0, 2).

NaN/Inf recovers to 0.5.

◆ try_snapshot_coefficients()

template<typename SampleType = float>
bool pulp::signal::NlmsAdaptiveFilterT< SampleType >::try_snapshot_coefficients ( SampleType * dest,
int capacity,
int & active_taps_out ) const
inlinenoexcept

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