medical_SDK/log/PPG_A50_PROCESSING_README.md

197 lines
4.7 KiB
Markdown
Raw Normal View History

2025-08-26 15:00:47 +08:00
# 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格式数据读取
- 完整的信号预处理流程
- 全面的生理指标计算
## 🔬 医学应用
### 临床意义
- **心率监测**: 评估心血管功能
- **血氧饱和度**: 监测组织氧合状态
- **灌注指数**: 评估组织血流灌注
- **信号质量**: 确保测量可靠性
### 适用场景
- 重症监护
- 手术监测
- 康复评估
- 健康监测