1、均方根(RMS)
该特征是指在一定时间窗口内,sEMG信号的幅度均值的平方根,通常用于评估肌肉收缩的强度和疲劳程度。通常情况下,肌肉受到较大的负荷或疲劳时,RMS会降低,而在肌肉处于较轻负荷或较为放松状态时,RMS会增加。因此,通过监测sEMG信号的RMS值的变化,可以评估肌肉的疲劳程度和肌肉收缩的强度。
计算公式如下:

讯享网
该式中,N 为采集到的表面肌电信号数据点数量,x_i为该信号数据序列中的第 i个数据,用于表示采集信号的平均功率。
matlab代码如下:
function feature = fRMS(data) % - RMS - Root Mean Square feature = sqrt(mean(data.^2)); end
讯享网
2、 平均绝对值(MAV)
该特征是指在一定时间窗口内,sEMG信号的幅度的绝对值的平均值,通常用于评估肌肉收缩的强度和疲劳程度。与均方根值(RMS)类似,MAV也可以用来估计肌肉收缩时的平均电信号强度。不同之处在于,MAV计算时不考虑信号的平方,而直接对幅度的绝对值进行平均。因此,MAV与RMS相比,更加稳定,对高频噪声的影响更小。通常情况下,肌肉受到较大的负荷或疲劳时,MAV会降低,而在肌肉处于较轻负荷或较为放松状态时,MAV会增加。因此,通过监测sEMG信号的MAV值的变化,可以评估肌肉的疲劳程度和肌肉收缩的强度。
计算公式如下:

该式中,N为采集到的表面肌电信号数据点数量,x_i 为该信号数据序列中的第i个数据,常用于判断手臂动作信号的强度幅值大小。
matlab代码如下:
讯享网function feature = fMAV(data) % - MAV - Mean Absolute Value feature = mean(abs(data)); end
3、过零点数 (ZC)
该特征是指在一定时间窗口内,sEMG信号的波形穿过水平基准线的次数,通常用于评估肌肉的收缩和放松状态,也可以用来估计肌肉的收缩状态以及肌肉收缩的强度。通常情况下,当肌肉收缩时,sEMG信号的波形会变得更加复杂,穿过水平基准线的次数也会增加,因此ZC也会增加。而当肌肉处于放松状态时,sEMG信号的波形会简单,穿过水平基准线的次数也会减少,因此ZC也会减少。
计算公式如下:

该式中,N为采集到的表面肌电信号数据点数量, x(i-1) 、x(i)、x(i+1) 为该信号数据序列中的第 i-1、i 、i+1个数据。
matlab代码如下:
function feature = fZC(data) % - ZC - Zero Crossing DeadZone = 10e-7; data_size = length(data); feature = 0; if data_size == 0 feature = 0; else for i=2:data_size difference = data(i) - data(i-1); multy = data(i) * data(i-1); if abs(difference)>DeadZone && multy<0 feature = feature + 1; end end feature = feature/data_size; end end
4、波形长度(WL)
该特征是指在一定时间窗口内,sEMG信号的波形长度的累加和,表示表面肌电信号的复杂度,通常用于评估肌肉的收缩和放松状态。通常情况下,当肌肉收缩时,sEMG信号的波形会变得更加复杂,波形的长度也会增加,因此WL也会增加。而当肌肉处于放松状态时,sEMG信号的波形会简单,波形的长度也会减少。
计算公式如下:

该式中,N为采集到的表面肌电信号数据点数量,x_i为该信号数据序列中的第 i个数据。

matlab代码如下:
讯享网function feature = fWL(data) % - WL - Waveform Length feature = sum(abs(diff(data)))/length(data); end
5、斜率符号变化 (SSC)
该特征是指在sEMG信号的波形中,幅度变化率的符号发生变化的次数,常用于表示表面肌电信号即将发生波动变化的状态。
计算公式如下:

该式中,N为采集到的表面肌电信号数据点数量,x(i-1) 、x(i)、x(i+1) 为该信号数据序列中的第 i-1、i 、i+1个数据,

matlab代码如下:
function feature = fSSC(data) % - SSC - Slope Sign Change, number times DeadZone = 10e-7; data_size = length(data); feature = 0; if data_size == 0 feature = 0; else for j=3:data_size difference1 = data(j-1) - data(j-2); difference2 = data(j-1) - data(j); Sign = difference1 * difference2; if Sign > 0 if abs(difference1)>DeadZone || abs(difference2)>DeadZone feature = feature + 1; end end end feature = feature/data_size; end end
6、中值频率(MF)
该特征是指肌肉收缩期间产生的肌电信号的频率中值,通常用于评估肌肉收缩的力量和疲劳程度。MF是通过对表面肌电信号的功率谱密度进行分析得出的。在肌肉收缩期间,肌电信号的频率会随着肌肉收缩的力量和疲劳程度发生变化。通常情况下,肌肉受到较大的负荷或疲劳时,MF会降低,而在肌肉处于较轻负荷或较为放松状态时,MF会增加。
计算公式如下:

matlab代码如下:
讯享网function feature = fMF(data) % - MF - Mean Frequency feature = medfreq(data((i-1)*windownum+1:i*windownum), fs)./4e5; end
该式中PSD表示表面肌电信号的功率谱,windownum表示窗口长度,i表示sEMG的通道, fs表示采样率。
7、平均功率频率(MPF)
该特征是指肌肉收缩期间产生的肌电信号的功率频率分布的平均值,可以用于评估肌肉收缩的力量和疲劳程度。即使信号中混杂了一些干扰噪声,利用该特征也能较好的识别信号中的有用信息,抗混叠能力很好。与中值频率(MF)类似,MPF也经常用于研究肌肉肌电活动的特征和变化。
计算公式如下:

matlab代码如下:
function feature = fMPF(data) % - MPF - Mean Power Frequency feature = meanfreq(data((i-1)*windownum+1:i*windownum), fs); end
该式中,f表示表面肌电信号的频率,windownum表示窗口长度,i表示sEMG的通道, fs表示采样率。
注:后续持续更新中…
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/122395.html