[ PROMPT_NODE_26874 ]
emg
[ SKILL_DOCUMENTATION ]
# 肌电图 (EMG) 分析
## 概述
肌电图 (EMG) 用于测量骨骼肌在收缩过程中产生的电活动。NeuroKit2 中的 EMG 分析专注于振幅估计、肌肉激活检测以及用于心理生理学和运动控制研究的时间动态分析。
## 主要处理工作流
### emg_process()
自动化的 EMG 信号处理工作流。
python
signals, info = nk.emg_process(emg_signal, sampling_rate=1000)
**工作流步骤:**
1. 信号清洗(高通滤波、去趋势)
2. 振幅包络提取
3. 肌肉激活检测
4. 起始点和终止点识别
**返回:**
- `signals`: 包含以下内容的 DataFrame:
- `EMG_Clean`: 滤波后的 EMG 信号
- `EMG_Amplitude`: 线性包络(平滑后的整流信号)
- `EMG_Activity`: 二进制激活指标 (0/1)
- `EMG_Onsets`: 激活起始标记
- `EMG_Offsets`: 激活终止标记
- `info`: 包含激活参数的字典
**典型工作流:**
- 处理原始 EMG → 提取振幅 → 检测激活 → 分析特征
## 预处理函数
### emg_clean()
应用滤波以去除噪声并为振幅提取做准备。
python
cleaned_emg = nk.emg_clean(emg_signal, sampling_rate=1000)
**滤波方法 (BioSPPy 方法):**
- 四阶巴特沃斯高通滤波器 (100 Hz)
- 去除低频运动伪影和基线漂移
- 去除直流偏移
- 信号去趋势
**原理:**
- EMG 频率内容:20-500 Hz(主要为:50-150 Hz)
- 100 Hz 高通滤波可分离肌肉活动
- 去除心电图 (ECG) 干扰(特别是在躯干肌肉中)
- 去除运动伪影 (<20 Hz)
**EMG 信号特征:**
- 收缩期间表现为随机的、零均值的振荡
- 振幅越高 = 收缩越强
- 原始 EMG:包含正向和负向偏转
## 特征提取
### emg_amplitude()
计算代表肌肉收缩强度的线性包络。
python
amplitude = nk.emg_amplitude(cleaned_emg, sampling_rate=1000)
**方法:**
1. 全波整流(取绝对值)
2. 低通滤波(平滑包络)
3. 下采样(可选)
**线性包络:**
- 随 EMG 振幅调制变化的平滑曲线
- 代表肌肉力量/激活水平
- 适用于进一步分析(激活检测、积分)
**典型平滑处理:**
- 低通滤波器:10-20 Hz 截止频率
- 移动平均:50-200 ms 窗口
- 平衡:响应性与平滑度
## A