diff --git a/libraries/Filter/LowPassFilter2p.cpp b/libraries/Filter/LowPassFilter2p.cpp index f823829a2e..653c3a4a62 100644 --- a/libraries/Filter/LowPassFilter2p.cpp +++ b/libraries/Filter/LowPassFilter2p.cpp @@ -35,6 +35,10 @@ template void DigitalBiquadFilter::compute_params(float sample_freq, float cutoff_freq, biquad_params &ret) { ret.cutoff_freq = cutoff_freq; ret.sample_freq = sample_freq; + if (!is_positive(ret.cutoff_freq)) { + // zero cutoff means pass-thru + return; + } float fr = sample_freq/cutoff_freq; float ohm = tanf(M_PI/fr); @@ -83,6 +87,10 @@ float LowPassFilter2p::get_sample_freq(void) const { template T LowPassFilter2p::apply(const T &sample) { + if (!is_positive(_params.cutoff_freq)) { + // zero cutoff means pass-thru + return sample; + } return _filter.apply(sample, _params); }