APP下载

基于FPGA光电容积脉搏波参数检测的IP核设计

2012-07-02诗,龚

电子与封装 2012年4期
关键词:脉搏容积数据处理

唐 诗,龚 敏

(四川大学物理科学与技术学院,成都 610064)

1 引言

光电容积脉搏波(photoplethysmography)包含了人体丰富的生理、病理信息。光电容积脉搏波无创检测技术[1]不仅在临床医学上对血氧饱和度的分析已经得到应用,而且有助于判断循环功能状态和及时发现微循环血流动力学变化。随着光电容积脉搏波检测技术的不断发展,当今在医学领域认为从光电容积脉搏波中提取出信号的峰位、半宽、峰值间的时间差等参数也反映了人体的病情特征。标准的指端光电容积脉搏波波形如图1所示。Y1值代表监测点瞬间最大脉动血流量,Y2值代表微动脉内循环最低血流量,Y3值代表循环血流压力对微血管阻力的反作用力大小。新的研究认为从光电容积脉搏波提取出Y1、Y2、Y3三个特征值的动态变化在一定范围内与失血量及失血速度密切相关。X0到Y2之间为心脏的收缩期,Y2到X终之间为心脏的舒张期。Y2值发生在主动脉瓣关闭瞬间,主动脉血液返流被主动脉瓣阻挡而返流发生一个折返波,因此形成一个重峰。主峰的下降趋势大致反映外周阻力的高低。外周阻力高,Y2和Y3位置较高;外周阻力低,Y2和Y3位置较低。主动脉瓣若关闭不全,舒张期会有血液倒流入心室,使重峰下降陡峭,此时重峰不明显或消失。因此,可以根据脉搏波形的振幅、是否存在Y2点和重峰位置、得到的心率是否合理来判断PPG信号的质量好坏。指端PPG曲线趋势客观反映了失血量和末梢循环障碍程度,对动态分析可以最大限度地排除各种干扰因素,有助于早期预测失血性休克发生,指导临床对失血病例实施快速有效的容量复苏,在微循环功能监测中具有独特的价值[2]。如何有效提取出血流参数Y1、Y2、Y3三个动态值成了我们研究的对象。

图1 标准指端PPG波形(X0:起点;Y1:主峰;Y2:波谷;Y3:重峰;X终:终点)

2 数据采集

如果在PPG(光电容积脉搏波)的采集过程中使用示波器来进行波形的检测只能读出信号的峰峰值和周期,然而随着病人的生理状态和每一次心脏的搏动,每个脉搏波的周期也是处于动态变化中的,不能完全实时提取出我们所需要的医学信号;如果将采集的脉搏波、数据转入到PC机中,通过Matlab或者其他软件进行数据处理[3],提取出Y1、Y2、Y3值间参数,只能通过滤波后[8]人为后期计算,在速度上达不到我们实时检测的要求。我们设计的脉搏波的波形数据处理IP核一方面能够解决示波器没有的功能,另一方面通过硬件处理数据的速度要比使用软件处理数据的速度更快,类似于硬件加速设备。但是通过医疗精密仪器进行检测会耗费更大的成本而且不便于携带,所以通过使用FPGA开发板进行系统开发成本会更低,而且能够实时完成参数的检测[5]。

本文利用光电容积脉搏波检测技术原理,从指尖提取出PPG信号,通过MATLAB实时显示的波形信号如图2所示。如图分析每个波形的周期、峰值、形态都是处于动态变化中的。而通过硬件的方式可以实时地适应这种变化。通过波形信号采集的数据是以相同时间为单位,而不是以每个波形为周期,因为每个波形的周期都处于动态变化中。在处理数据的时候是以200个数据为一组,因为采样频率为500Hz,所以每组数据的周期为0.4s[7]。我们所设计的系统电路在算法上通过拐点的方式能对此峰及时给出波形Y1、Y2、Y3的特征值。

图2 指尖红外PPG波形图

3 系统电路设计

实施这个项目的过程中,使用了altera公司的FPGA开发板,开发板的主体部分包括EP1C6Q240C8 FPGA的芯片与数据采集系统,包括A/D转换电路DDC112与D/A转换电路TLC5620芯片。图3为峰峰值检测的应用平台示意图。首先通过开发板上的数据采集系统采集人体指间PPG(光电容积脉搏波)波形,这是一个模数(A/D)转换过程;然后将采集到的波形通过PC机上的MATLAB软件进行处理,并转换为16进制数据,这些数据存放在一个固定的文本中作为硬件测试的数据;同时将这些采样的数据存入存储器中并通过设计IP核进行数据处理,得到峰峰值及其他相关的时间参数如峰值时间间距[6]。

我们设计的主体电路部分为数据处理IP核,其主要功能就是完成峰峰值检测与波形时间参数的计算。这部分设计电路主要包括数据采集存储器、峰值检测模块、时间参数计算模块以及峰值存储器,如图4。

图3 峰峰值检测的应用平台

图4 数据处理IP核

数据采集存储器主要用来存储采集的数据,默认情况下宽度设置为32bit,深度设置为256,深度可配置。为了减少占用FPGA的逻辑单元(LE)资源和布线资源,我们使用FPGA上固化的块存储器(BRAM)对数据进行存储。如果采集数据的电路与数据处理IP核不是同一个时钟时,我们将使用跨时钟域的异步FIFO[4]。

峰值检测模块是数据处理电路的核心部分,主要功能就是检测极大值与极小值,并对极值间的时钟周期进行计数,计数的结果将用于计算时间参数。极值检测算法的核心思想就是寻找拐点部分,如图5为极大值的verilog代码。

图5 极大值检测部分verilog部分代码

波形时间参数计算模块的主要功能就是计算各个时间参数。该设计模块调用了Quartus软件的除法器lpm_divide进行除法操作,这样有利于充分使用该系列的FPGA资源,避免生成复杂的布线。时间参数的精确度取决于采样频率,频率越高时间参数越精确,电路中时间参数的单位为微秒级。其中采样频率是可配置的参数,不需更改整体电路,仿真的测试电路使用的采样频率为500Hz。

4 仿真与验证

使用的综合仿真软件分别为Icarus Verilog和GTKWave开源软件,并通过Quartus II 的FPGA开发软件进行综合编译与布局布线,同时完成了FPGA的原型验证。图6为仿真波形的部分截图,Clk为系统时钟,rst为复位信号,低电平时复位;maxmain为峰值检测输出值;minmain为波谷检测输出值;time_max与time_min分别为波形峰值时间间距和波谷时间间距。

图6 仿真波形

在进行数据处理IP核的综合布线过程中,其仅占用了16%的逻辑单元,如图7为数据处理IP核占用的FPGA资源。

图7 数据处理IP核占用的FPGA资源

5 结论

在FPGA器件中用硬件描述语言verilog HDL编写的IP核进行波形数据处理,具有软件处理无法比拟的速度和实时性;并且FPGA器件体积小、集成度高。数据采样频率越高,电路得到的处理数据就越精确。

[1] 高博,魏蔚,龚敏,王丽. 脉搏血氧饱和度检测仪的研制[J]. 微计算机信息,2009.

[2] 张伯英. 指端光电容积脉搏波在循环功能动态检测中的意义[J]. 生物医学工程与临床,2010.

[3] 马明建,周长城. 数据采集与处理技术[M]. 西安:西安交通大学出版社,2000. 1-31.

[4] 廖祖禹,黄建国,戴志坚. FPGA在峰值检测中的应用[J]. 测控技术,2010:01-0010-03

[5] Richard E. Haskell, Darrin M. Hanna著. 郑利浩,王荃,陈华锋译. FPGA数字逻辑设计教程: Verilog[M]. 北京:电子工业出版社,2010.

[6] Wayne Wolf著. 李东生等译. 现代VLSI设计:基于IP核的设计[M]. 北京:电子工业出版社,2011.

[7] M.H.Sherebin, R.Z.Sherebin. Frequency analysis of the peripheral pulse wave detected in the finger with a photoplethysmograph[J]. IEEE Transactions on Biomedical Engineering. 1990,37(3).

[8] K.Shafqat, D.P.Jones, R.M.Langford, P.A.Kyriacou.Filtering techniques for the removal of ventilator artefact in oesophageal pulse oximetry[C]. Med BioEng Comput.2006.

猜你喜欢

脉搏容积数据处理
怎样求酱油瓶的容积
认知诊断缺失数据处理方法的比较:零替换、多重插补与极大似然估计法*
ILWT-EEMD数据处理的ELM滚动轴承故障诊断
用心感受狗狗的脉搏
《今日评说》评今日浙江 说时代脉搏
基于51系列单片机的穿戴式脉搏仪的设计
巧求容积
近红外可穿戴设备中脉搏波的呼吸率检测
截断的自适应容积粒子滤波器
不同容积成像技术MR增强扫描对检出脑转移瘤的价值比较