表面肌肉疲劳检测算法的DSP实现

2015-10-24 12:04陈涛赵丽
天津职业技术师范大学学报 2015年4期
关键词:肌肉疲劳屈肌肌电

陈涛,赵丽

(天津职业技术师范大学天津市信息传感与智能控制重点实验室,天津300222)

表面肌肉疲劳检测算法的DSP实现

陈涛,赵丽

(天津职业技术师范大学天津市信息传感与智能控制重点实验室,天津300222)

采用实时性较好的TMS320C6748型DSP代替Matlab对表面肌电(SEMG)进行数据采集并分析,实现对肌电参数的实时检测。利用频域特征提取方法进行肌肉疲劳分析,分别对同种算法在不同平台的计算结果进行分析对比,并对肌电信号疲劳分析有效性进行了研究,得出TMS320C6748浮点型DSP能够作为监测设备,对运动员肌肉疲劳状态及一些患有肢体障碍需要肌力恢复的患者进行实时监测。

表面肌电(SEMG);肌肉疲劳;数字信号处理器(DSP)

近年来,随着人们对肌电采集及处理方法的深入研究,人们对肌电采集系统实时性要求也越来越高,实时性好的设备能够有效地捕捉到肌电信号变化,从而实现对人体肌肉所处状态的实时监控,及时了解自身肌肉所处状态。人们在运动过程中,有些肌肉疲劳可以从人体自身肌肉不适感感知,而有些肌肉疲劳无法感知。在无法感知的情况下如果进行过量运动,有可能导致肌肉拉伤或者其他机体伤害[1]。因此,对于肌电的实时性监控很有必要。另外,对一些如中风导致的偏瘫患者,需要做适量肢体运动来促进肌肉活动,而上肢的正常运动对于一个人的康复来说又尤为重要[2],因此科学地制定康复计划,实时监控患者肌肉状态,能有效促进其肌肉恢复。而对于一些运动员来说,如果能规划好训练计划,实时了解其肌肉所处状态,不仅能使每块肌肉都得到应有的训练,而且能有效避免因过量训练而导致的肌肉拉伤等情况的发生[3]。本文利用浮点型DSP处理器TMS320C6748能做高精度浮点运算这一优点,在DSP上设计算法处理肌电采集后的数据,并同Matlab处理所得的MPF值进行对比,在一定范围内代替Matlab做算法处理,分析肌电疲劳状态,使人们实时了解自身肌肉所处状态,从而针对自身特点做出科学的锻炼计划。

1 表面肌电信号的采集与算法设计

1.1表面肌电信号的采集

表面肌电信号(surface electromygraphy,SEMG)是一种微弱的、非平稳的生物电信号,其有效范围集中在20 Hz~500 Hz[4-5],采用Ag-AgCl电极采集。实验前先用酒精清洁采集部位,去除表面死皮及油污[6],将导电膏涂抹均匀,以刚能覆盖接触面为宜。

肌电电极的摆放分为参考电极摆放与测试电极的摆放2种。参考电极的摆放主要为了排除非人体自主产生的电压,它可以摆放在体表的骨性标志上或不参加测试运动肌肉的肌腱处,测试中参考电极不能采集到自主运动的电信号,本实验以手腕作为参考电极。测试电极沿肌纤维行走方向平行放置,本实验主要采集指浅屈肌、指总伸肌、肱二头肌、桡侧腕屈肌、桡侧腕长伸肌。

1.2表面肌电的特征提取

表面肌电的特征提取方法分为时域法、频域法及时频域联合分析法。常用的时域分析法主要包括测积分肌电值(iEMG)、过零点数(ZC)、方差(VAR)等。

时域法对SEMG进行特征提取相对简单,但随着肌肉收缩力的变化,很多时域参数通常变化很大,而通过频域傅里叶变化后,其波形变化很小,因此在频域上具有较好的稳定性[7]。常用的频域分析法包括求取SEMG功率谱的平均功率频率(mean power frequency,MPF)和中值频率(median frequency,MF)2种,分别定义为:

式中:P(f)为信号的功率谱密度函数。

中值频率可以通过式(2)进行求解:

时频域联合分析法能够将时域和频域分析方法很好地结合起来,而应用于SEMG的时频域分析方法主要有短时傅里叶变换、Wigner-Ville分布、Choi-Williams分布及小波变换等方法。

比较3种分析方法,时频联合分析方法较前2种方法在SEMG分析方面有独到优势,其能反映时域和频域2方面的信息;但对于表面肌电疲劳分析而言,频域求解SEMG的MPF与MF已能很好地反映肌肉在正常及疲劳状态下的差异,而且很多研究均表明在反映肌肉的活动和功能状态上,平均功率频率值更具敏感性[8]。因此,本文采用频域分析方法求取MPF值并做算法移植。

2 算法移植

对于SEMG信号的移植,主要分为Matlab仿真与DSP实现2部分。由Matlab对SEMG疲劳分析所用算法进行验证,并由DSP进行算法设计,以实现对SEMG的实时分析。

2.1Matlab仿真

对于采集所得SEMG信号,需经Matlab进行FFT处理,将原始信号变换到频域,然后再求取其对应的MPF值。

本实验分为2组,分别选取4名被试(2男2女,年龄为23~26岁),其右臂在做规定次数动作后采集肌电信号(采集右臂是为了避免由心电造成的干扰),实验在一个相对安静的环境下进行,第一个实验为采集被试者在握拳后伸掌到最大过程中指浅屈肌与指总伸肌肌电信号的变化,第二个实验为采集被试者手持2.85 kg杠铃在自然垂臂到手臂与肘成小于90°角过程中肱二头肌、桡侧腕屈肌与桡侧腕长伸肌肌电信号变化,每个实验分6组,每组进行10次。

分别对每组采集信号做FFT,并计算其MPF值,图1所示为不同被试者MPF值折线图。

经采集并计算所得同一实验中指浅屈肌与指总伸肌MPF值、肱二头肌与桡侧腕屈肌MPF值比较接近,因此在图中只显示出3条折线。实验初期出现斜率绝对值下降的问题,这是由于实验初期被试用力不均匀导致。在进行一定次数适应后,肌电MPF值的斜率绝对值开始升高,尤其在第4次之后,4名被试MPF值斜率绝对值都呈现出明显增幅,由此表明其肌肉已呈现出疲劳状态。

2.2Matlab到DSP算法移植

由Matlab到DSP做算法移植,通常有2种方式,一种是通过Matlab软件间接生成可执行代码供DSP引用;另一种是在DSP中直接通过C语言编写函数。对于第一种方法,先将需要移植的算法编写成function函数,通过在Matlab命令窗口调用,验证算法是否可执行;然后通过Matlab Coder组件,将M文件转换成可供DSP调用的C语言源文件;之后打开CCSV5.5,复制Matlab生成文件到CCS工程目录,编写调用代码。这种方法可以节省编程时间,但不是所有function函数都可以编写成能供CCS使用的源文件,由于有些函数并没有对应的C语言库,所以使用受限比较明显。第二种方法是在DSP中直接编写程序。需要注意的是,Matlab中一些函数需要通过用对应的C语言函数替换,以实现相同的执行效果。这种方法虽然看起来比第一种方法复杂,但对于本实验而言,第二种方法更加适用。

2.3DSP程序测试

首先将采集所得数据转换成.dat格式的文本,然后将采集所得数据导入预先设定好的数组Input中,具体导入程序如下:

FILE*fp;

fp=fopen("F:\1.dat","rb");

if(!(fp=fopen("F:\1.dat","rb")))

{printf("Error opening%s","1.dat");

else

{for(i=0;i<Tn;i++)

{fscanf(fp,"%d",&Input[i]);}

fclose(fp);

图1 不同被试MPF值变化折线图

其中,1.dat为所采集肌电数据。这种方法需要直接读写计算机中的文件,因此对仿真器要求比较高。本实验采用XDS560V2型仿真器以提高数据处理的实时性,对数据进行FFT计算,计算正确与否可以通过CCSV5.5自带的Graph绘图工具与Matlab中所绘图形进行比较。DSP与Matlab计算同一组肌电信号FFT后所得波形图对比如图2所示。

图2 DSP与Matlab波形图对比

由图2可知,DSP与Matlab计算肌电信号FFT结果基本保持一致,在CCSV5.5中经IFFT计算结果在误差允许范围之内。在做算法移植前,还须对经FFT处理后的肌电信号值进行计算,得出对应的MPF值,从而获得所采集肌电数据在不同状态下所对应的MPF值。第1个被试在连续6组实验后,Matlab与DSP处理所得MPF值对比(以下M代表Matlab处理所得数据,D代表DSP处理所得数据)如表1所示。

由表1可知,经TMS320C6748与Matlab分别计算所得的MPF值采用双精度实数表示,两者误差在0~0.000 002之内,可以用DSP代替Matlab求取MPF值。因此,利用DSP处理肌电信号求取其MPF值,同样能为肌电疲劳提供有效数据。

表1 利用Matlab与DSP计算MPF值误差对比

3 结束语

本文通过对TMS320C6748与Matlab处理肌电数据所得FFT波形图及MPF值进行比较,可以看出利用TMS320C6748能有效处理肌电信号;通过对处理后表面肌电数据进行分析可知,在运动一段时间后,肌电MPF值斜率明显升高,说明肌肉所处疲劳状态已进一步加深。今后还可以利用DSP可视化显示进一步分析肌电疲劳,对该项研究进行补充和完善。

[1]程冬梅,周晓蓉,范利华.表面肌电在肢体肌肉功能评估中的应用及研究进展[J].中国司法鉴定,2014(3):43-46.

[2]罗林辉,赵翠莲,黎啸,等.基于肌电特征的上肢对称侧相关性研究[J].航天医学与医学工程,2015,28(1):28-33.

[3]代恩泽,贾劲,龚标,等.SEMG在足球运动员下肢肌肉训练中的应用研究进展[J].保健医学研究与实践,2015,12(3):93-96.

[4]冯艳梅,仲雪飞,王俊俊,等.基于DSP的肌电信号采集处理[J].电子器件,2014,37(5):830-834.

[5]万莎,侯文生,杨丹丹,等.基于LabVIEW的多通道SEMG信号检测系统设计[J].电子技术应用,2012(3):78-81.

[6]陈万忠,孙保峰,高韧杰,等.基于NNE技术的手臂运动模式识别算法研究[J].吉林大学学报:工学版,2013,43(3):69-73.

[7]陈晓静,戚春华,朱守林,等.基于表面肌电的草原公路驾驶员局部肌肉疲劳试验研究[J].科学技术与工程,2015,15(4):278-282.

[8]李建华.表面肌电图的康复临床评估应用进展[J].实用医院临床杂志,2014,11(5):4-6.

Implementation of surface muscle fatigue detection algorithm on DSP

CHEN Tao,ZHAO Li
(Tianjin Key Laboratory of Information Sensing and Intelligent Control,Tianjin University of Technology and Education,Tianjin 300222,China)

TMS320C6748 DSP is used to take the place of Matlab to analyzes the data obtained from the surface electromyography(SEMG).The method of frequency domain to do feature extraction is used to analyze the electromyography fatigue,the results of the same algorithm on different platforms are discussed,and the validity of the fatigue analysis of EMG signals is studied.Thus,it can be designed as a medical recovery device to monitor athletes and some patients with limb disorders needing to recover their strength of muscle.

surface electromygraphy;muscle fatigue;digital signal processor(DSP)

TP18

A

2095-0926(2015)04-0022-04

2015-10-12

国家自然科学基金资助项目(61178081);国家高技术研究发展计划项目(“863”计划)(2015AA033303);天津市应用基础与前沿技术研究计划重点项目(14JCZ DJC36300);天津职业技术师范大学科研发展基金项目(KTY11-09).

陈涛(1988—),男,硕士研究生;赵丽(1962—),女,教授,博士,硕士生导师,研究方向为生物医学工程.

猜你喜欢
肌肉疲劳屈肌肌电
盆底肌电刺激联合盆底肌训练治疗自然分娩后压力性尿失禁的临床观察
产后早期联合应用盆底肌电生物反馈仪、电刺激、针对性护理对盆底肌功能恢复的影响
针刀干预对中期膝骨关节炎兔模型伸肌-屈肌萎缩 状态及肌肉拉伸弹性模量的影响
BMI对拉力作业肌肉疲劳的影响研究
高温高湿环境长时间运动后神经肌肉疲劳类型与PAP的关系
信息科学与系统科学
改良腕手关节矫形器对脑卒中偏瘫患者腕手关节屈肌痉挛及运动功能的疗效
女生穿运动鞋与高跟鞋步行腰背肌电比较
拇长屈肌毗邻解剖结构的高频超声研究
力竭性“拉长—缩短周期”运动中离心收缩和向心收缩阶段肌肉疲劳和损伤及下肢主要关节用力特征研究