[ PROMPT_NODE_26868 ]
ecg_cardiac
[ SKILL_DOCUMENTATION ]
# ECG 和心脏信号处理
## 概述
处理心电图 (ECG) 和光电容积脉搏波 (PPG) 信号以进行心血管分析。该模块提供了用于 R 波检测、波形描绘、质量评估和心率分析的综合工具。
## 主要处理工作流
### ecg_process()
完整的自动化 ECG 处理工作流,协调多个步骤。
python
signals, info = nk.ecg_process(ecg_signal, sampling_rate=1000, method='neurokit')
**工作流步骤:**
1. 信号清洗(去噪)
2. R 波检测
3. 心率计算
4. 质量评估
5. QRS 描绘(P、Q、S、T 波)
6. 心动周期阶段确定
**返回值:**
- `signals`: 包含清洗后的 ECG、峰值、心率、质量、心动周期阶段的 DataFrame
- `info`: 包含 R 波位置和处理参数的字典
**常用方法:**
- `'neurokit'` (默认): 全面的 NeuroKit2 工作流
- `'biosppy'`: 基于 BioSPPy 的处理
- `'pantompkins1985'`: Pan-Tompkins 算法
- `'hamilton2002'`, `'elgendi2010'`, `'engzeemod2012'`: 其他替代方法
## 预处理函数
### ecg_clean()
使用特定方法过滤原始 ECG 信号以去除噪声。
python
cleaned_ecg = nk.ecg_clean(ecg_signal, sampling_rate=1000, method='neurokit')
**方法:**
- `'neurokit'`: 高通 Butterworth 滤波器 (0.5 Hz) + 电力线滤波
- `'biosppy'`: 0.67-45 Hz 之间的 FIR 滤波
- `'pantompkins1985'`: 带通 5-15 Hz + 基于导数的方法
- `'hamilton2002'`: 带通 8-16 Hz
- `'elgendi2010'`: 带通 8-20 Hz
- `'engzeemod2012'`: FIR 带通 0.5-40 Hz
**关键参数:**
- `powerline`: 去除 50 或 60 Hz 电力线噪声(默认:50)
### ecg_peaks()
检测 ECG 信号中的 R 波,并可选择进行伪影校正。
python
peaks_dict, info = nk.ecg_peaks(cleaned_ecg, sampling_rate=1000, method='neurokit', correct_artifacts=False)
**可用方法(13+ 种算法):**
- `'neurokit'`: 针对可靠性优化的混合方法
- `'pantompkins1985'`: 经典的 Pan-Tompkins 算法
- `'hamilton2002'`: Hamilton 自适应阈值法
- `'christov2004'`: Christov 自适应方法
- `'gamboa2008'`: Gamboa 方法
- `'elgendi2010'`: Elgendi 双移动平均法
- `'engzeemod2012'`: 修改后的 Engelse-Zeelenberg 法
- `'kalidas2017'`: 基于 XQRS 的方法
- `'martinez2004'`, `'rodrigues2021'`, `'koka2022'`, `'promac'`: 高级方法
**伪影校正:**
设置 `correct_artifacts=True` 以应用 Lipponen & Tarvainen (201