唐 詩,龔 敏
(四川大學物理科學與技術學院,成都 610064)
光電容積脈搏波(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終:終點)
如果在PPG(光電容積脈搏波)的采集過程中使用示波器來進行波形的檢測只能讀出信號的峰峰值和周期,然而隨著病人的生理狀態和每一次心臟的搏動,每個脈搏波的周期也是處于動態變化中的,不能完全實時提取出我們所需要的醫學信號;如果將采集的脈搏波、數據轉入到PC機中,通過Matlab或者其他軟件進行數據處理[3],提取出Y1、Y2、Y3值間參數,只能通過濾波后[8]人為后期計算,在速度上達不到我們實時檢測的要求。我們設計的脈搏波的波形數據處理IP核一方面能夠解決示波器沒有的功能,另一方面通過硬件處理數據的速度要比使用軟件處理數據的速度更快,類似于硬件加速設備。但是通過醫療精密儀器進行檢測會耗費更大的成本而且不便于攜帶,所以通過使用FPGA開發板進行系統開發成本會更低,而且能夠實時完成參數的檢測[5]。
本文利用光電容積脈搏波檢測技術原理,從指尖提取出PPG信號,通過MATLAB實時顯示的波形信號如圖2所示。如圖分析每個波形的周期、峰值、形態都是處于動態變化中的。而通過硬件的方式可以實時地適應這種變化。通過波形信號采集的數據是以相同時間為單位,而不是以每個波形為周期,因為每個波形的周期都處于動態變化中。在處理數據的時候是以200個數據為一組,因為采樣頻率為500Hz,所以每組數據的周期為0.4s[7]。我們所設計的系統電路在算法上通過拐點的方式能對此峰及時給出波形Y1、Y2、Y3的特征值。

圖2 指尖紅外PPG波形圖
實施這個項目的過程中,使用了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。
使用的綜合仿真軟件分別為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資源
在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.