1、均方根(RMS)

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

计算公式如下:


该式中,N 为采集到的表面肌电信号数据点数量,x_i为该信号数据序列中的第 i个数据,用于表示采集信号的平均功率。

matlab代码如下:

function feature = fRMS(data)% - RMS - Root Mean Squarefeature = 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 Valuefeature = 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 CrossingDeadZone = 10e-7;data_size = length(data);feature = 0;if data_size == 0feature = 0;elsefor i=2:data_sizedifference = data(i) - data(i-1);multy      = data(i) * data(i-1);if abs(difference)>DeadZone && multy<0feature = feature + 1;endendfeature = feature/data_size;end
end

4、波形长度(WL)

该特征是指在一定时间窗口内,sEMG信号的波形长度的累加和,表示表面肌电信号的复杂度,通常用于评估肌肉的收缩和放松状态。通常情况下,当肌肉收缩时,sEMG信号的波形会变得更加复杂,波形的长度也会增加,因此WL也会增加。而当肌肉处于放松状态时,sEMG信号的波形会简单,波形的长度也会减少。

计算公式如下:


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

matlab代码如下:

function feature = fWL(data)% - WL - Waveform Lengthfeature = 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 timesDeadZone = 10e-7;data_size = length(data);feature = 0;if data_size == 0feature = 0;elsefor j=3:data_sizedifference1 = data(j-1) - data(j-2);difference2 = data(j-1) - data(j);Sign = difference1 * difference2;if Sign > 0if abs(difference1)>DeadZone || abs(difference2)>DeadZonefeature = feature + 1;endendendfeature = feature/data_size;end
end

6、中值频率(MF)

该特征是指肌肉收缩期间产生的肌电信号的频率中值,通常用于评估肌肉收缩的力量和疲劳程度。MF是通过对表面肌电信号的功率谱密度进行分析得出的。在肌肉收缩期间,肌电信号的频率会随着肌肉收缩的力量和疲劳程度发生变化。通常情况下,肌肉受到较大的负荷或疲劳时,MF会降低,而在肌肉处于较轻负荷或较为放松状态时,MF会增加。

计算公式如下:

matlab代码如下:

function feature = fMF(data)% - MF - Mean Frequencyfeature = 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 Frequencyfeature = meanfreq(data((i-1)*windownum+1:i*windownum), fs);
end

该式中,f表示表面肌电信号的频率,windownum表示窗口长度,i表示sEMG的通道, fs表示采样率。

注:后续持续更新中…

表面肌电信号sEMG之常用特征相关推荐

  1. 利用表面肌电信号对手部抓取动作分类的新型卷积网络模型

    利用表面肌电信号对手部抓取动作分类的新型卷积网络模型 文章目录 利用表面肌电信号对手部抓取动作分类的新型卷积网络模型 一.相关研究 二.材料和方法 2.1 数据集 2.2 数据预处理 2.3 DUAL ...

  2. 读论文-----基于单通道表面肌电信号的手势识别 Hand Gestures Recognition Based on One-Channel Surface EMG Signal

    Hand Gestures Recognition Based on One-Channel Surface EMG Signal 摘要 本文提出了一个利用OpenBCI采集两种手势信号的数据并解码信 ...

  3. 循环神经网络(RNN)简单介绍及实现(基于表面肌电信号)

    循环神经网络(RNN) 文章目录 循环神经网络(RNN) 一.介绍 二.python实现(LSTM) 三.总结 一.介绍   以序列数据为输入,在序列的演进方向进行递归且所有节点(循环单元)按链式连接 ...

  4. 基于表面肌电信号的手势识别——深度学习方法

    文章目录 基于表面肌电信号的手势识别--深度学习方法 1.方法和代码 2.数据下载 基于表面肌电信号的手势识别--深度学习方法 1.方法和代码 https://github.com/malele4th ...

  5. 基于肌电信号(sEMG) 的深度学习手势分类-2

    我使用商业设备 (Myo Armband) 开发的数据集的分类准确度明显高于使用相同设备记录的类似基准数据集(约 24%). 实时手势识别 通过使用来自 MyoUP 数据集的 sEMG 记录训练我们的 ...

  6. 【Matlab肌电信号】肌电信号处理【含GUI源码 966期】

    一.代码运行视频(哔哩哔哩) [Matlab肌电信号]肌电信号处理[含GUI源码 966期] 二.matlab版本及参考文献 1 matlab版本 2014a 2 参考文献 [1] 包子阳,余继周,杨 ...

  7. python对肌电信号进行简单的手势识别

    采集前臂四块不同肌肉的表面肌电信号 #加载相关模块 import pandas as pd import numpy as np import matplotlib.pyplot as plt #读取 ...

  8. 1 表面肌电研究——端点检测(活动段检测)

    1 表面肌电研究--端点检测(活动段检测) 1 基本知识 基于语音端点检测的方法有很多,从历史的发展来看. 首先是基于短时能量和短视过零率的端点检测=〉各变换域=〉人工神经网络=〉基于倒谱距离的检测算 ...

  9. 【电路设计】肌电信号采集电路分析

    最近在开发肌电信号的采集,表面肌电信号是非常微弱的生物信号,正常人体表面肌电信号赋值为0–1.5mV,主要能量频段集中在10–150Hz.电路主要是根据原始信号,设计相应的放大电路.滤波电路, 详细可 ...

最新文章

  1. OpenCV读写图像文件解析
  2. cygwin和mingw编译软件的疑问
  3. [Music]若是每个人都彼此关怀
  4. java并发之线程安全---java并发编程实践
  5. 持久化存储技术之本地存储
  6. 请求到达时先经过过滤器还是拦截器_上海自动卷绕式过滤器价格_康斐净化
  7. 专题:手把手学习硬件基础之手册阅读------LDOAMS117
  8. WPS简历模板的图标怎么修改_研究了 2000 份 BAT 员工的简历后,我发现这 3 个共同点...
  9. Python PDF转image方法小结
  10. C/C++编程学习 - 第20周 ⑩ 量身高
  11. keil5c语言定义引脚,keil编写C程序是不是不能在函数内定义变量啊,求大神
  12. 互联网早报:腾讯内测游戏社交 App“NokNok”,对标 Discord
  13. 广工数据结构课设——校园导游咨询(C语言)
  14. CSS 的弹性布局(flex) ,是什么?
  15. 有道翻译的划词图标在adobe acrobat pro不显示
  16. 一文探究OR值和RR值区别
  17. 【SQL Server 上机实验题 】
  18. 月末使用期间损益结转
  19. 会声会影2022全新专业版安装及新功能介绍
  20. 教你一招,轻松实现heic转换

热门文章

  1. 地月系统拉格朗日点第二版
  2. TCP,UDP创建服务器以及客户端
  3. EOS数据分析——透明的RAM交易
  4. 自恢复保险丝,如何选择专业的厂家?
  5. 【笔记:左程云算法与数据结构】4.链表
  6. 体验 win10 下 oceanbase 数据库
  7. powershell cs上线_红队CS工具的基本使用
  8. UI一揽子计划 6 (UIControl、UISegmentedControl、UIImageView插入数组图片、UISlider)
  9. 恋梦2013年8月13日 小学生日记大全集
  10. smalltalk_通过Smalltalk回到未来