2. 肌电信号基础:表面肌电信号(sEMG)的生理基础、采集原理、常见噪声与伪迹

各位同学,咱们今天聊点实在的。做肌肉协同分析,你绕不开的第一个坎儿,就是表面肌电信号。说白了,sEMG 就是肌肉收缩时,从皮肤表面捡到的电信号。我刚开始接触这个领域时,总觉得信号采集嘛,贴几个电极不就完了?结果第一次实验数据全是噪声,根本没法用。嗯,这里面的门道,咱们得一条条捋清楚。

2.1 生理基础:信号从哪来?

你想想看,我们的大脑想动一下手指,指令是通过神经传下来的。这个指令到达神经-肌肉接头后,会引发一个动作电位。这个电位沿着肌纤维传播,最终导致肌肉收缩。

单个运动神经元和它所支配的所有肌纤维,合起来叫一个运动单元。一个运动单元放电,会产生一个运动单元动作电位,简称 MUAP。我们贴在皮肤上的电极,其实是捡到了很多很多 MUAP 叠加在一起的结果。这个叠加后的信号,就是 sEMG。

核心要点:sEMG 是多个运动单元动作电位的时空叠加。它不是单个细胞的信号,而是「一群肌肉细胞在开会」的宏观表现。

我个人习惯把 sEMG 看作一个「随机信号」。为什么?因为每个运动单元的放电时间、放电频率、以及它和电极之间的距离都不一样。这些因素叠加起来,信号就变得非常复杂。但正是这种复杂性,才包含了肌肉协同的丰富信息。

2.2 采集原理:怎么把信号「捞」出来?

采集 sEMG,核心就是两件事:差分放大滤波

差分放大是什么意思?我们通常用三个电极:两个记录电极,一个参考电极。两个记录电极放在同一块肌肉上,它们捡到的信号其实差不多。但噪声(比如工频干扰)在两个电极上几乎是相同的。差分放大器一相减,有用的肌电信号被保留,共模的噪声就被干掉了。这就是所谓的共模抑制比,CMRR。好的放大器,CMRR 得在 100 dB 以上。

滤波就更关键了。sEMG 的有效频率范围一般在 20-500 Hz。低于 20 Hz 的,那是运动伪迹(你动一下胳膊,线缆晃一下,都会产生低频干扰)。高于 500 Hz 的,基本就是高频噪声了。所以,一个标准的带通滤波器是必须的。

我的经验:我曾经在采集前臂肌电时,忘记打开高通滤波(20 Hz),结果受试者稍微动一下手指,基线就漂得离谱。后来我学乖了,每次采集前都先检查滤波设置。避坑指南:采集前,先让受试者放松,看看基线是否平稳。如果基线像心电图一样上下跳动,那肯定有问题。

下面这张图,是我自己总结的 sEMG 采集与处理的基本流程,你可以把它当作一个「信号流水线」来看:

生理信号 MUAP 时空叠加 差分电极 CMRR 抑制共模噪声 前置放大器 增益 100-1000 倍 带通滤波 20-500 Hz AD 采样 噪声源: 工频干扰 | 运动伪迹 | 基线漂移 图2-1:表面肌电信号采集与预处理流程 关键参数:采样率 ≥ 1000 Hz | 分辨率 ≥ 16 bit | CMRR ≥ 100 dB

2.3 常见噪声与伪迹:信号里的「捣蛋鬼」

做肌电实验,最头疼的就是噪声。我总结了三大类,你遇到的基本跑不出这些:

2.3.1 工频干扰

这是最常见的。50 Hz(国内)或 60 Hz(国外)的交流电干扰。你想想看,实验室里到处都是电源线、插座、显示器,这些都会产生电磁场。电极线就像一根天线,很容易就把这些干扰捡进来了。

怎么治? 一是用屏蔽线,二是把参考电极放在骨性突起处(比如手腕、肘部),三是用陷波滤波器(Notch Filter)把 50 Hz 干掉。但我个人建议,不要过度依赖陷波滤波器。因为 50 Hz 附近可能也有有用的肌电信号。能通过硬件解决的,就别用软件。

警告:我曾经见过有人用 50 Hz 陷波滤波器,结果把 49-51 Hz 的信号全切了。做完肌肉协同分析,发现提取的协同结构完全不对。后来排查了半天,才发现是滤波器把信号「切坏了」。所以,能用硬件屏蔽解决的,优先用硬件。

2.3.2 运动伪迹

这是低频干扰,一般在 0-20 Hz。受试者动一下胳膊、咳嗽一声、甚至深呼吸,都会导致电极和皮肤之间的相对位移。这个位移会产生一个缓慢变化的电位,叠加在 sEMG 上。

怎么治? 高通滤波器(比如 20 Hz)是标配。另外,电极贴得要牢,线缆要固定好。我习惯用医用胶带把线缆贴在皮肤上,减少晃动。

2.3.3 心电干扰

这个在采集躯干肌肉(比如胸肌、腹肌、背肌)时特别明显。心脏的电活动会通过身体组织传导到电极上。你会在 sEMG 信号里看到一个周期性的「小鼓包」,那就是心电。

怎么治? 一是调整电极位置,尽量远离心脏。二是用自适应滤波算法,把心电成分去掉。但说实话,如果心电干扰太强,最好的办法是让受试者屏住呼吸几秒钟,采集一段干净的数据。

2.4 采集参数的选择:别让细节毁了数据

这里我列一个表格,是我多年总结的「黄金参数」:

参数 推荐值 说明
采样率 ≥ 1000 Hz sEMG 最高频率约 500 Hz,根据奈奎斯特定理,采样率至少 1000 Hz。我习惯用 2000 Hz,留点余量。
分辨率 ≥ 16 bit 分辨率太低,信号细节会被量化噪声淹没。16 bit 是底线,24 bit 更好。
电极间距 20 mm 间距太小,信号幅度低;间距太大,容易串入邻近肌肉的串扰。20 mm 是 SENIAM 推荐的标准。
电极材料 Ag/AgCl 银/氯化银电极,极化电位小,信号稳定。别用不锈钢电极,噪声大。

我的小技巧:采集前,用酒精棉擦拭皮肤,去除油脂和死皮。这样可以降低皮肤阻抗,提高信号质量。我见过有人不擦皮肤直接贴电极,结果信号阻抗高达 100 kΩ,噪声大得没法看。擦一下,阻抗能降到 10 kΩ 以下,效果立竿见影。

好了,关于 sEMG 的基础,咱们就聊到这儿。记住一句话:垃圾进,垃圾出。采集阶段如果没把噪声控制好,后面再牛的算法也救不回来。下一节,咱们会聊聊怎么从这些信号里,把肌肉协同结构给「拆」出来。


公众号:蓝海资料掘金营,微信deep3321