fix: SsfStepDetector: catch oscillations / subsequent oscillation peaks
This commit is contained in:
@@ -72,9 +72,14 @@ double SsfStepDetector::filter(double ssf) {
|
|||||||
if (num_samples - n_refr >= len_refr) is_refr = false;
|
if (num_samples - n_refr >= len_refr) is_refr = false;
|
||||||
// transition and not in refractory period? detected a step.
|
// transition and not in refractory period? detected a step.
|
||||||
if (is_txing && !is_refr) {
|
if (is_txing && !is_refr) {
|
||||||
|
// !is_refr: catch trailing noise / first oscillation peak
|
||||||
rv = 1.0;
|
rv = 1.0;
|
||||||
is_refr = true;
|
is_refr = true;
|
||||||
n_refr = num_samples;
|
n_refr = num_samples;
|
||||||
|
} else if (is_txing && is_refr) {
|
||||||
|
// catch oscillations / subsequent oscillation peaks
|
||||||
|
is_refr = true;
|
||||||
|
n_refr = num_samples;
|
||||||
}
|
}
|
||||||
if (num_samples == LEN_INIT) {
|
if (num_samples == LEN_INIT) {
|
||||||
// initial threshold setting
|
// initial threshold setting
|
||||||
|
|||||||
Reference in New Issue
Block a user