Allocation-free frame-domain spectral gate and bounded temporal blur. More...
#include <pulp/signal/checked_allocation.hpp>#include <algorithm>#include <cmath>#include <complex>#include <cstddef>#include <cstdint>#include <limits>#include <type_traits>#include <vector>Go to the source code of this file.
Classes | |
| class | pulp::signal::SpectralGateT< SampleType > |
| class | pulp::signal::SpectralFrameBlurT< SampleType > |
Namespaces | |
| namespace | pulp |
| namespace | pulp::signal |
Typedefs | |
| using | pulp::signal::SpectralGate = SpectralGateT<float> |
| using | pulp::signal::SpectralGate64 = SpectralGateT<double> |
| using | pulp::signal::SpectralFrameBlur = SpectralFrameBlurT<float> |
| using | pulp::signal::SpectralFrameBlur64 = SpectralFrameBlurT<double> |
Allocation-free frame-domain spectral gate and bounded temporal blur.
These processors operate on the one-sided complex frames emitted by SpectralFrameEngineT; they deliberately do not own or duplicate an FFT. The gate compares every bin independently with either one scalar magnitude threshold or a caller-owned threshold curve. The blur is a causal finite moving average of bin magnitudes and retains the current non-zero phase (or the last finite phase while a bin decays). A finite complex bin whose mathematical magnitude exceeds SampleType saturates to its maximum finite magnitude without changing phase. Both processors modify frames in place.