实时心率监测系统项目说明文档
项目介绍
本项目是一个基于MATLAB环境开发的集成化实时生理参数监测平台。系统通过高度集成的图形用户界面(GUI),实现了从信号采集、预处理、特征提取到实时指标分析的全流程功能。该系统旨在为研究人员和开发者提供一个易于扩展的工具,用于探索心电(ECG)、脉搏(PPG)以及非接触式视频脉搏(rPPG)信号的处理技术。系统不仅能够实时显示原始波形和过滤后的生理特征,还能同步计算准确的心率值及心率变异性(HRV)指标,适用于健康监护演示、教学科研以及疲劳生理状态评估等多种场景。
功能特性
双模数据采集:系统支持通过串口实时读取硬件传感器数据,或利用电脑自带/外接摄像头进行非接触式的心率提取。
实时信号处理链路:内置了完整的数字信号处理流程,包括带通滤波、差分运算、平方增强以及积分平滑,能够有效抑制运动伪影和电磁干扰。
改进的Pan-Tompkins算法:采用经典的峰值检测架构,配合自适应动态阈值逻辑,精确识别脉搏波峰或心电R波。
多维度指标监控:提供实时心率(BPM)计算,并集成了针对自主神经系统评估的HRV分析(SDNN和RMSSD指标)。
交互式可视化界面:具备双绘图窗口同步显示、动态坐标轴滚动、实时状态更新以及异常心率色彩警示功能。
系统要求
MATLAB环境:建议使用R2020b或更高版本,以确保UIFigure及其组件的最佳兼容性。
硬件支持:需具备标准串行接口(通过USB转串口连接传感器)或兼容的USB摄像头。
工具箱需求:
MATLAB Instrument Control Toolbox (用于串口通信)
MATLAB Support Package for USB Webcams (用于视频采集)
Computer Vision Toolbox (用于人脸检测与追踪)
Signal Processing Toolbox (用于滤波器设计与信号分析)
实现逻辑与代码架构描述
1. 系统初始化与全局变量管理
系统启动后首先进行环境清理,并建立全局变量空间。定义了采样率为100Hz,并初始化了长度为1000个采样点的原始及滤波信号缓冲区。系统标志位用于协调各并发进程的停止与启动,确保内存能够被正确释放。
2. 图形用户界面设计
界面采用响应式布局,分为三个核心区域:
波形显示区:包含两个坐标轴窗口,上方显示未经处理的原始输入信号,下方实时渲染经过特征增强后的脉冲信号。
监控指标区:通过标签组件高亮显示实时BPM值,并实时更新HRV相关的统计学参数。
控制面板:集成模式切换按钮,用户可一键开启串口模式或视频监测模式。
3. 数据采集核心实现
串口驱动逻辑:循环监听指定的可用物理串口,每秒读取并解析传入的格式化文本数据,自动将其转化为待处理的数值样本。
视频监测驱动逻辑:基于rPPG技术,调用级联分类器(CascadeObject Detector)实时定位受试者面部。系统自动选取面部ROI(如额头或脸颊区域),提取对血氧变化最敏感的绿色通道(G-channel)均值作为生理脉冲样本。
4. 信号处理算法细节
系统采用了改进的Pan-Tompkins信号提取链路:
带通滤波:使用二阶巴特沃斯滤波器,通频带设定在0.5Hz至4Hz之间,对应人类静息及运动状态下的30至240 BPM心率范围。
微分运算:对滤波后的信号求一阶导数,旨在突出波形的陡峭斜率,增强信号的上升沿特征。
平方增强:通过非线性操作将信号平方,使QRS波群或脉搏的主波峰能量得到进一步放大,同时抑制低幅度噪声。
移动窗口积分:进行0.12秒宽度的均值平滑处理,产生平滑的能量包络分布。
5. 峰值检测与生理指标计算
算法通过“均值+0.6倍标准差”构建自适应动态阈值,在过滤后的信号流中寻找特征峰值。通过计算相邻峰值之间的时间间隔(R-R间期),利用单阶平滑滤波器输出稳定的实时心率。
心率变异性(HRV)计算基于最近50组心跳数据。SDNN反映了总体变化的波动程度,而RMSSD则通过计算相邻间期差值的均方差来评估副交感神经的活性。
6. 异常报警与动态反馈
系统持续监控计算所得的心率值。当心率超过100 BPM(心动过速)或低于50 BPM(心动过缓)时,UI界面上的心率数值将自动切换为红色,实时根据受试者的生理状态提供视觉反馈。