Pulp 1.88.0
Cross-platform audio plugin framework
Loading...
Searching...
No Matches
nlms_adaptive_filter.hpp File Reference

A bounded, prepared normalized least-mean-squares adaptive FIR. More...

#include <algorithm>
#include <array>
#include <atomic>
#include <cmath>
#include <cstddef>
#include <cstring>
#include <limits>
#include <vector>

Go to the source code of this file.

Classes

class  pulp::signal::NlmsAdaptiveFilterT< SampleType >
struct  pulp::signal::NlmsAdaptiveFilterT< SampleType >::Result

Namespaces

namespace  pulp
namespace  pulp::signal

Typedefs

using pulp::signal::NlmsAdaptiveFilter = NlmsAdaptiveFilterT<float>
using pulp::signal::NlmsAdaptiveFilter64 = NlmsAdaptiveFilterT<double>

Detailed Description

A bounded, prepared normalized least-mean-squares adaptive FIR.

The signal convention is explicit: reference is r[n], primary is d[n], estimate is sum(w[i] * r[n-i]), and error is d[n] - estimate. RT contract: after prepare(), processing, reset, parameter changes, and coefficient publication perform no allocation, locking, or I/O. The control-side snapshot is bounded and never exposes live coefficient state. One realtime writer owns processing and parameter/reset calls; at most one control reader may call try_snapshot_coefficients() concurrently.