【《基于LabVIEW的血氧饱和度测量系统设计》10000字】_第1页
【《基于LabVIEW的血氧饱和度测量系统设计》10000字】_第2页
【《基于LabVIEW的血氧饱和度测量系统设计》10000字】_第3页
【《基于LabVIEW的血氧饱和度测量系统设计》10000字】_第4页
【《基于LabVIEW的血氧饱和度测量系统设计》10000字】_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

[9]。图11叠加平均滤波电路程序框图图12滤波后的波形图从图12中可以看出叠加滤波电路对于叠加了均匀白噪声的信号的滤波效果符合预期,比巴特沃斯滤波器的效果要好一些,叠加的次数越多,输出的信号越平滑,噪声越小。但是叠加滤波法的缺点在于无法马上得出比较正确的波形,需要进行很多次计算之后才能从夹杂噪声的输入信号中读取出有效信号,需要的波形越准确,所耗费的时间也就越多,这在临床医护和其他紧急场合中是不能被接受的,所以这种方法尽管也可以达到滤波的效果,但是一般不采用。3.2.3小波变换消噪程序小波变换实质上是一种带通滤波,其滤波原理大致是将输入信号逐一分解到各个小波尺度,在某一个尺度的小波谱上,由于信号性质和各种参数的差异将会导致有效信号和噪声信号形成不同的小波谱分量,这样就可以根据小波谱分量的差异把有效信号和噪声信号区分开来,之后就能够很轻易地将噪声去除掉。同时能保证信号的突变部分不会受到破坏。图13离散小波变换程序图13中,Levels(趋势级别),也称分解层数,分解层数的多少与去噪效果的好坏密切相关,层数太少会导致去噪效果不佳,信号产生失真。层数太多则会导致有效信号被去除的太多,信号的信息丢失严重,信号又会产生失真,信噪比反而会下降。在实际操作中,不同信号、不同噪声下要达到最佳效果的分解层数都是不一样的,所以就需要操作人员不断实践来确定最佳的分解层数。一般来说,分解层数在增加的过程中,信噪比先是会有明显的提升,然后保持在一个比较稳定的状态,接着随着层数越来越高,信噪比会有一定的回落。Wavelet(小波),即选择的小波种类,在本次设计中选择了与实际的脉搏波形相似的db02小波。图14小波变换法程序框图图15小波变换法前面板从图15中可以看出,小波变换法的滤波效果不是很理想,虽然可以快速地得到滤波后的波形,但是波形中还是存在着噪声的影响,特别是在波峰、波谷处出现的大小尖峰会影响波峰检测程序得出的结果,最后可能会计算出一个错误的数值,这样会引起不必要的损失,所以在本次设计中没有采用上述叠加滤波法和小波变换法来进行信号的滤波处理,而是选择了巴特沃斯滤波器。3.2.4信号特征的提取程序完成信号的滤波之后要提取出每个周期中的最大值和最小值,之后就能计算血氧饱和度了。这里使用波峰检测控件分别检测波峰和波谷,即波形中每个周期的最大最小值,把检测出来的结果分别储存在一个数组中。图16波峰检测图16中:X表示信号输入端,接入需要进行检测的波形数据,可以是单个数组,也可以是连续的数据;阈值就是在检测出波峰/波谷时进行比较的一个数值,如果波峰值小于阈值或波谷值大于阈值,VI就会自动忽略它们;位置指的是VI找到波峰/波谷的索引位置,由于波峰检测算法使用二次拟合查找波峰,会导致索引是分数的情况。当检测到波峰或波谷时,二阶导数的值分别为负值和正值;当输入信号含有噪声信号时,位置和振幅会与实际值差别较大,所以要在滤波后进行播放检测;波峰/波谷表示指定此VI要查找的是波峰还是波谷,如表2所示。表2波峰/波谷0Peaks1Valleys如果在进行波峰检测之前没有进行信号滤波,把夹杂着噪声的信号进行检测,就会出现数据失真的情况,使得最值过大或过小,从而将会导致血氧饱和度数值计算不准确,这样会导致之后报警程序的误判,引起使用者的慌乱或致使临床医护人员产生误判,造成不必要的损失。所以需要独立的滤波程序来保证波形噪声的去除,滤波器的参数设置与3.2.1节“真”条件结构中的滤波器参数一致。图17波峰检测求红光信号的最大值和最小值程序框图如图17所示,源信号经过滤波器滤波之后的波形数据进入波峰检测控件,然后通过使用数组控件和移位寄存器将最大值、最小值保存下来,并且显示在前面板上。移位寄存器可以将LabVIEW中程序运行时产生的数据临时保存下来。移位寄存器由左右两个接线端口组成,端口的颜色会随着接收数据的类型发生改变,连接到左右两个端口的必须是同一种数据类型的数据。红光和红外光的最值分别如图18、19所示。图18红光的最大值和最小值图19红外光的最大值和最小值3.3信号的运算程序使用在上一节中求出的红光的最大最小值和红外光的最大最小值,根据式(10)计算出Q的值。查询相关资料后将A的值设置为118,将B的值设置为42。血氧饱和度的计算程序如图20。计算得到的数值在前面板显示,如图21所示。图20血氧饱和度计算程序图21前面板显示血氧饱和度数值3.4报警系统程序在实际应用中会出现被测者的血氧饱和度过低的情况,需要及时的提醒医护人员,所以报警系统是不可或缺的。如图22所示,将数组中的元素提取出来并逐一比较大小,当检测到的血氧饱和度数值低于90或高于100时,前面板的布尔控件就会从黑色变为红色,提醒此时数值异常,起到报警作用。图22报警系统程序3.5实时测量的实现如果按照上述的程序运行,程序只能运行一次,这样就不能够做到连续、实时的测量,所以就要把上述程序放入一个While循环,这是一种先执行后判断的循环程序,循环框内的程序至少会执行一次。While循环中包括计数接线端和条件接线端,计数接线端如果连接一个数值显示控件,就可以在前面板实时显示循环的执行次数,而条件接线端则用于控制循环的开始和停止。系统总体程序框图如图23所示,条件接线端连接的是停止按钮,当程序启动之后如果一直不按下停止按钮,程序就会一直执行下去,只有当按下停止按钮之后,测量程序才会立即停止。这样就达到了连续、实时测量的目的。图23系统程序框图另外在图23中可以看到,程序中使用了计时器控件来控制测量速率的快慢,程序每执行一次需要等待300毫秒才能执行下一次循环。程序运行之后的前面板如图24所示,在图中可以看到:经过滤波后的红光和红外光信号分别显示在上下两个波形图上,波峰检测控件计算出的最值储存在数组中,可以拖动滑块查看从程序开始运行后检测到的最值,此时噪声幅值为0.01,红光的最大值在2.8左右,最小值在2.7左右,幅值为0.05.红外光的最大值在2.16左右,最小值在2.0左右,幅值为0.08。经过运算程序得出的血氧饱和度数值会显示在前面板的数组显示控件上,此时数值大于90,报警控件显示黑色,代表此时的血氧饱和度数值正常。图24测量系统前面板调整红外光的幅值和直流偏置,令其幅值为0.1、偏置为2.1,此时血氧饱和度的数值为88,小于90,报警控件显示红色,代表此时血氧饱和度异常。图25血氧数值异常时的前面板通过上述仿真实验可以得出:此测量系统可以有效地进行实时、连续的血氧饱和度测量,并且报警程序也会根据计算得到的结果进行实时判断。4总结与展望4.1总结本文利用LabVIEW软件设计了血氧饱和度测量系统,利用叠加噪声的正弦波形模拟脉搏信号,通过信号滤波、分析、运算来达到测量的目的,编写的程序基本能够达到要求,能够对信号进行实时测量和数值的实时计算,并且当数值不在正常范围内时会有报警程序发出警报,同时又另外试验了两种不同的信号滤波方法用于对滤波效果进行对比,分析了各自的优点和缺点,基本完成了预设目标。4.2展望由于时间问题,本论文还有许多做的不好的地方,很多功能还可以继续优化和扩展,比如在实际测量中红光和红外光可以是交替发光、交替测量的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论