medical_SDK/log/PPG_A50_PROCESSING_README.md

197 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# PPG数据处理功能说明 (A50伤后6h-1.txt)
## 📋 功能概述
专门为处理 `A50伤后6h-1.txt` 文件而设计的PPG数据处理功能可以读取txt格式的光电容积脉搏波数据进行信号预处理和生理指标计算。
## 📁 数据文件说明
### 文件位置
- **文件路径**: `raw_data/A50伤后6h-1.txt`
- **文件大小**: 28KB
- **数据行数**: 约3934行
### 数据格式
- **文件类型**: 纯文本文件 (.txt)
- **数据格式**: 每行两个数值,用逗号分隔
- **第一列**: 红光光电容积数据
- **第二列**: 红外光光电容积数据
- **示例**:
```
-8,-10
-10,-11
-12,-10
-17,-9
-17,-9
-21,-8
-20,-7
-20,-8
-21,-6
```
### 数据特征
- **数据长度**: 约3934个数据点
- **数值范围**: 负值,表示光电容积变化
- **采样率**: 默认设置为50Hz可在代码中调整
- **数据类型**: 光电容积脉搏波 (PPG)
## 🚀 使用方法
### 1. 运行程序
选择选项3: "处理PPG数据 (A50伤后6h-1.txt)"
### 2. 自动处理流程
程序会自动执行以下步骤:
1. 读取 `raw_data/A50伤后6h-1.txt` 文件
2. 解析红光和红外光数据
3. 执行信号预处理
4. 计算生理指标
5. 保存处理结果
### 3. 查看结果
程序会自动生成以下文件:
- `data_generated/ppg_a50_processed.csv` - 预处理后的PPG数据
- `data_generated/ppg_a50_metrics.csv` - 计算的生理指标
## 🔧 处理流程详解
### 步骤1: 数据读取
- 打开 `raw_data/A50伤后6h-1.txt` 文件
- 逐行读取数据
- 解析逗号分隔的数值
### 步骤2: 数据解析
- 分离红光和红外光数据
- 数据验证和错误处理
- 统计数据显示(范围、数量等)
### 步骤3: 数据转换
- 创建SensorData对象
- 设置数据类型为PPG
- 转换为多通道格式
### 步骤4: 信号预处理
- 应用PPG专用滤波器
- 去除运动伪影
- 信号质量评估
### 步骤5: 指标计算
- 心率计算
- 血氧饱和度 (SpO2)
- 灌注指数 (PI)
- 脉搏波宽度
- 红光/红外光比值
- 信号质量评分
### 步骤6: 结果保存
- 保存预处理后的数据
- 保存计算的生理指标
- 生成详细报告
## 📊 输出指标说明
| 指标名称 | 单位 | 说明 |
|----------|------|------|
| **心率** | bpm | 每分钟心跳次数 |
| **血氧饱和度** | % | 血液中氧气的饱和度 |
| **灌注指数** | % | 组织灌注情况的指标 |
| **脉搏波宽度** | ms | 脉搏波的持续时间 |
| **红光红外光比值** | 无单位 | 红光与红外光信号的比值 |
| **信号质量评分** | % | 信号质量的综合评分 |
| **统计指标** | mV | 均值、标准差、最小值、最大值、峰峰值 |
## ⚙️ 参数配置
### 采样率设置
```cpp
const float sample_rate = 50.0f; // 可在代码中调整
```
### 信号质量阈值
```cpp
ppg_data.sqi = 0.8f; // 默认信号质量指数
```
### 文件路径配置
```cpp
std::string ppg_file_path = "raw_data/A50伤后6h-1.txt";
```
## ⚠️ 注意事项
### 1. 文件格式要求
- 确保数据文件格式正确(逗号分隔)
- 每行必须包含两个数值
- 避免空行或格式错误
### 2. 数据质量
- 数据长度充足3934个点
- 信号质量评估
- 异常值检测和处理
### 3. 采样率设置
- 采样率设置错误会影响心率计算
- 请根据实际设备参数调整
- 常见采样率: 25Hz, 50Hz, 100Hz
## 🔍 故障排除
### 常见问题
#### 1. 文件读取失败
```
错误: 无法打开PPG数据文件: raw_data/A50伤后6h-1.txt
```
**解决方案**: 检查文件是否存在于 `raw_data/` 文件夹中
#### 2. 数据解析失败
```
警告: 第 X 行数据解析失败: -8,-10
```
**解决方案**: 检查数据格式是否正确,确保每行都是两个数值
#### 3. 指标计算异常
```
警告: 计算的心率超出正常范围: XXX bpm
```
**解决方案**: 检查采样率设置和数据质量
## 📈 性能优化建议
1. **数据预处理**: 对原始数据进行去噪和滤波
2. **采样率优化**: 根据应用需求选择合适的采样率
3. **算法参数**: 根据数据特征调整算法参数
4. **内存管理**: 对于大数据文件,考虑分批处理
## 🚀 扩展功能
### 未来可添加的功能
- 实时PPG数据处理
- 多文件批量处理
- 自定义滤波器参数
- 数据可视化图表
- 异常检测和报警
## 📝 更新日志
- **2025年1月**: 新增PPG数据处理功能
- 专门针对A50伤后6h-1.txt文件
- 支持txt格式数据读取
- 完整的信号预处理流程
- 全面的生理指标计算
## 🔬 医学应用
### 临床意义
- **心率监测**: 评估心血管功能
- **血氧饱和度**: 监测组织氧合状态
- **灌注指数**: 评估组织血流灌注
- **信号质量**: 确保测量可靠性
### 适用场景
- 重症监护
- 手术监测
- 康复评估
- 健康监测