脉搏血氧饱和度_第1页
脉搏血氧饱和度_第2页
脉搏血氧饱和度_第3页
脉搏血氧饱和度_第4页
脉搏血氧饱和度_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

脉搏氧饱和度的测量一、测量值:脉搏氧饱和度和脉搏率二、测量原理:将两路光(红光vs、红外光ir)以高频交替照射在被测部位,将两路透射光进行光电转换,得到两路变化的光电流信号,放大两路光电流信号,去除DC,去除工频干扰,得到两路信号的交流部分,交流部分的平均功率比为动脉血的含氧量,通过线性拟合得到脉搏血氧饱和度;任何信号的交流部分都是脉搏波,脉搏率可以通过测量其周期来计算。第三,测量电路及其参数。该电路包括三部分:探头驱动电路、光电流放大和DC消除电路以及计算电路。探头驱动电路实现两路光线由对称的两组三极管组成,并与计算电路的两个输入输出端口和两个输出端口相连,分别控制两路光线的交替切换和幅度。光电流放大和DC消除路径由两个运算放大器组成。第一运算放大器将光电流信号放大成电压信号,该电压信号包括交流分量和较大的DC分量(分别对应于测量部位的动脉血液和其他分量),因此需要第二运算放大器进行DC去除处理。计算电路接收两个运算放大器的输出作为反馈,以为探针驱动电路和DC消除电路提供参考电压幅度。探头接口描述:1为地线,6和7分别为外屏蔽线和内屏蔽线,2为红外光输入正极,红光输入负极,3为红光输入正极,红外光输入负极,9为光电池输出正极,5为光电池输出负极。四.测量过程基本测量流程如下。200赫兹定时器被中断,两个发光二极管交替开关,即两个灯在一秒钟内各有100个样本。以红外光为例,每次红外发光二极管开启时,发光二极管的幅度红外发光二极管电平(Q3的基极)根据OA0输出而改变,DC电路的DC参考电压红外DC偏置(OA1的正向输入)根据OA1输出而改变,得到的OA1输出作为计算电路的输入,灯关闭。Ir_heart_signal是在原始信号经过工频去除处理后获得的,ir_heart_signal_ac是在数字DC去除后获得的。信号进入队列组_计算64进行脉搏波周期判断,同时计算ir_heart_signal_ac信号的平方和,在进行脉搏周期判断的同时进行采样计数。数字信号DC跟随可以表示为跟随系数(输入信号-DC分量)DC分量=更新的DC分量。脉冲周期的判断过程:队列相当于脉搏波信号上的一个滑动窗口。窗口应该具有一定的宽度,该宽度大于噪声时间但小于脉冲周期。判断过程如下:当最小值位置在窗口中间时,判断为一个波谷。检测到波谷后,窗口将继续滑过10个采样点,但不会再次检查最小值以确保前一个波谷已离开窗口中心,然后将继续检查最小值位置以确定下一个波谷。它可以分为三种状态,即确定波谷、离开波谷和寻找波谷。下图。利用局部特征实时判断脉搏周期的三个阶段:1)确定波谷,确定周期,计算血氧饱和度和脉率,并清计数;2)离开槽,开始计数并计算信号的平方和;3)寻找波谷,继续计数,计算平方和,确定最小值在窗口中的位置V.测量程序的实现(请参考文献pulsoximeter.c)1.可变设置1)全局参数根据模数转换后运算放大器1的输出确定发光二极管是太亮还是太暗。亮度在2500到3000之间。否则,将调整全局参数。快速调整步长为2和tint32 _ t vs _ heart _ signal/红灯,OA1输出经过平均滤波,等待数字DCint32 _ t ir _ heart _ signal _ ac/红外光经过数字DC去除后,进入计算窗口参与平方和int32 _ t vs _ heart _ signal _ ac/红灯,在数字DC消除后,进入计算窗口并参与平方和int 32 _ t sum _ IR _ heart _ signal _ AC=0;/红外光、信号平方和以及一个周期内计算的平均功率int 32 _ t sum _ vs _ heart _ signal _ AC=0;/红灯、信号平方和以及一个周期内计算的平均功率/计算过程信号国际集团_波512;/用于显示、循环队列和在几个循环中存储红外信号int offset _ wave=0;/循环队列头int flag _ initial=1;/初始化标志位int sample _ count=0;/样本计数,每个周期清空,再次计数int num _ beat=0;/下一个脉冲后的初始值是1和2。计算平均功率和血氧饱和度,并重置为1int标志_ jump=0;/判断脉搏波周期是否处于远离波谷的状态。int sample _ jump=0;/当离开波谷时,采样计数离开波谷20,设置为0,flag_jump设置为1/循环队列,判断当前脉冲波谷是否为滑动窗口形式。国际集团_计算64;/用于脉冲周期判断的循环队列,存储64个ir_heart_signal_ac信号int offset _ calculate=0;/队列头位置int min/队列中的最小值int location _ min/最小位置int location _ min _ adjust/最小值与队列头的位置相关。如果它是32,一个低谷将被确认/最终结果/脉冲速率无符号整数心率=6000;/脉搏率最终测量结果,初始值为60.00无符号整数组_心率8;/最后8秒脉冲速率,循环队列,初始化为6000int offset _ heart _ rate=0;/队列头无符号整数采样心率;/当前原始脉搏率结果经过一定的调整后进入群_心率8。int32 _ t sum _ heart _ rate/将过去8秒的累积脉搏率除以8,得到新的心率/脉冲氧饱和度无符号整数SpO2=9500/血氧饱和度最终测量结果,初始值为95.00无符号int组_ spo 28;/最近8秒内血氧饱和度,循环队列,初始化为9500int offset _ SpO 2=0;/队列头int32 _ t sum _ SpO2/将过去8秒内血氧饱和度的累计值除以8,得到新的心率/控制参数int fresh=0;/调试毫无意义/反馈幅度控制和OA1参考电压参数int led _ tab=0;/控制是打开红灯还是红外光,每次都中断开关状态内部发光二极管级;/红外驱动幅度,控制Q3基数,范围1到2500,数值越大,亮度越弱内部与发光二极管级别;/与驱动幅度的关系,控制Q4基底,范围1到4095,较大的数字,较弱的亮度int ir _ dc _ offset=4095/红外灯DC参考电压,当红外发光二极管开启时,控制OA1正向输入端int vs _ dc _ offset=4095当红色发光二极管开启时,/vs灯DC参考电压控制OA1正向输入。int IR _ DC _ offset _ second=0;/数字DC被移除时的DC后续int vs _ DC _ offset _ second=0;/数字DC被移除时的DC后续/运算放大器输出的输出int ir _ sample/红外灯,OA0输出,根据该输出改变红外发光二极管的电平int vs _ sample/相对灯,OA0输出,根据该输出改变相对发光二极管电平3)子功能无符号长isqrt32(寄存器无符号长h);/平方运算int16_t ir_filter_test(int16_t样本);/平均滤镜_红外线int16_t vs_filter_test(int16_t样本);/平均滤镜_红色2.程序主体(请参考pulsoximeter.c文件)1)晶体振荡器和电源设置2)初始化操作:group_heart_rate8初始化为6000,sum_heart_rate初始化为48000,group_SpO28初始化为9500,sum_SpO2初始化为76000。3)数模转换器设置,红外发光二极管电平初始化为2500,而紫外发光二极管电平初始化为900。模数转换器设置。定时器设置,200赫兹采样中断,1600赫兹用于脉宽调制输出。4)设置后,进入低功耗模式。5)中断处理程序,200赫兹中断,中断进入后,要么进入红色发光二极管进程,要么进入红外发光二极管进程,根据输入调整相应的参数,进行平均滤波,去掉DC处理。这两个过程的其他计算不同:在红光过程中,主要计算两个信号的平方和、采样数、脉搏氧饱和度和脉搏率;在红外过程中,主要判断脉冲周期。这两个过程的具体操作如下。红灯流:关闭两个路灯,设置参数,打开红色发光二极管,读取输入,关闭红色发光二极管,根据输入调整参数,平均滤波,去除DC,更新循环队列,是否处于寻谷状态(num_beat从1变为2,找到,否则没有找到),如果没有找到,计算两路的平方和,累加采样计数,如果找到,计算脉搏氧饱和度和脉搏率,将平方和和和和采样计数设置为0。红外处理:关闭两个路灯,设置参数,打开红色发光二极管,读取输入,关闭红色发光二极管,根据输入调整参数,平均滤波,去除DC,更新循环队列,是否处于离开低谷状态(当flag _ jump=0时,处于寻找状态,当flag _ jump=0时,处于离开状态),在搜索状态下,找到循环队列中的最小值和位置, 判断该槽是否不是继续寻找的槽,如果该槽是槽,则进入离开状态,仅在离开状态时计数,计数20次,进入搜索状态。中断程序代码如下:/红色流如果(发光二极管标签=0)/发光二极管标签=0,打开红色发光二极管led _ tab=1;/下次切换led_tab进入红外流P2OUT |=BIT2。/关灯P2OUT |=BIT3。/关灯DAC 12 _ 0 CTL= DAC 12 ENC;/打开数模转换器,并根据电压电平给出幅度DAC 12 _ 0 CTL= DAC 12 OPS;DAC 12 _ 0 CTL |=DAC 12 ENC;DAC12 _ 0DAT=vs _ LED _ level/红色发光二极管驱动幅度DAC12_1DAT=vs_dc_offset。/红色DC电路的参考电压,OA1正向输入P2OUT= BIT3/打开灯,红色发光二极管ADC12CTL0= ENC/开启数模转换器,读取OA0和OA1输出ADC12CTL0 |=ENC对于(m=1;m=1500。/伪周期提供数模转换时间,红色发光二极管保持开启vs _ sample=ADC12MEM0/OA0输出结果i=ADC12MEM1/OA1输出结果/OA0输出,根据全局参数控制发光二极管驱动幅度如果(vs_sample=第一阶段_目标_高|vs_sample=第一阶段_目标_低)如果(vs_sample=第一阶段_目标_高)如果(vs_sample=第一阶段_目标_高_好)vs _发光二极管_电平=第一阶段_步骤;其他vs _发光二极管_电平=第一级_精细_步进;如果(vs _发光二极管_电平=4095)vs _发光二极管_电平=4095;其他如果(vs_sample=第一阶段_目标_低_好)第

温馨提示

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

评论

0/150

提交评论