基于小波分析的脉搏信号去噪算法研究
2021-08-31周光祥李鹏高粼泽
周光祥,李鹏,高粼泽
(桂林电子科技大学北海校区,广西北海,536000)
0 引言
脉搏波的生理信息主要参数包括振动周期、峰值、形状、心率等,与人的身体健康状态息息相关。心率指心脏每分钟搏动的次数,可有效反映人体心脏生理健康情况[1]。健康人体正常心率范围为60-100次/分钟,通过采集脉搏波生理信息可应用于中医疾病诊断。目前,脉搏诊断受益于科学技术的发展也出现了新形式,借助智能仪器设备可将采集的有效脉搏信息图像化、数据化。光强度干扰、工频信号干扰和运动干扰等环境因素,都会显著影响脉搏波采集,使得脉搏信号生理信息提取变得困难。为此,研究环境对连续动态脉搏波监测仪的测量精度的影响并消除脉搏测量信号噪声对研究脉搏信号测量精度极为重要。
1 脉搏检测系统简介
脉搏检测系统硬件由脉搏信号采样模块、核心控制系统模块和显示模块等组成。脉搏信号采样模块包括光电传感器模块电路和信号调理电路,其主要作用是使用光电传感器对脉搏信号进行采样,然后通过滤波电路进行整形滤波,再使用运算放大电路将信号放大输出电压,该电压传输至模数转换引脚。采用STC12C5A60S2元器件实现的核心控制系统模块包括单片机和模数转换模块,主要用途是对脉搏信号进行模数转换、采样存储、小波去噪、搏动次数判断、显示驱动等。显示模块主要作用是将核心控制系统模块处理后的脉搏数据显示出来,显示内容包括实时脉搏波形、一分钟脉搏数和脉搏检测系统工作状态。系统硬件结构如图1所示。
图1 系统硬件结构框图
脉搏信息采样模块应用光电容积法的基本原理,使用光电传感器将经过人体动脉反射后的光信号转换成模拟电信号,再通过滤波电路和运放电路对其进行滤波和放大,输出至核心控制系统模块中。核心控制系统模块使用单片机作为主控芯片,其自带的10位精度模数转换功能可以将脉搏模拟电信号进行模数转换并存储至内部的寄存器中,再通过定时器中断程序对寄存器存储的数据进行500Hz的采样和处理,处理完成后的数据发送至显示模块。显示器通过并行通信的方式与单片机进行通信,可以显示实时的脉搏波形和一分钟时间里脉搏的搏动次数。
2 系统软件实现
脉搏检测系统的软件程序使用C语言进行设计,由6个模块构成,分别是系统初始化模块、按键检测模块、脉搏信息采样模块、小波去噪处理模块、脉搏搏动次数检测模块、脉搏信息显示模块。主程序流程如图2所示。
图2 软件程序流程图
系统初始化模块的主要作用是完成脉搏检测系统各个功能的初始化设置,本程序中主要对LCD12864、模数转换功能和定时器中断进行初始化设置。脉搏检测系统核心处理模块的工作频率均使用默认设置,程序的处理频率不进行分频操作,但是定时器的工作频率设置为晶振频率的12分频。
按键检测模块的作用是检测这5个控制按键是否按下,当控制按键按下时,连接按键的引脚将会由高电平转变为低电平从而被程序检测到,然后执行相应的程序。按键检测使用查询的方式进行,这是因为脉搏检测仪已经使用了单片机STC12C5A60S2的定时器中断来获取和处理脉搏数据,如果再开启外部中断来响应按键,会影响模数转换功能的稳定性。脉搏信息采样模块的作用是按照一定的采样周期对脉搏信号进行采样。启动单片机内部模数转换功能将脉搏模拟电信号进行模数转换并存储。
小波去噪处理模块的作用是消除脉搏信号中的干扰。在正常环境中测量脉搏时随时会受到外界环境光和电磁波的干扰,并且脉搏信号采样模块检测到的脉搏信号很弱。采用小波去噪处理,提高脉搏信号采样准确度和抗干扰能力。脉搏搏动次数检测模块的作用是通过模数转换值的波动振幅等信息计算脉搏搏动次数。脉搏信息显示模块的作用是实现脉搏数和脉搏波形的显示。
2.1 脉搏信息采样模块
光电传感器对脉搏进行检测,进过信号调理后,输出模拟电压至单片机。单片机可以将脉搏模拟电信号进行模数转换并存储。脉搏信息采样及处理在定时器中断程序中执行,每隔4ms采样一次模数转换后的脉搏数据,即采样周期为4ms。采集到的脉搏数据传递给小波去噪模块,进行数据处理。脉搏搏动次数检测程序如图3所示。
图3 脉搏搏动次数检测程序流程图
当脉搏检测启动按键按下时,首先将上一次检测到的脉搏数据清零,再开始一分钟计时,然后将脉搏检测仪显示的工作状态设置为“检测”。当脉搏检测仪减小脉搏波形振幅的按键按下时,脉搏波形的振幅缩小系数加1。当脉搏检测仪增加脉搏波形振幅的按键按下时,脉搏波形的振幅缩小系数减1。当增加脉搏波形显示高度的按键按下时,增加脉搏波形的显示高度。当降低脉搏波形显示高度的按键按下时,降低脉搏波形的显示高度。
2.2 小波去噪处理模块
在检测的过程中,不只是脉搏的搏动才能导致模数转换值波动,环境光线的影响、使用过程中脉搏检测系统的震动以及按压光电传感器的力道差异等因素都会造成模数转换值的波动。除此之外,还因为脉搏检测系统使用的是反射式光电传感器,在检测脉搏时,脉搏的搏动会导致光接收器接收到一个较高强度的动脉反射信号,模数转换值也随之出现一次较强的波动。这些异常波动的模数转换值对脉搏的检测产生了干扰。只有将这些干扰导致的模数转换值波动滤除掉后,检测到的波动才能记录为脉搏搏动信号。在调试中发现,脉搏搏动导致的模数转换值波动和干扰导致的模数转换值波动有着较大的差异。
实际工程应用中,脉搏信号频率非常低,约为0.5~4Hz,一般情况下为1Hz左右低通滤波法很难有效抑制噪声[2]。小波去噪处理模块有三部分组成小波分解、小波去噪、小波重构。第一步,对脉搏信号进行三层小波分解。第二步,在小波变换域内,对小波系数进行阈值去噪处理,采用软阈值去噪法。第三步,对去噪后的小波系数进行小波逆变换,重构脉搏信号。
2.3 脉搏搏动次数检测模块
脉搏搏动的判定是通过对小波去噪后的脉搏信号振幅波动的检测来进行的。在还没有开始检测脉搏时,模数转换引脚获取到的电压是稳定的直流电压,对电压进行模数转换后的数值约稳定在500左右。在开始检测脉搏时,采样到的信号模数转换数值将跟随脉搏搏动进行周期性的变化,约在450至800之间。数字信号减去直流分量后,采样到的脉搏信号数值,约在0至300之间。
脉搏搏动次数检测算法为:脉搏信号是周期性变化的信号波,而脉搏搏动导致的波动振幅要远远大于100。前后两次波动间隔的对比,因为脉搏搏动有稳定的频率,导致的模数转换值波动也会以这个频率出现。同时满足脉搏数字信号波动的振幅大于100,并且脉搏信号波峰间隔的时间大于上次间隔的2/3这两个条件时,脉搏信号的波动就计入脉搏搏动次数,否则不计入脉搏搏动次数。脉搏搏动次数检测程序实时记录下脉搏数字信号的波动振幅,当脉搏检测启动按键按下后,开始进行小波去噪处理,然后运算脉搏搏动的次数。
3 脉搏检测系统性能验证
为了对脉搏检测系统的性能进行验证,检验其测量精准度,有必要进行脉搏检测系统的性能验证,本次验证主要验证脉搏搏动次数的测量准确度。脉搏波形符合脉搏的搏动特征,显示效果较为平滑,实时性好。测试结果曲线如图4所示,原始脉搏波信号显示为第一条曲线,运用小波阈值去噪算法进行去噪后的信号图显示为第二条曲线。从两条曲线中,可以观察出第二条曲线能良好地保留原始信号的特征,有效地去除脉搏波中的噪声。验证方式采用手机间隔一分钟计时,在使用脉搏检测系统测量脉搏的同时,通过人工把脉方式记录下脉搏数,人工把脉记录下的脉搏数作为真值。在强光环境下,使用脉搏检测系统进行测试。实验一,没有进行小波去噪处理的脉搏检测系统,进行了10次测试。实验二,有进行小波去噪处理的脉搏检测系统,进行了10次测试。实验数据如表1所示。
表1 脉搏测量实验数据对比
第二次 76 71 5 69 69 0第三次 73 70 3 72 72 0第四次 66 73 1 72 73 -1第五次 80 71 9 72 72 0第六次 64 73 -9 73 73 0第七次 81 74 7 76 75 1第八次 88 77 11 74 74 0第九次 83 77 6 76 76 0第十次 74 78 -4 76 77 -1
图4 脉搏检测系统测试结果
多次测量中,没有进行小波去噪处理的脉搏检测系统的脉搏数误差较大,效果差。在不同环境下,进行多次测量,有进行小波去噪处理的脉搏检测系统的脉搏数绝对误差小于等于±1次/分,效果良好。
4 结论
本文研究的脉搏检测系统具有抗干扰性强、稳定性高和低成本的优点,一分钟时间内的测量误差不超过±1次。显示出来的脉搏波形符合脉搏的搏动特征,显示效果较为平滑,实时性好。使用时仅需将手指轻触脉搏采样传感器,然后按下脉搏检测启动按键,等待一分钟后就可以显示出脉搏数,期间可以直观的观察脉搏波形。脉搏检测系统采用小波去噪算法进行数据处理,提高了脉搏检测系统测量精度。