Hallo Stephan,
sowohl Deadzone als auch Smoothing-Faktor sind zur Reduzierung des Rauschens des barometrischen Sensors, genauer des Variowertes.
Der Smoothing-Faktor, ist ein Wert zwischen 0.00 und 1.00 und der angibt, wieviel der aktuelle Meßwert mit den letzten Meßwerten geglättet wird.
Je mehr der Faktor bei 0.00 ist, desto mehr Priorität bekommt der aktuelle Messwert. Bei Faktor == 0.00, ist die Glättung komplett ausgeschaltet.
Je höher der Faktor desto mehr Glättung mit Werten aus der Vergangenheit wird verwendet, aber der Nachteil ist eben, dass auch echte Messwertänderungen erst mit Verzögerung angezeigt werden.
Hier in bei VarioGPS wird ein einfacher IIR Filter benutzt. Details sind unter
https://en.wikipedia.org/wiki/Low-pass_filter#Simple_infinite_impulse_response_filter
nachzulesen.
Bei der Deadzone, wird ein Bereich (z.B. +-10cm) definiert, der von jedem Wert größer oder kleiner abzogen oder hinzugefügt wird. Innerhalb des Bereichs wird immer 0 ausgegeben.
Hier der dazugehörige Code (uVario ist der geglättete Vario Wert):
Code:
// Vario dead zone filter
if (uVario > pressureSensor.deadzone) {
uVario -= pressureSensor.deadzone;
} else if (uVario < (pressureSensor.deadzone * -1)) {
uVario -= (pressureSensor.deadzone * -1);
} else {
uVario = 0;
}
Hoffe das war detailreich genug ;-)
Gruß Rainer
P.S.: Bin gerade dabei, den Code für den MS5611 zu überarbeiten/optimieren, da man durch eine höhere Sampling-Rate noch einiges raus holen kann. Gebe hier die nächsten Tage Bescheid, wenn ich es eingecheckt habe. Werde die Änderung Nightflyer zum "update" anbieten