Estimates muscle-fiber conduction velocity from the propagation delay of the EMG signal between pairs of electrodes aligned along the fiber direction. The delay between the two channels of each pair is estimated either by cross-correlation (with parabolic sub-sample interpolation) or from the slope of the cross-spectrum phase, and the velocity is the inter-electrode distance divided by the delay.
Arguments
- x
A PhysioExperiment object with EMG data.
- electrode_pairs
Channel pairs aligned along the muscle fibres, given as a list of length-2 integer vectors
list(c(prox, dist), ...)or as a two-column matrix (one pair per row; column 1 proximal, column 2 distal).- ied_mm
Inter-electrode distance in millimetres. A single value applied to all pairs, or one value per pair.
- method
Delay-estimation method: "xcorr" (cross-correlation, default) or "phase" (cross-spectrum phase slope).
- band
Frequency band
c(fmin, fmax)in Hz used by the "phase" method (defaultc(20, 250)).- max_lag_ms
Maximum delay searched by the "xcorr" method, in milliseconds (default: 25).
- assay_name
Input assay name (default: first assay).
Value
A data.frame with one row per electrode pair, containing columns:
- pair
Integer pair index.
- ch1, ch2
Proximal and distal channel indices.
- delay_ms
Estimated propagation delay in milliseconds.
- velocity_m_s
Conduction velocity in metres per second (
ied_mm/ delay).- quality
Peak cross-correlation ("xcorr") or phase-fit R^2 ("phase").
References
Farina, D. & Merletti, R. (2000). "Comparison of algorithms for estimation of EMG variables during voluntary isometric contractions." Journal of Electromyography and Kinesiology, 10(5), 337-349. doi:10.1016/S1050-6411(00)00025-0
Merletti, R. & Parker, P.A. (2004). "Electromyography: Physiology, Engineering, and Non-Invasive Applications." Wiley-IEEE Press. doi:10.1002/0471678384
See also
emgFatigueSlope() and emgDimitrovIndex() for spectral fatigue
metrics, emgFatigue() for median/mean frequency tracking
Examples
# two electrodes 10 mm apart; distal is the proximal signal delayed 3 samples
sr <- 2000
set.seed(1)
prox <- as.numeric(stats::filter(rnorm(4000), rep(1, 5), sides = 2))
prox[is.na(prox)] <- 0
dist <- c(rep(0, 3), prox[seq_len(length(prox) - 3)])
pe <- PhysioExperiment(assays = list(raw = cbind(prox, dist)),
samplingRate = sr)
emgMFCV(pe, electrode_pairs = list(c(1, 2)), ied_mm = 10)
#> pair ch1 ch2 delay_ms velocity_m_s quality
#> 1 1 1 2 1.500021 6.666574 0.9999945