郭珊山,吴朝晖,汪庆,李斌
(华南理工大学电子与信息学院,广东广州510640)
支气管哮喘是危害人类健康的常见疾病,近年来发病率逐年提升,疾病造成的社会负担不断增加。目前全球高达3亿哮喘患者,中国超过3 000万人,目前尚无有效的根治方法[1]。世界卫生组织制定的GINA(全球哮喘防治创议)和我国的《支气管哮喘防治指南》均将PEF或FEV1以及FEV1%作为哮喘急性发作期和非急性发作期病情严重程度和判断的金标准[2],对于支气管哮喘疾病患者和高发人群来说,若能进行实时PEF和FEV1以及FEV1%指标监测,在哮喘发作之前就可以发现征兆,及时采取治疗措施,避免因哮喘突然发作引起生命危险,同时经过长期监测并结合专业治疗,最终有望控制哮喘。针对哮喘病理指标监测,国内外相关学者也进行了深入的研究[3]。然而,在国内市场上除了欧美等国家生产的便携式监测仪外鲜有国产的便携家用的哮喘病监测设备,根源在于精度问题是哮喘病病理指标监测的技术瓶颈。针对上述问题,本文提出了一种基于小波分析和BP神经网络结合的校准方法,同时将该小波分析和神经网络算法与MSP430单片机结合,完成哮喘病监测系统的校准。该校准算法收敛性好、实现方便、拟合精度高。
图1为自主研发的基于小波分析和神经网络的便携式哮喘病监测系统。该系统中原始样本数据来自于校准实验平台,具体在下一章节中将作出详细描述。校准实验平台获取的原始样本数据带有一定的高频噪声,利用小波分析可以有效滤除高频噪声[4]。滤除噪声的校准样本数据进行归一化处理,使用MATLAB工具编写神经网络算法,将归一化处理后的校准数据输入到神经网络学习训练,直到符合设定的精度要求为止。该网络的各层权值以及阈值参数将采用C语言编写神经网络计算程序嵌入到MSP430单片机中。该系统充分利用了MSP430单片机丰富的接口以及浮点运算能力,单片机外挂病情采集系统实时采集哮喘患者的病情状况,将采集的数据进行小波去噪、归一化处理后调用神经网络计算程序诊断分析,将采集的电压信号映射成便于理解的哮喘患者病理指标信号,并由LCD实时显示监测结果。
图1 基于小波分析和神经网络的便携式哮喘病监测系统
本文需要完成哮喘患者呼气峰流速(PEF)和一秒呼气量(FEV1)以及用力呼气量占用力肺活量比值(FEV1%)的校准,针对PEF参数,计算公式为:
其中N为有效采样次数,flow(N)为第N次气体流量数据。单片机可通过式(2)计算PEF。
对于FEV1参数,其表达式为:
式中Δt为采样间隔,N为计时满一秒的有效采样次数,根据FEV1的医学定义,可知Δt=1/N。对于FEV1%参数,运算公式为[5]:
其中,FVC为用力肺活量,其运算表达式为:
式中M为监测开始至结束内所有有效采样次数。flow()是关于电压-气流量的函数关系模型,对PEF、FEV1、FEV1%3个监测指标的精度起决定性作用,本文主要工作就是基于MSP430和小波分析以及神经网络算法来建立和校准该函数模型。
1988年,Mallat将计算机的多尺度分析思想引入小波分析中,提出了多分辨率分析的概念[6]。同时提出了相应的小波分解和重构算法,也就是Mallat算法。本文将采用该算法来对原始样本数据去噪,根据多分辨率原理,对原始样本数据x[n]进行多分辨率分析,即将信号序列分解成一个低频的平滑部分和一个高频的细节部分,分解后的低频部分可继续进行分解如图2所示。设第j级的平滑信号为第j+1级平滑信号为细节信号为具体分解公式为[7]:
式中hd(n)和gd(n)为由小波函数和尺度函数确定的分解低通和高通滤波系数。该系数可由MATLAB工具求得,文中采用db3小波进行3层小波分解。由于本文中使用的原始样本数据是低频信号,在原始数据采集过程中由于系统和环境的干扰,夹杂着高频噪声,利用Mallat分解算法可有效对信号进行多分辨率分析,将低频信号和高频信号分解出来。
图2 Mallat算法多层分解结构图
基于平稳白噪声的正交小波变换仍然是平稳的白噪声这一结论,Donoho和Johnstone提出了小波硬、软阈值去噪的方法[8],该方法的思路简单:通过设定一个阈值,与各层小波的细节信号和平滑信号比较绝对值大于阈值的保留,小于阈值的直接剔除。本文中采用该阈值去噪的方法进行信号去噪。
去掉噪声的细节信号和平滑信号可以通过公式(7)重构,来获取校准样本数据。
图3 Mallat算法多层重构结构图
BP(Back Propagation)神经网络是 1986年由Rumelhart和McCelland提出的,它是一种误差按反向传播的多层前馈网络,是目前应用最广泛的神经网络模型之一[9]。BP神经网络由输入层、隐含层、输出层构成,具有非常强的非线性映射能力,三层神经网络可以模拟任意复杂的非线性问题[10]。针对本文所研究的哮喘病理参数的校准,需要精确映射电压信号与呼吸气流信号的函数关系,因此本文采用如图4所示的三层BP网络拓扑结构。其核心思想是每个神经网络节点的输出值是由上层所有节点的输出值、当前节点与上一层所有节点的权值和当前节点的阀值以及激活函数来决定,其理论分析详见文献[11]。近年来,将BP神经网络应用到疾病的分析和诊断也是一大热点,取得了很多丰硕成果[12]。
图4 三层BP网络拓扑结构图
文中,输入层维数为1,输出层维数为1,隐含层维数通过MATLAB实验来确定。通过设置不同隐含层神经元个数进行MATLAB仿真,进行多次实验并取收敛步数均值最少的隐含层神经元个数为本文的隐含层维数。根据实验本文选取隐含层神经元维数为5。根据上述理论以及MATLAB实验确认的各项参数编写神经网络计算程序嵌入到MSP430单片机中,具体实现公式如下:
其中,xi为神经网络输入层输入信号,aj为网络隐含层输出信号,b1为神经网络输出层输出信号,w1j为神经网络隐含层神经元权重,w2j为神经网络输出层神经元权重,b1j为神经网络隐含层神经元阈值,b2j为神经网络输出层神经元阈值。f1()为隐含层激活函数,f2()为输出层激活函数,具体表达式分别如式(11)、(12):
由于神经网络计算程序需要嵌入到MSP430单片机中,一方面,单片机运行指数函数需要耗费大量的单片硬件资源,降低单片机运算速度,另一方面,指数函数运算结果也需要大量的数据存储空间,若不完全存储,势必影响神经网络输出数据精度[13]。由于单片机处理多项式函数不管是硬件资源使用以及数据存储空间占用都优于指数函数。
基于此,本文将采用多项式函数来替代(11)式,通过数据拟合的方式进行分段拟合,具体拟合方法详见文献[14],经过拟合处理,可明显提高单片机的运算速度。
本文的校准样本数据来源于图5所示的校准实验平台,该平台由空压机、减压阀、通道选择器、流量控制器组、中央控制器组成。空压机产生稳定气源,流量控制器组分别由4台不同量程的流量控制器组成,由单片机电路控制通道选择器选择合适通道,完成不同气流量的大小控制,结合监测设备完成气流量-电压的映射关系的原始样本数据采集。
图5 便携式哮喘病监测系统校准实验平台原理框图
下面以300LPM为例进行分析。在校准阶段,校准实验平台产生300LPM的气流量,激励监测设备产生电压值。理论上分析,在其他条件不变的情况下恒定的气流将激励出恒定的电压信号,但在实际测量中不免受到系统本身以及外界环境影响,信号中混杂了高频噪声,如图6(a)所示。这些噪声将严重影响监测系统的校准精度。从图6(b)及表1可以看出本文中采用的小波分析算法具有良好的噪声滤除效果,滤除噪声后的信号将作为校准样本数据送入神经网络进行学习训练。
图6 标准值300LPM情况下信号小波去噪对比图
在监测系统工作状态时,患者用力呼气的同时依然受到系统本身以及环境的影响,导致真实波形上夹杂了噪声,这些噪声若不滤掉,系统调用校准函数模型时同时对噪声进行计算,将严重产生误判,这对系统监测精度产生重要影响。因此,将小波分析嵌入到MSP430系统,患者的呼气信号经过小波阈值去噪后才进行采样,如图7所示,信号质量得到了明显提升。
在校准阶段,经过去噪后的信号首先进行数据归一化处理,然后通过BP神经网络学习训练,训练目标设置为0.001,也就是信号的训练值与样本值误差小于0.001。
表1 信号去噪前后对比分析
图7 便携式哮喘病监测测系统实时采样去噪前后对比
图8 函数逼近结果图
图8为采用MATLAB编程,经过神经网络学习训练后的函数逼近结果,各个拟合点满足误差小于0.001,具有较高的拟合精度。根据该拟合结果,确定该神经网络各权重以及阈值参数为便携式哮喘病监测系统的校准参数。将该参数结合小波算法嵌入到MSP430中,然后对该系统重新激励,分析比较结果,如表2所示。本实验选取了100LPM、200LPM、300LPM、400LPM、500LPM、600LPM为测试点,将上述标准流量经过便携式哮喘病监测系统,直接映射出流量值输出。实验结果表明,在低流量时偏差较大,随着流量增大偏差减小,这符合传感器实际的非线性特性,根据实验结果,本文研究的便携哮喘病检测系统的校准系统完全符合我国发布的《肺功能仪器校准规范》偏差10%的要求[15]。
表2 测试结果分析表(单位:LPM)
相比较于传统滤波器,本文中采用Mallat小波算法具有品质因数恒定,分解尺度灵活可控,结合MALAB和MSP430单片机系统实现起来方便,运算量小等优点。实验表明本文将小波分析应用到便携哮喘病检测系统的校准获得了良好的效果,对提升监测系统精度起到了重要作用。同时对小波分析后的信号采用BP神经网络学习训练,对未知值的预测和对校准函数模型的建立准确性显著,为后续实现高精度哮喘病理指标采集奠定了坚实的基础。将小波分析与BP神经网络结合,利用MSP430单片机离线实现信号的小波去噪以及神经网络的分析与处理应用于实际系统实验结果表明完全可行,如对系统和算法做进一步改进,系统的精度还能进一步提升。该校准算法可广泛应用于便携式生物医学信号采集系统。
[1]孙海平,华伟,倪淮亮,等.槐杞黄颗粒对毛细支气管炎后哮喘的预防作用[J].江苏医药,2012,7(12):17-27.
[2]中华医学会呼吸病学分会哮喘学组.中国支气管哮喘防治指南(基层版)[J].中国实用内科杂志,2013,8(8):615-622.
[3]胡广书,汪梦蝶.生物医学信号处理研究综述[J].数据采集与处理,2015,30(5):915-932.
[4]杨智,罗国,袁芳芳.平稳小波变换在膈肌肌电降噪中的应用[J].数据采集与处理,2013,28(5):546-552.
[5]李京鹏,魏红.呼气峰流速监测在社区儿童哮喘管理中的应用分析[J].山西医药杂志,2013,42(12):1390-1391.
[6]MALLATS.A theory for multi-re solution signal decomposition:the wavelet rep resentation [J].IEEE T ransactionon Pattern Analysis and Machine Intelligence,1989,11(4):674-693.
[7]王江云,曾琼,王会霞.基于小波分析的地形多分辨率建模方法[J].北京航空航天大学学报,2014,40(8):1121-1126.
[8]张国伟,黄建国,李力.一种改进型阈值去噪算法的FPGA设计与实现[J].电子测量技术,2010,33(7):80-83.
[9]张宝堃,张宝一.基于BP神经网络的非线性函数拟合[J].人工智能及识别技术,2012(27):6579-6583.
[10]张翼鹏,陈亮,郝欢.一种改进的量子神经网络训练算法[J].电子与信息学报,2013(7):1630-1635.
[11]周金海,申刚磊,丁小丽,等.BP神经网络在疾病分析影响因素中的作用[J].中国组织工程研究,2011,15(9):1702-1705.
[12]郭永琪.生物医学中的智能信号处理方法研究[D].武汉:武汉理工大学,2010.
[13]彭丹,杨磊,杨家强.热膜式气流量传感器指数过渡分段拟合方法[J].浙江大学学报(工学版),2015,49(10):1990-1998.
[14]求是科技.单片机典型模块设计实例导航[M].2版.北京:人民邮电出版社,2008.
[15]马建民,罗峥.肺功能仪校准方法[J].上海计量测试,2013(6):33-35.