肌电信号的数据理解

news/2025/1/15 17:11:33/

目录

一、基于自采肌电数据的理解

二、基于Ninapro肌电数据的理解


本文主要是解释说明肌电数据,只有理解了数据的格式和意义,才能更进一步的去处理数据,从自采的肌电数据角度和Ninapro公共数据集的角度来理解数据。

一、基于自采肌电数据的理解

这里用于采集设备的肌电设备是基于国产的ELONI肌电仪,主要的参数是16通道(袖套/贴片电极兼容),采样率1000-2000Hz,带通滤波器范围是20Hz-500Hz,陷波滤波器滤除50Hz的工频噪声。所保存的数据格式如下所示:

这是一个txt文件,18列,N行。用Matlab读取这个文件成一个变量

filename = 'EMG20190093003113.txt';
data_all = importdata(filename);

这段数据的解释为每一行表示为每隔0.001s读取的sample,1-16列对应的是16个通道的数据,第17位和第18位是数据的时间同步位,因为设备采用双蓝牙来处理数据,两个同步位一致表示数据有效(仅仅是本设备)。上述的信号大概采集了86s的数据。在实际应用中,需要剔除17和18列的数据,因此处理完的数据大小是: [N Samples] x [16 Channels]。每个通道产生的值都是电位幅值,可以表征信号强度的。我们取出其中一个通道的信号绘图如下:

这个信号比较容易理解,当然了,越是容易理解的数据,对于学习者而言若容易建立信心,如果大家能够有自己的设备去采集自己的数据的话,那样理解的更加透彻。

二、基于Ninapro肌电数据的理解(DB1)

Ninapro(全称Non-Invasive Adaptive Prosthetics)数据集是目前表面肌电研究领域比较有代表性的公开数据集,该数据经过不断的拓展,目前已经发展到DB9了,下载网址是www.ninapro.hevs.cn,特别注意要先登录才能有下载权限。Ninapro数据集中包含了健康受试者和残肢患者的数据,用于采集的传感器包括肌电传感器、数据手套、力传感器、倾角仪、3轴加速度计等,当然不是所有DB都用到了所有的传感器,对于DB1,只用到了肌电和数据手套。本文具体对DB1进行说明。

DB1中的具体参数:

受试者:27个健康人

采集动作:52个动作(不含rest),分为:

(A)12个基本的手指动作

(B)8个基本手部动作(等长和等张收缩)

(C)9个基本的手腕动作

(D)23个抓握和功能性动作

采集装置参数

(A)运动学数据:融合了22个传感器的Cyberglove II dataglove(数据手套),目的是用于手指位置信息,该设备将这22个关节角度表示为8位值,平均分辨率小于1度,具体取决于受试者手的大小、手套的正确佩戴以及所考虑关节的旋转范围。除了Cyberglove之外,还提供了标准的商用的2轴的倾角仪,附着在受试者的手腕上,用于手机手腕方向。

(B)表面肌电数据:十个通道(差分双电极)的OttoBock MyoBock,提供了对采集信号的放大、带通滤波和校正(rectified)。原始肌电信号的带宽为15-500Hz。

采集方式

用户保持特定坐姿,面向演示屏幕,将EMG电极、数据手套和倾角仪穿戴在右手上,用户根据演示屏幕上的动作重复特定的动作。在经过预先的训练之后,每一类的动作将会连续进行10次重复来收集数据。每次动作将持续5s,两个动作之间有3s的休息时间。在规整数据的时候,四个动作类别将会被归纳到3个exercise中,其中第二个和第三个类别将被分组到exercise 2中。请注意,为了诱发重复的、几乎无意识的运动,序列是有意不随机化的。

数据说明

每个subject的数据都有三个文件组成:S1_A1_E1.mat,S1_A1_E2.mat,S1_A1_E3.mat,分别包含了exercise 1 - 3的动作数据。

加载其中一个mat文件如下:

主要说明一下repetition,rerepetition,stimulus,restimulus。其中rerepetition和restimulus都是经过矫正后的数据,毕竟在采集过程中总会存在人的反应时间和软件延迟的影响。

上面左图是repetition(exercise 1,一共12个动作),可以看出来采集方式是每个动作重复采集10次,纵轴数值表征的是每个动作的重复Index。上面右图是restimulus(exercise 1,一共12个动作),这个比较重要,可以看做是label,数值由1-12标记。

上图是emg数据中第1个通道的时序图,一共12个动作,每个动作重复10次,因此原则上图中应该有120个脉冲(动作)。

数据读取(MATLAB)

function NinaproMatrix = LoadNinaproDB( DataPath )
%Parameters:
%   DataPath: 原始数据路径
%Returns:
%   NinaproMatrix: 返回切割好的steady数据
%   NinaproTransientMatrix: 返回切割好的transient数据
NinaproMatrix = cell(1,27);
SubjectNum = 27;%% 从每个subject的目录中读取三个exercise,并将数据和标签对照着取出来
for k = 1:SubjectNumCharSubject = ['s' num2str(k)];UpperSubject = upper(CharSubject);% 读取第一个ExerciseFileName_E1 = [UpperSubject '_A1_E1.mat'];FileLocation_E1 = fullfile(DataPath, CharSubject, FileName_E1);load(FileLocation_E1);emg_E1 = emg;restimulus_E1 = restimulus;stimulus_E1 = stimulus;% 读取第二个ExerciseFileName_E2 = [UpperSubject '_A1_E2.mat'];FileLocation_E2 = fullfile(DataPath, CharSubject, FileName_E2);load(FileLocation_E2);emg_E2 = [emg_E1;emg];for i=1:length(restimulus)if(restimulus(i) ~= 0)restimulus(i) = restimulus(i) + 12; % 从index=13开始endendrestimulus_E2 = [restimulus_E1; restimulus];stimulus_E2 = [stimulus_E1;stimulus];% 读取第三个ExerciseFileName_E3 = [UpperSubject '_A1_E3.mat'];FileLocation_E3 = fullfile(DataPath, CharSubject, FileName_E3);load(FileLocation_E3);emg_E3 = [emg_E2;emg];for i=1:length(restimulus)if(restimulus(i) ~= 0)restimulus(i) = restimulus(i) + 29; % 从index=30开始endendrestimulus_E3 = [restimulus_E2;restimulus];stimulus_E3 = [stimulus_E2; stimulus];% 变换名称emg = emg_E3;restimulus = restimulus_E3;NumChannels = size(emg,2);   %通道数量NinaproMatrix{1,k} = restimulus; % cell的第一行表示labelNinaproMatrix{2,k} = emg; % cell的第二行表示data
end

读取的数据格式是2x27 cell。第一行表示label,第二行表示data,每一列表示一个subject。当然,对数据的读取方式还有很多种。

 


http://www.ppmy.cn/news/694920.html

相关文章

表面肌电信号(sEMG)介绍

表面肌电信号(Surface Electromyography)是众多生物电信号中的一种,也是相对来说最容易获取的一种电生理信号。将电极片放置在人体的皮肤表面,可以记录到皮肤表面因肌肉收缩而产生的微弱的电位差,而这个微弱的电位信号…

心电信号详细介绍

心电信号的介绍 心电图(electrocardiogram,简称ECG),采取心脏兴奋的 电活动过程,它再心脏基本功能以及病理研究方面具有重要的参考价值。 1.P波:是心电信号的准周期出现的第一个波。 2.QRS波群:由向下的Q波、尖高向上…

心电信号预处理

一、nk2心电预处理库 这是一个用于处理心电信号的 Python 算法。主要功能包括对原始心电图 (ECG) 信号进行去噪、检测各种心电图特征波峰(如 R 波、P 波、Q 波、S 波和 T 波等)以及计算心率等。 具体过程如下: 首先对输入的原始心电信号进…

【心电信号】基于matlab小波变换心电信号去噪【含Matlab源码 956期】

⛄一、小波变换心电信号去噪简介 0 引言 心电信号是人类最早研究的生物信号之一, 相比其他生物信号更易于检测, 且具有直观的规律。心电图的准确分析对心脏病的及早治疗有重大的意义。人体是一个复杂精密的系统, 有许多不可抗的外界因素, 得到纯净的心电信号非常困难。可以采用…

心电信号的滤波分析

心电信号的滤波分析 前言 ​ 2020电赛器材表出来的时候,里面有一块ADC:ADS1292。根据数据手册可以知道这是一块专用测量心电信号的ADC,结合上半年的疫情,这次电赛的心电测量估计是跑不掉了。ADC只是用来测量数据的,重…

声音信号如何转化为电信号

电信号可以转化为声音信号,声音信号当然也可以转换为电信号了 声音需要通过介质进行传播,比如通过空气、木头、水、金属等等。如果在真空环境下,声音是没办法传播的。如果我们跑到月球上去玩耍,就算叫破喉咙也没法交流了。但电磁波…

[高通MSM8909][Android7.1]电信卡信号优化

文章目录 开发平台基本信息问题描述解决方法电信卡信号优化 开发平台基本信息 芯片: MSM8909 版本: Android 7.1 kernel: msm-3.18 问题描述 我们有一款设备出口到海外,用的是澳大利亚的芯片模块,在经过测试部测试验证的时候,发现使用电信…

机器视觉工程师们,再择业-换水还是换游泳池

​ 机器视觉康耐视智能相机Insight-边缘胶路缺陷检测 再择业-换水还是换游泳池。 择业,大多数人是从高中开始选择专业,大学毕业就开始纠结选择自己的专业,再次慎重起来的时候,大多数人选择自己所学的专业,也就是我们所说,毕业就找到了一个“门当户对”的工作,无论是否本…