肌肉接口通常只有在截肢后有相关残余肌肉组织可用时才可能。截肢程度越高,对控制信号的需求就越大,可用于进行直观控制的肌肉就越少。尽管如此,肌肉可以被用来将神经代码传递到缺失肢体的神经去神经化和再神经化。这种手术被称为靶向肌肉再支配(TMR),它是假肢的一个突破。
增加激活水平的两种生理机制:额外运动神经元的募集和活动运动神经元放电频率的调节。运动神经元放电时序已被汇集以获得所有运动神经元的放电时序的集合,作为神经驱动的估计。
肌肉接口通常只有在截肢后有相关残余肌肉组织可用时才可能。截肢程度越高,对控制信号的需求就越大,可用于进行直观控制的肌肉就越少。尽管如此,肌肉可以被用来将神经代码传递到缺失肢体的神经去神经化和再神经化。这种手术被称为靶向肌肉再支配(TMR),它是假肢的一个突破。
增加激活水平的两种生理机制:额外运动神经元的募集和活动运动神经元放电频率的调节。运动神经元放电时序已被汇集以获得所有运动神经元的放电时序的集合,作为神经驱动的估计。
尽管平均校正值(ARV)和均方根值(RMS)随着募集的运动单元(MU)的数量及其发射率单调增加。它们不区分这些激活模式和运动单元动作电位(MUAP)的影响。这在动态肌肉收缩中变得有问题,因为肌肉的几何变化会导致 MUAP 形状的变化。因此,在 RMS 和 ARV 指标中,MUAP 的变化很容易被误认为是肌肉兴奋模式的变化。据我们所知,MUAP 变化对 ARV 或 RMS 指标的影响尚未系统量化。
更先进的肌肉兴奋技术建立在通过分解 hdEMG 信号直接识别 MU 发放序列的基础上。这些技术将 MUAP 与兴奋模式完全分离,但在很大程度上仅在等长肌肉收缩上进行了测试。没有详细研究动态条件,主要是由于缺乏可靠的动态 hdEMG 分解技术。
我们量化了 MUAP 对基于 RMS 的 hdEMG 肌肉兴奋估计的负面影响。RMS 度量在等距和动态条件下均产生14%的NRMSE(图1和图2)。即使只有5个已识别的 MU,基于 CKC 的 CST 也显著优于 RMS 度量。NRMSE 随着识别的 MU 的数量而进一步降低。
总结就是:先选一段信号区间用于估计初始参数,然后再在各个区间上改进参数。
提出了一种新的动态hdEMG卷积数据模型,以及用于评估MU识别准确性和分析动态肌肉收缩中MU动作电位(MUAP)变化对MU识别的影响的脉压比(PNR)指标。我们在不同的动态收缩速度下,对来自肱二头肌、股外侧肌和股直肌的信号测试了所提出的方法。
当考虑MU发射时间的预先存在的知识时,可以显著提高尖峰分割方法的鲁棒性。例如,在处于相对恒定收缩水平的健康人体肌肉中,MU发射频率相对恒定。棘间距的标准偏差在平均棘间距的10%到30%之间[5]。不幸的是,这不适用于病理情况或快速肌肉收缩的情况,在这些情况下,这种额外知识的实施会大大降低MU尖峰分割的准确性。
目前分解的主流方法有两种,这两种方法主要应用于静态收缩(肌肉恒力收缩)或者肌力缓慢变化的情况:
动态收缩时,由于电机相对位置的变化以及肌纤维长度的改变,导致 MUAP 发生变化。目前有少数学者对肌肉动态收缩 sEMG 信号进行了研究,Glaser 等[6]提出卷积核分解方法,该方法将 sEMG 信号分段,采用线性函数得到发放时刻,但是发放时刻分类仍然存在问题。 Glaser 等[7]还提出了基于 MU 波形非传输分量的分解算法,但由于传输分量与非传输分量的分离存在难度,实现比较困难。DeLuca 等[8]使用机器学习算法分解 sEMG 信号,但是 MU 波形变化影响因素众多,难以预测,所以识别仍然较困难。
带通滤波频带范围:10-500 Hz
本文引入了MUAP变化的MU特异性测量,该测量可以直接在已识别的MU spikes中使用,并且不依赖于肌肉几何形状或关节角度的任何外部测量。PNR同样适用于动态下的分解效果评估。所引入的方法对MUAP变化和肌肉收缩速度表现出相当大的稳健性。
由于EMG混合过程的复杂性,通常由卷积多输入多输出系统建模,个体MU发放模式的识别在很大程度上仅限于等长肌肉收缩,其中肌肉和周围组织的几何形状不会发生显著变化。在这种条件下,由电极获取的MU动作电位(MUAP)是相对稳定的,并且主要的EMG非平稳性来自MU的募集和放电速率调制。在动态收缩中,MUAP 形状改变的两个因素:
采样通道数量 (Sample Channel Count),进入采样过程的通道个数,取值范围[1, 8]。即决定了 CHParam[]通道组阵列中有效单元的个数。若 nSampChanCount=1, 则表示仅 CHParam[0]单元决定的物理通道号有效; 若 nSampChanCount=2,则表示仅 CHParam[0]、CHParam[1]两个单元决定的物理通道号有效; 若 nSampChanCount=3,则表示仅 CHParam[0]、CHParam[1]、CHParam[2]三个单元决定的物理通道号有效,依次类推。
连续采样模式: 决定着触发采样事件 hSampEvent 时的点数条件。
比如指定该参数值为 1024点,则每采样到不小于 1024 点时就会触发采样事件 hSampEvent,它也决定着每次调用 AI ReadAnalog()或 AIreadBinary()时能最快返回的点数边界 (请注意:是不小于 nSampsPerChan,意思是不可能正好等于 nSampsPerChan 时就能得到事件通知,而是通常在超过 nSampsPerChan 时才能得到事件通知)。即该参数的取值大小决定着每两次读到数据的时间间隔,也就是实时响应度。点数越小,实时响应就越高,反之越低。但不能为了一味的追求实时响应度就将该参数的值设得很小,这个还要看采样速率的高低,如果采样速率很高,而 nSampsPerChan 的值很小,则可能造成任务负担过重而发生缓冲区溢出,以致造成丢点现象的发生。建议实时响应度不低于 20 个毫秒是比较合适的。比如每通道采样速率为 100Ksps,即10微秒一个点,则 nSampsPerChan 不小于 2000 个点是比较合适的。该参数的取值范围为[2, 1024 * 1024],具体还要受制于系统可用内存和采样通道数。
在有限点和连续采样模式中,它指定该次从设备的当前可读数据位置读取的数据点数(单位: 点)。注意此参数的值如大于当前的可读数点 nAvailSampsPerChan 则会继续等待直到至少有 nReadSampsPerChan 个点可读后读函数才会返回。等待期间,如果所等时间超过 fTimeout 指定时间也会返回,并置超时错误码。
在连续采样过程中,如果要保持连续不丢点,此参数应尽可能接近于甚至等于当前的可读点数(nAvailSampsPerChan),但不能大于 AIParam.nSampsPerChan。当然此参数值也不能大于 fAnlgArray 的缓冲区长度,所以为避免出错,所开辟的缓冲区不能小于 nReadSampsPerChan * AIParam.nSampChanCount。
和nSampsPerChan相比一个是需要读的一个实际采的。而实际读到的点数在pSampsPerChanRead。
这个告诉我们,要关注数据采集卡的底层,采样分析发现,数据采集卡是 2 的幂次方个数目采集存储的。
编码器的A相、B相和Z相是增量式旋转编码器中常见的信号输出端:
综上所述,A相和B相主要用于测量转速和旋转方向,而Z相则提供了一个绝对位置的参考标记。这三相信号共同工作,使得控制系统的闭环控制更加准确和可靠。
1 | // 采样 |
这种算法一定要注意参数的设置,如果h设置过大,可能把一些不同mu的spike都均值化了。
在高信噪比和低收缩强度的情况下,不需要迭代的过程,聚完类就能得到一个好的发放时刻。但是对高收缩力情况下的复杂emg信号,就需要这个迭代过程来改善spike train。
这篇文章把peel-off策略应用到CKC算法上。CKC算法使用的是梯度下降求解,代价函数为 s^3/3 ,学习率设置为0.1,初始化为激活指数最大的值,并且识别到MU的发放时刻后进行剔除(但是这种剔除只会偶尔有效,所以本文提出了peel-off策略)。本文比较重要的是还介绍了几个评价指标: