[ PROMPT_NODE_26882 ]
ppg
[ SKILL_DOCUMENTATION ]
# 光电容积脉搏波 (PPG) 分析
## 概述
光电容积脉搏波 (PPG) 使用光学传感器测量微血管组织中的血容量变化。PPG 广泛应用于可穿戴设备、脉搏血氧仪和临床监护仪,用于心率、脉搏特征和心血管评估。
## 主要处理工作流
### ppg_process()
自动化的 PPG 信号处理工作流。
python
signals, info = nk.ppg_process(ppg_signal, sampling_rate=100, method='elgendi')
**工作流步骤:**
1. 信号清洗(滤波)
2. 收缩期峰值检测
3. 心率计算
4. 信号质量评估
**返回:**
- `signals`: 包含以下内容的 DataFrame:
- `PPG_Clean`: 滤波后的 PPG 信号
- `PPG_Peaks`: 收缩期峰值标记
- `PPG_Rate`: 瞬时心率 (BPM)
- `PPG_Quality`: 信号质量指标
- `info`: 包含峰值索引和参数的字典
**方法:**
- `'elgendi'`: Elgendi 等人 (2013) 算法(默认,稳健)
- `'nabian2018'`: Nabian 等人 (2018) 方法
## 预处理函数
### ppg_clean()
为峰值检测准备原始 PPG 信号。
python
cleaned_ppg = nk.ppg_clean(ppg_signal, sampling_rate=100, method='elgendi')
**方法:**
**1. Elgendi (默认):**
- 巴特沃斯带通滤波器 (0.5-8 Hz)
- 去除基线漂移和高频噪声
- 针对峰值检测的可靠性进行了优化
**2. Nabian2018:**
- 替代滤波方法
- 不同的频率特性
**PPG 信号特征:**
- **收缩期峰值**:快速上升,尖锐峰值(心脏射血)
- **重搏波 (Dicrotic notch)**:次级峰值(主动脉瓣关闭)
- **基线**:由呼吸、运动、灌注引起的缓慢漂移
### ppg_peaks()
检测 PPG 信号中的收缩期峰值。
python
peaks, info = nk.ppg_peaks(cleaned_ppg, sampling_rate=100, method='elgendi',
correct_artifacts=False)
**方法:**
- `'elgendi'`: 具有动态阈值的双移动平均法
- `'bishop'`: Bishop 算法
- `'nabian2018'`: Nabian 方法
- `'scipy'`: 简单的 scipy 峰值检测
**伪影校正:**
- 设置 `correct_artifacts=True` 可进行生理合理性检查
- 基于心跳间隔异常值去除虚假峰值
**返回:**
- 包含 `'PPG_Peaks'` 键的字典,其中包含峰值索引
**典型心跳间隔:**
- 成人静息:600-1200 ms (50-100 BPM)
- 运动员:可能更长(心动过缓)
- 压力/运动:更短 (100 BPM)
### ppg_findpeaks()
低级峰值查找