double filter(double x)
{
- static double l = 1.0;
- l = 0.01 * x + 0.99 * l;
+ static double l;
+ static bool init = false;
+
+ if (init) {
+ l = 0.05 * x + 0.95 * l;
+ } else {
+ init = true;
+ l = x;
+ }
return l;
}
}
double ns = filter(speed * double(num_inp) / double(num_ref));
- printf("%u vs. %u -- ratio %f, speed %f, filtered speed %f\n", num_inp, num_ref,
+ printf("%u vs. %u -- ratio %.3f, speed %.3f, filtered speed %.3f\n", num_inp, num_ref,
double(num_inp) / double(num_ref), speed * double(num_inp) / double(num_ref), ns);
speed = ns;
intp.update_speed(ns);