diff options
author | Lorenz Meier <lm@inf.ethz.ch> | 2013-12-21 19:07:24 +0100 |
---|---|---|
committer | Lorenz Meier <lm@inf.ethz.ch> | 2013-12-21 19:07:24 +0100 |
commit | b84c9f962b5c3c4d94e21aeb148dec8ffb42b0c9 (patch) | |
tree | ed00e4ce697f96763964267a9dc5870b06a1ffa4 /src/lib/mathlib/math/filter | |
parent | c033443208666d6972d99fe5a7b8e0c3fa5050b5 (diff) | |
parent | 831f153b7385fecb180c977727eb6b2f8bef1317 (diff) | |
download | px4-firmware-b84c9f962b5c3c4d94e21aeb148dec8ffb42b0c9.tar.gz px4-firmware-b84c9f962b5c3c4d94e21aeb148dec8ffb42b0c9.tar.bz2 px4-firmware-b84c9f962b5c3c4d94e21aeb148dec8ffb42b0c9.zip |
Merged master
Diffstat (limited to 'src/lib/mathlib/math/filter')
-rw-r--r-- | src/lib/mathlib/math/filter/LowPassFilter2p.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/lib/mathlib/math/filter/LowPassFilter2p.cpp b/src/lib/mathlib/math/filter/LowPassFilter2p.cpp index efb17225d..3699d9bce 100644 --- a/src/lib/mathlib/math/filter/LowPassFilter2p.cpp +++ b/src/lib/mathlib/math/filter/LowPassFilter2p.cpp @@ -46,6 +46,10 @@ namespace math void LowPassFilter2p::set_cutoff_frequency(float sample_freq, float cutoff_freq) { _cutoff_freq = cutoff_freq; + if (_cutoff_freq <= 0.0f) { + // no filtering + return; + } float fr = sample_freq/_cutoff_freq; float ohm = tanf(M_PI_F/fr); float c = 1.0f+2.0f*cosf(M_PI_F/4.0f)*ohm + ohm*ohm; @@ -58,6 +62,10 @@ void LowPassFilter2p::set_cutoff_frequency(float sample_freq, float cutoff_freq) float LowPassFilter2p::apply(float sample) { + if (_cutoff_freq <= 0.0f) { + // no filtering + return sample; + } // do the filtering float delay_element_0 = sample - _delay_element_1 * _a1 - _delay_element_2 * _a2; if (isnan(delay_element_0) || isinf(delay_element_0)) { |