【归纳总结】表面肌电信号sEMG之常用特征

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表示采样率。

注:后续持续更新中…

Python特征提取是指通过使用Python编程语言来分析和提取电信号中的特征电信号是由肉收缩时产生的电活动所产生的信号,可以用于评估肉活动的力量、持续性和协调性等。 在Python中,可以使用多种方法来提取电信号特征。其中常用特征包括信号的幅度、时域特征、频域特征和时频特征等。 对于幅度特征的提取,可以计算电信号的峰峰值、均值和标准差等。这些特征可以提供有关信号的强度和变动性的信息。 时域特征是指对信号的时间变化进行分析。常见的时域特征包括时域幅值、过零比率和能量等。时域特征可以描述信号的形状和变化趋势。 频域特征是指对信号在频域上的分析。可以使用傅里叶变换将电信号转换为频谱图,并计算出频域特征如频率、功率谱密度和频带能量等。这些特征可以用于描述信号的频率成分和能量分布。 时频特征是指对信号在时频域上的分析。可以使用小波变换等方法来提取时频特征,如时频图谱和相关能量等。时频特征可以描述信号在时间和频率上的变化。 在Python中,有许多开源库可用于电信号处理和特征提取,如SciPy、NumPy和pyEMG等。这些库提供了各种函数和算法,可以方便地进行电信号特征提取和分析。 总之,Python特征提取是利用Python编程语言对电信号进行分析和提取特征。通过计算幅度特征、时域特征、频域特征和时频特征等,可以获取有关电信号的各种信息。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

坊间小木匠

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值