From 60b8bea12edb954e6140a92c8412364c9581e3c2 Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Tue, 23 Jun 2015 21:38:37 -0700 Subject: [PATCH] altoslib: Use a longer filter for descent values This makes descent speeds almost useful, a huge improvement Signed-off-by: Keith Packard --- altoslib/AltosState.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/altoslib/AltosState.java b/altoslib/AltosState.java index a120e0c7..8eacf975 100644 --- a/altoslib/AltosState.java +++ b/altoslib/AltosState.java @@ -31,8 +31,9 @@ public class AltosState implements Cloneable, Serializable { public int set; + static final double filter_len = 2.0; static final double ascent_filter_len = 0.5; - static final double descent_filter_len = 0.5; + static final double descent_filter_len = 5.0; /* derived data */ @@ -64,8 +65,10 @@ public class AltosState implements Cloneable, Serializable { } void set_filtered(double new_value, double time) { - if (prev_value != AltosLib.MISSING) - new_value = (prev_value * 15.0 + new_value) / 16.0; + if (prev_value != AltosLib.MISSING) { + double f = 1/Math.exp((time - prev_set_time) / filter_le); + new_value = f * new_value + (1-f) * prev_value; + } set(new_value, time); } -- 2.30.2