当前位置:首页 期刊杂志

基于多通道组合窗口能量法的表面肌电信号分类算法

时间:2024-05-04

孔康 李德盈 牛禹涵 孙中圣

(南京理工大学机械工程学院 江苏省南京市 210094)

人体表面肌电信号在医学领域有着非常重要的应用,能够直观地反应神经和肌肉的运动状态,拥有极大的医学价值。但其信号具有微弱性,突变性,在采集的过程中容易受噪声的干扰,因此在采集和识别动作的过程中存在很大的难度。当前对肌电信号的特征提取主要分为时域分析法、频域分析法和时频域分析法。频域分析法存在延迟性高、依赖计算能力等问题。时域分析法具有信号处理的速度快等优点,吴颜生[1]提取52 个时域和参数模型等特征进行分析和识别分类;马迪[2]通过对时域和非线性动力学特征的提取完成对表面肌电信号的采集。但由于利用肌电信号幅值进行分类,受手势动作力度等因素影响较大,存在识别率较低的问题。时频分析法相较时域分析法有一定的延时性,识别率相对较高,吴庭丞[3]分析对比综合时域和自回归特征的信号特征提取方法与结合时域和功率谱描述的特征提取方法,采用LDA 降维的方法,但是可用维度最大只能是C-1,无法选择全部可用维度;邱青菊[4]采用小波变换和小波包变换识取时频特征。同样的,也有一些研究者提取肌电信号的其他特征进行识别。石欣[5]提出LMS-随机森林的方法实现快速准确分类。刘万阳[6]使用幅值绝对值和小波系数奇异值作为特征值,选取支持向量机算法实现模型训练和分类识别,识别率达到90.31%。

本研究从时域特征角度出发,力求保证识别速度的条件下提高动作识别率。对原信号进行频谱分析,设计使用滤波器和陷波器,针对环境噪声以及50Hz 的工频噪声进行降噪处理。创新使用多通道组合窗口能量法设置阈值,利用四通道的同时性,对采集到的信号进行活动段检测,提取动作段信号。采用窗口法对信号进行分割,完成对五个手部动作产生的肌电信号时域特征的提取。在完成时域特征提取后,通过BP 神经网络训练进行手势动作分类,并获得良好的识别率。最后采用分通道PCA 的方式降维,减小计算量,提高计算速度。

1 信号预处理

1.1 采集信号

肌电信号频率主要集中在20-500Hz。本文采用的信号采集仪器是采样频率1000Hz 的按扣式电极连接四通道采集电路,在采集信号后首先利用频谱分析找到电磁干扰、人工干扰和白噪声等干扰频率,将数据依次通过simulink 仿真中建立的高通滤波器(截止频率20Hz)、陷波器(阻带频率48Hz,通频带频率55Hz)、低通滤波器(截止频率490Hz)的处理,完成信号的采集降噪[7]步骤,并在计算机中使用上位机程序完成信号预处理。

1.2 活动段检测

图1:BP 神经网络结构图

图2:BP 神经网络流程图

图3:手臂肌群示意图

使用多通道组合窗口能量法进行活动段检测,降低无动作时肌电信号的干扰。将通过预处理降噪之后的肌电信号的电压数值进行开平方计算,用数据的开平方数值代替该段的能量[8]。由于肌电信号存在交变和阶跃性,为减小由于信波动较大而产生错判,本文采用划分窗口[9]求能量的方式,但窗口不宜过大,否则会造成漏判。窗口长度设置为4ms,计算无动作段窗口信号的平均能量,算法描述如下:

其中xn表示第n 段窗口肌电信号的能量,m 表示通道数。

为减小判断误差,检测动作的阈值选取为无动作窗口能量的1.4倍,文中取阈值为0.0036uV2。考虑到进行同一次实验时,四个通道存在同步性,为进一步减小检测误差,选择多通道组合的方式,当存在两个及以上通道数的某窗口能量大于该阈值,就认为该窗口段为动作段,计算方法如下:

将该动作段的信号还原并提出,将各个动作段的信号按时间顺序依次排列,构成活动段信号组。另四种动作重复上面的做法。

考虑到实验测量和活动段检测存在误差,不同动作检测出的活动段长度可能不同,因此需要对不同的动作进行长度的统一,滤除多余动作长度的后半段。

1.3 时域统计特征提取

时域分析是将肌电信号的时域统计量作为模式分类依据,主要包括:平均绝对值、标准差、均方根、方差、过零点数、最大最小值等。本文选取平均绝对值、方差、均方根和过零点数[8]作为分类识别特征。

1.3.1 平均绝对值表示活动段表面肌电信号的平均强度,计算公式如下:

1.3.2 均方根

表示活动段肌电信号的平均功率,计算公式如下:

1.3.3 方差

表示活动段表面肌电信号与平均值的偏离情况,计算公式如下:

1.3.4 过零点数

反映的是活动段内肌电信号的幅值超过零轴的次数,计算公式如下:

其中,相邻值threshold,即阈值,取无动作时电压值均值的1.4倍,用以降低背景噪声对过零点数的干扰。

考虑到肌电信号的突变性,所以选择移动窗口法[10]对时域特征进行计算。窗口每次沿时间轴方向移动滑动窗的大小,移动窗口法较静止窗口法能更多地利用数据段,更好地反映信号。滑动窗口和滑动距离大小的选择,过小将无法排除肌电信号突变阶跃的影响,过大又不能够精确地反映每种动作特征的区别,为了完整地描述肌电信号,窗口长度在选择时要能够被动作段长度整除。在通过多次尝试后,本文选择窗口长度为8ms,滑动增量为4ms。对五种动作的四个通道依次进行以上操作。

1.4 制作样本

图4:采集电路图

每种动作有四个通道四个时域特征,每个特征有2998 条数据。因此可以针对每种动作建立一个2998*16 的动作矩阵,共五种动作,列出5 个大小相同的矩阵。为区分每一种动作,给每一个动作设定一个标签,屈食指为动作1,屈拇指为动作2,屈腕为动作3,屈四指为动作4,握拳为动作5。将动作标签添加到每个样本数据末尾,五种动作依次排序,组合成一个14990*17 的输入矩阵,前十六列为每个动作四个通道的特征数据,最后一列为动作标签。

为保证后续BP 神经网络对动作数据选取的完整性,需要将各动作按时间顺序依次插入排列,第一行为第一个运动段时刻屈食指的数据,即动作1;第二行为第一个运动段时刻屈大拇指的数据,即动作2。依次类推,得到行向量依次为动作1,动作2,动作3,动作4,动作5。

2 分类算法

2.1 BP神经网络分类

BP 神经网络算法结构简单,是一种按照误差逆传播算法训练的多层前馈网络。它的训练过程由正向传播、反向传播、循环记忆训练[11]和学习结果判别组成。结合图1 和图2,传递函数选择Sigmoid 函数,计算方法如下:

输入的每种动作包含16 个特征,输入层的神经元个数为16。共有5 种手势腕部动作,因此输出层设置为5 个神经元。本文中涉及到的手势动作较为复杂,单纯依靠经验公式选择隐含层层数是不够精确的,本文经过多次尝试之后,最终选择了隐含层的数目为18。学习速率设置为0.1,初始权值和阈值选择1,最大迭代次数取1000。

将本文所需要测试的五种手势动作共14990 条输入样本代入测试。训练样本数为70%,剩下的样本作为神经网络的验证和测试,各占15%。经过神经网络预测后,建立混淆矩阵[12]。

2.2 PCA降维

当前每一个通道的维数是16 维,为了降低维度,保留下最重要的一些特征,去除噪声和不重要的特征,从而提升数据处理速度。本文决定通过主成分分析的方法实现特征向量的降维,减少BP 神经网络的输入节点数。

由于每个通道采集的信息是独立的,所以本文将对各通道逐一进行主成分降维[13]。取通道一的四个特征指标:平均绝对值、方差、均方根、过零点数,分别用x1、x2、x3、x4表示,这四个指标构成的四维随机向量x=(x1, x2, x3, x4),由于有14990 个样本,所以每个通道可构成大小为14990*4 的样本矩阵X:

图5:实验手部动作图

图6:滤波前后频谱图

图7:四通道屈食指提取的活动段图像

计算标准化样本的协方差矩阵:

3 实验与结果分析

3.1 数据来源

不同的手部动作将产生不同的肌电信号,从生物医学角度,分析手部动作跟前臂肌肉肌群的对应关系。结合表1 给出的肌群和手部动作的关系,根据图3 手臂肌群分布确定贴片位置。采集电路图如图4 所示。

表2:PCA 降维

图8:优化前后分类结果

表1:肌肉群与动作对应关系

设计图5 中五种手部动作。在采集的过程中,被测者需要完成并重复指定动作,每一个动作的肌电信号的采集需要完成12 组,一组测量中包括持续保持指定动作2s、保持放松状态2s,采样频率为1000Hz。

将采集到的肌电信号进行频谱分析,进行第一次预处理,结果如图6 所示。

图7 为屈食指特征活动段检测后,活动段信号还原并按时间顺序排列的图像。

3.2 结果分析

通过PCA 降维,得到表2 的结果。

由表2 分析可得,当主成分阶数为3 个时,对应通道的累计贡献率已经达到98.30%、98.88%、97.78%、97.91%。一般当主成分的累计贡献率达到90%时就可认为这几个主成分代表原数据的绝大部分重要特征,因此将每个通道的维数从4 维降为3 维,总的维数从16 维降为12 维。然后,利用降维后的数据,组成新的14990*13 的输入矩阵代入BP 神经网络,得到新的分类结果。

图8(a)(b)分别为BP 神经网络的分类结果和主成分分析法降维之后神经网络的分类结果:

图8(a)中四个矩阵从左到右,从上到下依次为训练样本混淆矩阵、验证样本混淆矩阵、测试样本混淆矩阵和全部样本混淆矩阵。标有数字1、2、3、4、5 的行和列分别表示屈食指、屈拇指、屈腕、屈四指、握拳的分类结果。对于同一行的数据意义是每一类动作的预测结果中,来自目标矩阵的手势动作占多少。以全部样本混淆矩阵为例,第一行2564+2+21+142+0=2729 个屈食指类动作的预测结果中,有2564 个屈食指动作被正确地分类,占所有样本的17.1%,有2 个屈拇指动作,21 个屈腕动作,142 个屈四指动作被错误地分类为屈食指,所以屈食指动作实际上被正确识别的正确率为94.0%。对于同一列的数据意义是,实际某一类动作被识别为各种手势动作的占比。以全部样本混淆矩阵为例,第一列2564+1+77+335+21=2998 个屈食指动作中,被正确分类为屈食指的有2564 个,有1 个被错误分类到屈拇指,有77 个被错误分类到屈腕,有335 个被错误地分类到屈四指,有21 个被错误地分类到握拳,正确分类的占85%。总体平均而言,对于所有样本被正确分类的占93.0%,被错误分类的占7.0%。

观察降维前后的分类结果,可以看到降维后的平均分类正确率为92.5%,仅比降维前低了5%,但在维数上却做到了降低,能够提高分类器的分类速度,达到了优化的目的。

4 结束语

本文采用移动窗口法提取四个测量通道获得的数据的平均绝对值、方差、均方根和过零点数四种时域特征,综合考虑算法运算时间和识别精度,设计基于主成分降维的BP 神经网络,使16 维输入变为12 维,实现对屈拇指、屈食指、屈四指、屈腕、握拳5 种手势动作的离线识别,整体的识别率达到92.5%。

本文创新使用多通道组合方式下的窗口能量法,将动作段的判别转化为可测的窗口信号的能量,即幅值的平方。通过划分窗口的方式,降低肌电信号阶跃变化带来的误判,又通过多通道计数判断的方式提高活动段检测的精度。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!