陈建国,丁建华,陈 楷,李玉榕
(福州大学 电气工程与自动化学院,福建省医疗器械和医药技术重点实验室,福建 福州 350108)
由于神经传导通路的改变或者中断而造成走路时神经系统对脚部支配能力的下降,造成步行过程中踝关节无法产生背屈,导致出现足尖上抬不完全或不能的现象,称之为足下垂[1-3]。足下垂患者行走时步态异常,常伴随着脚趾拖地,行走过程中容易导致重心不稳,增加跌倒的风险,以至于二次中风,严重影响了患者的行走能力和生命健康[4],更使得其日常生活能力和生活质量受到很大影响。
功能性电刺激(functional electrical stimulation,FES)疗法是利用安全低频脉冲刺激由中风等中枢神经病变导致功能性障碍的目标肌肉再次传出神经兴奋,使肌肉获得功能恢复的技术手段[5]。目前,该技术已经应用在中风后运动恢复[6-7]、辅助脑性麻痹儿童改善上肢功能[8]、治疗不完全脊髓损伤患者行走期间的步态[9]、基于FES的神经假肢使截瘫个体恢复失去的运动功能等康复领域[10]。在临床上,FES技术是重要的肢体康复技术之一[11],同时也是应用最为广泛的足下垂治疗方法。利用FES技术对足下垂患者进行康复训练或者辅助行走,是在患者患肢摆动过程中,对胫骨前肌施加低频电刺激,诱发胫骨前肌收缩,使脚尖能够上抬,从而改善步态。
目前,许多研究人员利用步态数据进行步态事件检测,文献[12]采用固定阈值进行步态检测,当小腿角度达到预设值时,将触发刺激。文献[4]同样也采用固定阈值进行步态检测,由于没有考虑到个体间的差异性,因此鲁棒性较差。文献[13]对加速度和角速度求方差作为阈值对步态事件进行检测,但是设计的算法需要事先采集好数据。文献[14]将惯性传感器(IMU)采集的角速度信号通过 Zigbee无线传输技术传输到计算机储存,再进行步态分段检测。文献[15]利用角速度信号对步态周期各阶段进行识别,这些都属于离线算法,无法在采集数据的同时进行步态检测,因此无法应用到实时治疗系统。针对这些不足之处,本文设计了功能性电刺激自适应阈值启停控制算法,该算法可以在每个步态周期更新阈值,降低个体差异性带来的误差,也可以实现在采集步态数据的同时进行步态检测,并应用到实时治疗系统。
人的步行过程具有一定的规律性和周期性,一个完整的步态可以分为3个阶段:站立相、摆动相和推动相,当一侧脚从站立相开始,经过脚跟离地(heel off,HO)、脚尖离地(toe off,TO)和脚跟着地(heel strike,HS),再次回到站立相称为一个完整步态[16]。功能性电刺激启停控制指的是在患者患肢摆动阶段对胫骨前肌施加电刺激,即对应在TO时刻开启电刺激,在 HS时刻停止电刺激,在摆动阶段足尖能够上抬从而改善步态。因此需要研究实时在线算法找到开启和停止电刺激的两个关键时刻点。
由于人行走过程中的活动规律主要体现在矢状面[17],同时,研究发现:足下垂患者与健康受试者的踝关节、小腿下部、小腿中部及小腿上部的角速度变化具有一致性[4,18],考虑到患者佩戴功能性电刺激仪的舒适性和美观性,认为小腿上部是佩戴功能性电刺激仪的最佳位置,即是采集角速度信号的最佳位置。
实验招募了3名足下垂患者(I1、I2和I3)和一名健康人进行实验,采集了患者的角速度信号、肌电信号以及健康人的肌电信号。实验时使用Trigno Lab(DELSYS INC.,USA)无线采集系统采集患者小腿上部的角速度信号和肌电信号,肌电信号的采样频率为2 000 Hz,角速度信号的采样频率为148.15 Hz。为了能准确采集到患者的步态信息,3名足下垂患者在采集角速度数据的全过程中,处于反重力跑步机(antigravity treadmill)中,不会因为受到外部因素导致步态信息异常,同时也可以避免在采集数据过程中出现患者摔倒的风险。如图 1(a)所示是其中一名患者处于反重力跑步机中采集角速度信号和肌电信号,图 1(b)所示为采集健康人自然步态下的肌电信号示意图。
图1 一名足下垂患者和健康人信号采集实验
图2 所示为1名健康受试者和3名患者行走时胫骨前肌的肌电信号。从图中可以发现,健康受试者在行走时胫骨前肌的肌电信号很明显,而足下垂患者胫骨前肌的肌电信号较弱,尤其是I1和I2,患者I3其胫骨前肌的肌电信号虽然较为明显,但是仍然弱于健康人的肌电信号。正是因为患者的肌力较弱,导致无法产生正常的背屈,出现了足下垂步态,所以需要利用功能性电刺激技术,辅助患者进行康复训练甚至辅助患者行走。
截取3名患者任意一段时间内矢状面的角速度,其波形图如图3所示。其中,图3(a)、3(b)和3(c)呈现的波形是患者 I1、I2 和 I3各自在 0.25、0.20和 0.6 m·s–1的速度下采集的。观察波形变化,发现不同足下垂患者小腿角速度规律大致相同,在不同的行走速度下,每个步态周期采集到的角速度数据个数不同,并不会改变小腿角速度的变化规律。
图2 健康受试者与足下垂患者肌电信号
图3 3名患者角速度波形图
首先对步态角速度信号进行特征分析,然后根据特征分析设计基于自适应阈值的足下垂FES启停控制算法,用于控制功能性电刺激的开启和停止。
如图 4所示为患者在一个步态周期内矢状面角速度变化曲线,结合步态过程分析不同阶段关键时刻的特征:
(1)脚跟离地时刻。脚跟离地后表示站立相结束,步态从站立相迁移到推动相,理论上站立过程中陀螺仪输出的角速度应该为0,但是由于陀螺仪存在漂移,导致站立过程中角速度略低于0,随着脚跟开始离地,陀螺仪输出负的角速度,随着脚跟与地面的夹角不断增大,陀螺仪输出的角速度数值不断变小。
(2)脚尖离地时刻。当角速度接近负峰值(波谷)时,脚尖开始离地。
(3)摆动阶段中点。脚尖离地之后进入步态的摆动相,陀螺仪输出的角速度逐渐由负转为正,当角速度达到极大值后便逐渐变小,这个过程中出现的极大值点又称为摆动相中点。
(4)脚跟着地时刻。经过摆动相中点后角速度开始不断变小,当出现第一个负峰值时,意味着脚跟开始着地,摆动相开始向站立相过渡。文[19]指出由于陀螺仪信号的抖动,可能会有不止一个负峰值出现,且负峰值彼此接近,如果在未来的一段时间内出现另外一个负峰值,并且后一个的负峰值与前一个负峰值的幅度差不大于10 (°)/s,那么认为后一个负峰值出现的时刻为脚跟着地时刻。此后,角速度又回到0附近的某一负值,返回站立相,标志着一个步态周期结束。
图4 一个步态周期矢状面角速度变化曲线
根据前文的步态特征分析,采用有限状态机对步态角速度进行步态检测,状态 state是一个有限集合{0,1,2,3},分别代表初始站立状态、检测摆动相过程、检测脚跟着地和检测脚尖离地。由于当前时刻之前的几个步态周期之间的关系可以为检测下一个脚尖离地事件提供参考[20],因此本文提出的自适应阈值是根据前两个步态脚尖离地过程中的角速度最小值来更新阈值,即阈值不是固定不变的,而是随着步态的变化而自动调整。
算法循环不断读取角速度,直到最后一个角速度结束算法。首先通过 Pre_count变量控制检测并记录初始两步脚尖离地过程中的负峰值;然后根据式(1)计算检测下一个步态脚尖离地的阈值,当角速度小于阈值后的第一个波谷为脚尖离地时刻,之后进入摆动相检测,在检测摆动相过程中,需要先储存脚尖离地过程中的负峰值,在摆动相中点过后进入脚跟着地时刻的检测,在这个过程中,先检测角速度小于0的第一个波谷,如果在第一个波谷之后的8个数据点都小于 0,且存在另外一个波谷,则后一个波谷为脚跟着地时刻,否则在第8个角速度数据结束时,作为脚跟着地时刻。
其中TOthreshold表示阈值,TOdata1和TOdata2是前两个步态周期脚尖离地过程中的负峰值,比例系数a的具体取值将在后文中作进一步讨论。
本文设计出基于自适应阈值的足下垂FES启停控算法,算法流程图如图5所示。
图5 启停控制算法流程图
式(1)提出了检测脚尖离地的阈值更新公式,其中a的取值对检测脚尖离地时刻有影响。如果a的取值太小,计算得到的阈值较小,可能会较早检测到阈值之后的首个波谷,即算法提前检测到脚尖离地时刻的可能性越高,而电刺激仪开启输出电刺激的时刻越早,患者感受到不适的可能性越高;如果a取值太大,即更新后的阈值太大,有可能越过脚尖离地时刻,从而无法检测到脚尖离地时刻。利用算法对3名患者的步态角速度进行检测,检测结果为:患者I1、I2和I3的参数a分别取0.7、0.6和0.7时检测结果更准确。3名患者的检测结果分别如图6、7和8所示。
图6 患者I1参数a取0.7的识别结果
图7 患者I2参数a取0.6的识别结果
图8 患者I3参数a取0.7的识别结果
将检测出的脚尖离地时刻与实际点进行比较并统计,统计结果如表1所示,时间差的单位以采样点表示,患者I1、I2和I3比实际提前检测到脚尖离地点的最大采样点分别为32、8和46,比实际滞后检测到脚尖离地点的采样点均为 1。造成提前检测的原因是在行走过程中角速度信号抖动产生波谷,导致算法检测脚尖离地时刻提前,而造成滞后检测的原因是在检测到实际脚尖离地时刻时,完成对波谷的检测是在波谷的后一个数据点,因此会滞后1个采样点。本文使用无线采集系统采集角速度信号,其采样频率为148.15 Hz,因此,3名患者提前检测到脚尖离地时刻的最大时间分别为216.0、54.0和310.5 ms,滞后检测到脚尖离地时刻的时间都是6.7 ms。从功能性电刺激仪的实际使用考虑,不能在患者脚尖已经离地较长时间后才输出电刺激,否则在这段时间内会患者胫骨前肌无法收缩,存在脚尖拖地的现象,这会导致患者重心不稳而跌倒。虽然算法可能会滞后6.7 ms检测到脚尖离地导致滞后启动电刺激,但是由于滞后时间非常短,不会造成影响;而提前开启电刺激,从人体感觉而言差异性不大,且能使胫骨前肌收缩,避免出现脚尖拖地,从角速度信号而言,小于阈值后的第一个波谷已经是比较接近负峰值,此时实际上已经处于推动相的某个位置,所以可以在此刻输出电刺激。
表1 脚尖离地检测结果与实际值的时间差(采样点个数)
将检测出的脚跟着地时刻与实际点进行比较并统计,统计结果如表2所示,时间差的单位以采样点表示。3名患者脚跟着地点的检测均滞后实际点,最大的滞后采样点都为 8,本文采用的传感器采样频率为148.15 Hz,所以最大的滞后时间为54.0 ms。由于脚跟着地后重心稳定,因此可以允许滞后停止电刺激,为防止提前停止电刺激而引起跌倒,要尽量避免提前停止电刺激。从表2结果可以发现本文的算法符合要求。
表2 脚跟着地检测结果与实际值的时间差(采样点个数)
将算法写入到 STM32F407为主控制器的电刺激仪中,用于实施控制电刺激仪的开启和停止,电刺激仪的刺激频率为20 Hz,幅值变化范围为0~50 mV,刺激波形为双极性脉冲,板载 MPU6050传感器用于采集角速度信号。招募一名来自福建医科大学附属第一医院康复科的足下垂患者进行实验,所涉及的实验均与患者的主治医师进行讨论,确保实验的安全性后开展。如图9所示为患者佩戴功能性电刺激仪辅助行走实验图,仍然采用无线采集系统,分别采集患者无电刺激行走过程中的肌电信号以及佩戴功能性电刺激仪后行走时小腿的角速度信号和胫骨前肌的肌电信号,如图10—12所示。
图9 受试者佩戴电刺激仪辅助行走
图10 患者无电刺激下行走时采集的肌电信号
图11 患者电刺激下行走时采集的角速度信号
图12 患者电刺激下行走时采集的肌电信号
电刺激仪采集小腿角速度,并通过算法在线检测脚尖离地和脚跟着地两个时刻,能够准确地在脚尖离地和脚跟着地期间施加电刺激,如图12所示。对比图 10和图12,在电刺激仪开启过程中,采集的肌电信号较为明显,然而,利用电刺激脉冲刺激胫骨前肌收缩而产生的肌电信号,是电刺激诱发的肌肉反应(muscle responses,M-wave)和电刺激伪迹(stimulation artifacts,SA)[21-23]叠加产生的信号,电刺激诱发的肌肉反应又称为M波,是电刺激引起运动单元激活[21],表征电刺激下的肌肉激活水平,可作为电刺激下的生物反馈信号[24-27],而 SA是随着电刺激信号同时出现的,因此图12中不仅有M波信号,还有SA信号,为了得到M波信号,我们需要滤除SA信号。本文采用屏蔽法滤除 SA信号,即将正负峰值时间窗口内、正峰值前面几个点和负峰值后面几个点的信号为0[28-29],得到M波信号如图13所示,再对M波信号进行1-范数计算包络,即计算每个电刺激脉冲整流后的M波面积,表现为这段时间内肌肉响应的累积值,如图14所示,可见相对于无电刺激下的自主运动,肌肉运动单元很明显已经被激活。综上所述,表明了足下垂功能性电刺激起停控制的准确性。
图13 电刺激下的M波
图14 电刺激下的M波包络
本文提出来一种基于自适应阈值的足下垂FES启停控制方法。通过采集足下垂患者下肢步态角速度信号,并对其进行特征分析,根据特征分析设计的自适应阈值启停控制算法可以在每个步态周期更新一次阈值,实现在线检测脚尖离地时刻和脚跟着地时刻,作为控制功能性电刺激仪开启和停止的信号,用于足下垂患者的康复治疗。最后通过在线实验进一步验证了自适应阈值启停控制算法的可行性,表明了足下垂功能性电刺激起停控制的准确性。