Label joint power bursts with Winter nomenclature
Source:R/kinetics-inverse-dynamics.R
labelPowerBursts.RdSegments a single-gait-cycle joint power time series into contiguous
same-sign bursts and assigns Winter's power-phase labels: A1/A2 for the
ankle, H1-H3 for the hip, and K1-K4 for the knee. Each canonical
burst has an expected sign (generation vs absorption) and an approximate
location within the gait cycle; detected bursts are matched to the nearest
unused canonical burst of the same sign.
Usage
labelPowerBursts(
power,
sampling_rate,
joint = c("ankle", "knee", "hip"),
body_mass = NULL
)Value
A data frame (class power_bursts) with one row per detected burst:
label (canonical burst name or NA if unmatched), joint, type
("generation" or "absorption"), start_pct, end_pct, peak_power
(W, signed), and work (J), ordered by time.
Details
The power vector is assumed to span exactly one gait cycle (initial contact
to the next ipsilateral initial contact), so burst timing is reported as a
percentage of the cycle.
References
Winter DA (2009). "Biomechanics and Motor Control of Human Movement." 4th ed. John Wiley & Sons. Power-phase nomenclature A1-A2 / H1-H3 / K1-K4.
Examples
t <- seq(0, 1, length.out = 101)
ankle_power <- ifelse(t < 0.4, -50 * sin(pi * t / 0.4),
120 * sin(pi * (t - 0.4) / 0.2) * (t < 0.6))
labelPowerBursts(ankle_power, sampling_rate = 100, joint = "ankle")
#> label joint type start_pct end_pct peak_power work
#> 1 A1 ankle absorption 1 39 -50 -12.72585
#> 2 A2 ankle generation 41 59 120 15.24745