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

One-pole DC blocker (first-order high-pass). More...

#include <dc_blocker.hpp>

Public Member Functions

 DcBlocker ()=default
void set_pole (T pole)
 Set the pole position (typically 0.99..0.999).
void reset ()
 Clear filter state. Call between unrelated streams.
T process (T x)
 Process one sample.
void process (T *samples, int n)
 Process a block in-place.

Detailed Description

template<typename T = float>
class pulp::signal::DcBlocker< T >

One-pole DC blocker (first-order high-pass).

Removes DC offset and very-low-frequency drift from an audio stream without measurably altering the audio band.

RT contract: set_pole(), reset(), and process paths are scalar-only and allocate no memory.

Transfer function: H(z) = (1 - z^-1) / (1 - p * z^-1) where p is the pole position (default 0.995 → ~3.5 Hz corner at 44.1 kHz).

blocker.set_pole(0.995f);
for (int i = 0; i < num_samples; ++i)
output[i] = blocker.process(input[i]);
One-pole DC blocker (first-order high-pass).
Definition dc_blocker.hpp:28
void set_pole(T pole)
Set the pole position (typically 0.99..0.999).
Definition dc_blocker.hpp:35
T process(T x)
Process one sample.
Definition dc_blocker.hpp:41
@ i
Definition formant_filter_bank.hpp:20

For a more aggressive corner frequency, use a higher-order HPF biquad instead — this primitive is intentionally minimal.

Constructor & Destructor Documentation

◆ DcBlocker()

template<typename T = float>
pulp::signal::DcBlocker< T >::DcBlocker ( )
default

Member Function Documentation

◆ process() [1/2]

template<typename T = float>
void pulp::signal::DcBlocker< T >::process ( T * samples,
int n )
inline

Process a block in-place.

◆ process() [2/2]

template<typename T = float>
T pulp::signal::DcBlocker< T >::process ( T x)
inline

Process one sample.

◆ reset()

template<typename T = float>
void pulp::signal::DcBlocker< T >::reset ( )
inline

Clear filter state. Call between unrelated streams.

◆ set_pole()

template<typename T = float>
void pulp::signal::DcBlocker< T >::set_pole ( T pole)
inline

Set the pole position (typically 0.99..0.999).

Higher values give a lower corner frequency. At 44.1 kHz: 0.995 ≈ 3.5 Hz, 0.999 ≈ 0.7 Hz.


The documentation for this class was generated from the following file:
  • /home/runner/work/pulp/pulp/core/signal/include/pulp/signal/dc_blocker.hpp