diff --git a/pasada-lib/ssf_filter.cpp b/pasada-lib/ssf_filter.cpp index 6ec3d4e..0d43b06 100644 --- a/pasada-lib/ssf_filter.cpp +++ b/pasada-lib/ssf_filter.cpp @@ -72,9 +72,14 @@ double SsfStepDetector::filter(double ssf) { if (num_samples - n_refr >= len_refr) is_refr = false; // transition and not in refractory period? detected a step. if (is_txing && !is_refr) { + // !is_refr: catch trailing noise / first oscillation peak rv = 1.0; is_refr = true; 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) { // initial threshold setting