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