3. EMG信号特性:时域特征(幅值、方差)、频域特征(功率谱)、非平稳性、信噪比
肌电信号(EMG)是运动单位动作电位(MUAP)在时间和空间上叠加形成的生物电信号,其本质是高度随机的非平稳生理信号。要正确采集并处理EMG信号,首先需要深刻理解其多维度的物理特性。本章将围绕时域特征(幅值、方差)、频域特征(功率谱)、非平稳性以及信噪比(SNR)四个核心维度展开,建立对EMG信号特性的系统性认知,为后续的滤波、特征提取与模式识别奠定理论基础。
3.1 时域特征:幅值与方差
时域分析是EMG信号处理最直观的切入点,直接对电压-时间序列进行统计计算。由于EMG信号是大量运动单位放电的叠加,其瞬时幅值具有随机性,因此需要采用统计量来描述其整体强度与波动特性。
核心原理
幅值特征中最常用的是均方根值(RMS)和平均值(MAV)。RMS定义为信号平方均值的平方根,其物理意义与信号的能量直接相关,计算公式为:
RMS = sqrt( (1/N) * Σ x[n]² ) (n = 1, 2, ..., N)
MAV则计算信号值的平均,计算量小,常用于实时嵌入式系统。方差(Variance)描述信号围绕均值的离散程度,在去除直流偏置后,方差与RMS的平方等价,反映信号交流分量的功率。值得注意的是,EMG信号的幅值范围通常在10μV至5mV之间,具体取决于肌肉大小、收缩强度以及皮下脂肪厚度。
判断方法与操作流程
- 数据预处理:首先去除直流偏置(减去均值),并进行带通滤波(典型20-500Hz)以去除基线漂移。
- 分段处理:将连续信号划分为固定长度的时间窗(如250ms或500ms),窗内计算特征值。
- 特征计算:对每个窗口分别计算RMS、MAV和方差,形成特征序列。
- 归一化:为消除个体差异,通常以最大自主收缩(MVC)时的RMS值作为基准进行归一化。
| 时域特征 | 计算公式 | 物理意义 | 典型应用 |
|---|---|---|---|
| RMS | sqrt(mean(x²)) | 信号能量强度 | 肌肉激活水平、假肢控制 |
| MAV | mean(|x|) | 平均整流值 | 实时肌电开关 |
| 方差 | mean((x-μ)²) | 信号波动程度 | 疲劳初判、稳定性分析 |
| 峰值 | max(|x|) | 最大瞬时强度 | 动作起始检测 |
3.2 频域特征:功率谱分析
频域分析通过傅里叶变换将时域信号分解为不同频率分量的组合,揭示EMG信号的频率构成。正常骨骼肌EMG信号的能量主要集中在20-150Hz频段,其中50Hz附近常存在工频干扰,而高频成分(>300Hz)通常与噪声相关。
核心原理
功率谱密度(PSD)描述信号功率在频域上的分布。经典估计方法为周期图法:对信号加窗后做FFT,取幅值平方并除以采样点数。更稳健的是Welch方法,它将信号分段、加窗、FFT后取平均,有效降低方差。频域特征中最常用的指标是平均频率(MNF)和中位频率(MDF):
MNF = Σ(f_i * P_i) / Σ(P_i)
MDF = 满足 Σ(P_i) = 0.5 * Σ(P_total) 的频率值
MDF对噪声和频谱泄漏的敏感度较低,因此在疲劳评估中更受青睐。随着肌肉疲劳发展,动作电位传导速度减慢,PSD会向低频方向偏移,表现为MDF和MNF下降。
操作流程与注意事项
- 选择窗函数:汉宁窗或汉明窗可减少频谱泄漏,窗长通常取1-2秒以保证频率分辨率(约1Hz)。
- FFT参数设置:采样率通常为1000-2000Hz,FFT点数设为2的幂次(如1024或2048)。
- 频带截取:仅分析20-500Hz范围内的PSD,避免直流分量和高于奈奎斯特频率的无效成分。
- 特征提取:计算MNF、MDF以及频带功率比(如20-150Hz功率占总功率比例)。
3.3 非平稳性:EMG信号的动态本质
与正弦波或平稳随机噪声不同,EMG信号的统计特性(均值、方差、频谱)随时间变化。这种非平稳性源于肌肉收缩力变化、运动单位募集与去募集、肌肉疲劳以及电极相对肌肉位置的微小移动。
核心原理与应对策略
非平稳性意味着传统的傅里叶分析(假设信号平稳)只能反映分析窗口内的平均频谱特性,无法捕捉频率随时间的变化。例如,在持续等长收缩过程中,MDF会从初始的100Hz逐渐下降至70Hz,这一动态过程需要时频分析方法才能完整呈现。
应对非平稳性的常用策略包括:
- 短时傅里叶变换(STFT):将信号分段,每段近似视为平稳,逐段做FFT,得到时频图。
- 小波变换:使用可变窗长的基函数,在低频段获得高频率分辨率,在高频段获得高时间分辨率,更适合瞬态信号。
- 分段特征提取:在时域特征提取时采用短窗(如100-200ms),使每段内的信号近似平稳。
案例拆解:动态收缩下的频谱偏移
背景与目标:某康复工程团队需要评估中风患者在进行肘关节屈伸运动时的肌肉疲劳程度。患者以50%MVC力度做动态收缩,持续2分钟,采样率2000Hz。
初始现象:若直接对2分钟信号做一次FFT,得到的PSD显示MDF为85Hz,但患者在第90秒后明显感到费力。
分析过程:采用STFT,窗长1秒,重叠50%。观察时频图发现:前30秒MDF稳定在95Hz左右,30-60秒缓慢降至88Hz,60-90秒加速下降至75Hz,最后30秒降至68Hz。同时,低频段(20-50Hz)功率占比从25%上升至45%。
操作步骤:使用Python的SciPy库,调用scipy.signal.stft函数,设置窗口为汉宁窗(256点),noverlap=128,计算得到时频矩阵后提取MDF序列。
结果对比:整体FFT仅给出一个平均MDF值(85Hz),掩盖了疲劳进程;而STFT清晰展示了MDF随时间下降的趋势,为临床提供了量化疲劳起始时间的依据。
复盘经验:对于动态收缩,固定窗长的STFT可能无法同时满足快速动作(需要短窗)和慢速疲劳(需要长窗)的时间分辨率需求。此时可考虑小波变换或自适应窗长方法。
3.4 信噪比(SNR)评估与提升
信噪比是衡量EMG信号质量的核心指标,定义为信号功率与噪声功率之比,通常以分贝(dB)表示。低SNR会直接导致特征提取失真和模式识别准确率下降。
噪声来源与量化
| 噪声类型 | 频率范围 | 典型幅值 | 抑制方法 |
|---|---|---|---|
| 工频干扰 | 50/60Hz + 谐波 | 可达信号幅值10倍 | 陷波滤波、屏蔽、驱动接地 |
| 运动伪迹 | 0-20Hz | mV级 | 高通滤波、电极固定 |
| 电极-皮肤接触噪声 | 宽频 | μV级 | 皮肤打磨、导电膏 |
| 放大器电子噪声 | 宽频 | 1-5μVrms | 低噪声仪表放大器 |
| 其他生物电干扰 | 与ECG重叠 | mV级 | 电极位置优化、ICA |
SNR计算方法
SNR_dB = 10 * log10( P_signal / P_noise )
实际操作中,P_signal可通过让受试者做已知力度的等长收缩(如50%MVC)并测量RMS值获得;P_noise则在肌肉完全放松时记录,计算相同带宽内的RMS值。典型良好SNR应大于20dB,低于10dB时信号几乎不可用。
提升SNR的工程实践
- 硬件层面:使用三电极差分检测(双极导联+参考电极),仪表放大器共模抑制比(CMRR)应大于100dB。
- 皮肤准备:用酒精擦拭皮肤去除油脂,必要时用细砂纸轻磨表皮,降低电极-皮肤阻抗至10kΩ以下。
- 滤波策略:硬件上采用20-500Hz带通滤波,软件上叠加自适应滤波器消除工频。
- 信号平均:对于诱发EMG(如M波),可采用多次刺激的时域平均,将随机噪声降低√N倍。
3.5 常见误区与总结复盘
误区一:将RMS与肌肉力量直接线性等同。实际上,RMS与力量呈非线性关系,在低收缩水平时RMS增长较快,接近最大收缩时趋于饱和。应使用多项式或指数模型进行校准。
误区二:忽视信号的非平稳性,直接对长时程信号做FFT。这会导致频谱特征被平均化,掩盖疲劳或动作切换的关键信息。建议始终采用分段或时频分析。
误区三:过度依赖陷波滤波器去除工频干扰。陷波器会同时去除50Hz附近的真实EMG成分,当EMG信号本身在50Hz有较强能量时(如面部肌肉),会造成信息丢失。可考虑使用自适应噪声对消或频谱插值法。
误区四:认为SNR越高越好。过高的SNR可能意味着信号被过度滤波,丢失了高频细节(如MUAP的尖峰形状),反而降低模式识别性能。一般将SNR控制在20-30dB即可满足大多数应用需求。