1
0
Fork 0

Avoid division by zero in exponential filters

This commit is contained in:
Torsten Dreyer 2010-11-20 11:07:24 +01:00
parent fabf45bfd5
commit 495a23a80a

View file

@ -265,9 +265,14 @@ void ExponentialFilterImplementation::initialize( double output )
double ExponentialFilterImplementation::compute( double dt, double input )
{
input = GainFilterImplementation::compute( dt, input );
double tf = _TfInput.get_value();
double output_0;
double alpha = 1 / ((_TfInput.get_value()/dt) + 1);
// avoid negative filter times
// and div by zero if -tf == dt
double alpha = tf > 0.0 ? 1 / ((tf/dt) + 1) : 1.0;
if(_isSecondOrder) {
output_0 = alpha * alpha * input +