譚雙平,艾志光,楊玉星,謝慶國
華中科技大學(xué)生命科學(xué)與技術(shù)學(xué)院,武漢市,430074
血氧飽和度(SpO2)表征了血液的氧含量,是判斷人體呼吸系統(tǒng)、循環(huán)系統(tǒng)功能的重要參數(shù)[1]。在臨床上,監(jiān)測人體SpO2的變化對肺和心臟疾病的預(yù)防和治療具有重要作用;同時,在手術(shù)、麻醉和重癥監(jiān)護(hù)等方面,也需要監(jiān)測SpO2,以指導(dǎo)其手術(shù)或治療過程[2]。SpO2的測量方法分為有創(chuàng)和無創(chuàng)兩種。有創(chuàng)測量方法即采集人的血液樣本,利用血?dú)夥治鰞x分析計算其血氧飽和度。有創(chuàng)測量不僅耗時,易使患者產(chǎn)生痛苦和感染,而且不能提供連續(xù)、實(shí)時的監(jiān)測數(shù)據(jù)。無創(chuàng)測量主要是利用光電容積描記(Photoplethysmography)技術(shù),獲得紅光和紅外光通過人體組織后透射或反射的光電容積圖信號(PPG),利用氧合血紅蛋白(HbO2)和脫氧血紅蛋白(Hb)對紅光和紅外光的吸收度不一樣這一特性,通過Beer-Lambert定律計算得到SpO2。由于無創(chuàng)SpO2測量方法檢測方便安全,目前已成為檢測人體各種組織中SpO2較成熟的方法,在臨床上得到廣泛應(yīng)用[3]。
但是,無創(chuàng)測量方法測量SpO2,當(dāng)被測者處于低血流灌注(如肌肉緊張、低溫環(huán)境等因素使血流減少導(dǎo)致低灌注)時,輸出的PPG信號幅度很小,被各種噪聲淹沒;當(dāng)被測者運(yùn)動時,輸出的PPG信號被運(yùn)動噪聲污染。這些因素都使得輸出信號的信噪比大幅下降,影響SpO2計算的準(zhǔn)確度,嚴(yán)重影響了血氧儀的性能[4]。同時,現(xiàn)在使用的無創(chuàng)SpO2測量儀對SpO2的有效測量范圍也僅為70%~100%。因此我們開發(fā)了一套能在低灌注和運(yùn)動條件下準(zhǔn)確測量SpO2和脈率(PR),且將SpO2的測量范圍擴(kuò)展至35%~100%的高性能無創(chuàng)脈搏血氧儀。在硬件上,使用數(shù)字可控的可變增益放大器,自適應(yīng)調(diào)節(jié)增益對不同灌注水平下不同幅度的PPG信號進(jìn)行不同程度的放大,以獲得可供ADC采集的最佳PPG信號;在軟件算法上,開發(fā)了自相關(guān)建模法的低灌注SpO2測量算法,大大提升了血氧儀的性能,擴(kuò)展了其適用范圍,具有很高的臨床和商業(yè)價值。
無創(chuàng)SpO2測量使用紅光(λ1)和紅外光(λ2)雙光束交替照射人體組織(一般為指尖),測量經(jīng)組織透射或反射后的光強(qiáng)來進(jìn)行分析計算。無血組織(皮膚,骨骼,靜脈血,其他組織等)對光的吸收是恒定的,不隨脈動過程變化;當(dāng)動脈脈動時,動脈體積變化引起光程改變,對光的吸收量也在脈動的變化,因此透射光的強(qiáng)度可分為不隨脈動變化的直流分量DC和隨脈動變化的交流分量AC。定義PI=AC/DC*100%,稱為血流灌注指數(shù),它反映了人體的血流灌注能力。由于氧合血紅蛋白(HbO2)和脫氧血紅蛋白(Hb)各自對紅光和紅外光的吸收譜不同,兩束光交替照射組織,獲得兩路PPG信號和兩個不同的PI,定義R=PI1/PI2,根據(jù)Beer-Lambert定律推導(dǎo),可獲R的計算公式:
式(2)中吸光系數(shù)均為常數(shù),而R值可由采集的脈搏波數(shù)據(jù)計算得到,因此,理論上確定了兩束入射光的波長,就能計算SpO2的值。但一般在實(shí)際計算中,考慮到光散射影響和人體組織的差異及吸光系數(shù)測量的不準(zhǔn)確等因素,一般將(2)展開成二階泰勒級數(shù)的形式,即
式(3)中系數(shù)A,B,C的確定由血氧儀測得的R值和標(biāo)準(zhǔn)的SpO2值利用最小二乘法二次曲線擬合定標(biāo)得到。本文設(shè)計的血氧飽和度測量系統(tǒng)的定標(biāo)曲線通過國際通用的Fluke Index 2XL SpO2模擬儀來確定。
本系統(tǒng)可分為三部分:①指夾式探頭內(nèi)部發(fā)光二極管的LED驅(qū)動電路和指夾式探頭光電接收管后部的低灌注測量電路;②STM32F103數(shù)據(jù)采集主控單元,實(shí)現(xiàn)LED驅(qū)動電路的時序控制,低灌注測量電路的自適應(yīng)增益控制,以及數(shù)據(jù)采集并通過USB傳輸?shù)缴衔粰C(jī);③PC機(jī)數(shù)據(jù)處理單元,實(shí)現(xiàn)數(shù)據(jù)分析處理、低灌注算法實(shí)現(xiàn)、實(shí)時波形顯示、實(shí)時參數(shù)計算、數(shù)據(jù)保存、報警等功能。整個系統(tǒng)框圖如圖1所示。
圖1 血氧飽和度測量系統(tǒng)框圖Fig.1 Schematic diagram of SpO2measurement system
為保持PPG信號的原始特征,本系統(tǒng)采用全數(shù)字方式對原始PPG信號進(jìn)行采集,然后傳輸?shù)缴衔粰C(jī)進(jìn)行數(shù)字信號處理,計算得到需要的結(jié)果。系統(tǒng)硬件部分包括LED驅(qū)動電路、IV轉(zhuǎn)換電路、放大電路、主控單元、以及PC機(jī)。整個系統(tǒng)的硬件框圖如圖2所示。
圖2 系統(tǒng)硬件框圖Fig.2 Schematic diagram of the hardware system
2.1.1 LED驅(qū)動電路
由于本系統(tǒng)采用雙波長測量法,我們設(shè)計探頭上的紅光和紅外光的LED交替發(fā)光,同時設(shè)置一個暗光以提高系統(tǒng)準(zhǔn)確度和抗干擾能力,該暗光信號可用于校正環(huán)境光對系統(tǒng)的影響。最終該三路光的發(fā)光時序通過STM32F103的I/O口產(chǎn)生控制信號IN1和IN2,IN1和IN2控制模擬開關(guān)接通和斷開,從而控制紅光和紅外光的LED的切換,當(dāng)紅光和紅外光的LED都沒點(diǎn)亮?xí)r即為暗光狀態(tài)。
2.1.2 I/V轉(zhuǎn)換電路
LED被點(diǎn)亮后,傳感器另一端光電接收管將接收的透射光信號轉(zhuǎn)變?yōu)殡娏餍盘?,隨后I/V轉(zhuǎn)換電路將該電流信號轉(zhuǎn)換成與透射光強(qiáng)成正比的電壓信號以方便采樣處理。本系統(tǒng)I/V轉(zhuǎn)換采用了集成芯片OPA381,轉(zhuǎn)換電路及參數(shù)配置如圖3。LED+和LED-分別連接光電接收管的+/-極,OUT1為輸出電壓。由于被檢測的電流很小,反饋電阻取1 M以提高輸出電壓的幅值和信噪比。同時并聯(lián)一個電容以進(jìn)一步減小輸入電流噪聲。
2.1.3 一級差分放大電路
圖3 I/V轉(zhuǎn)換電路Fig.3 Schematic of I/V conversion
上述電流信號轉(zhuǎn)換成電壓信號后,由于PPG信號的交流分量與直流分量相比非常小,因此需要對交流分量做進(jìn)一步的放大。由于差分放大器具有高共模抑制比、高輸入阻抗、能有效抑制溫度漂移和隨機(jī)噪聲等特點(diǎn),因此本文采用儀表差分放大器MAX4194,在I/V轉(zhuǎn)換后將原始信號減去一個直流偏置后再進(jìn)行放大,以提高信號的信噪比。
2.1.4 可變增益放大電路
不同人群的手指透光性不同,同時可能出現(xiàn)低灌注、低信噪比等情況,也可能出現(xiàn)個別的高灌注導(dǎo)致信號飽和的情況。為了適應(yīng)這些不同情況,將信號盡可能地放大以提高ADC對信號的分辨率但又不至于使信號飽和超出ADC采樣的幅值范圍,整個模塊的模擬部分不能采用固定的放大倍數(shù),而采用自適應(yīng)增益控制以使最終的模擬信號有一個合適的幅度。為達(dá)到此目的,本設(shè)計采用低輸入噪聲數(shù)字可編程增益放大器LTC6910-1,它有0、1、2、5、10、20、50、100 V/V,8個增益可選。如圖4電路所示,它具有三個數(shù)字輸入口G2,G1,G0,STM32F103通過該三個邏輯控制口的邏輯組合即可控制增益的切換。實(shí)際系統(tǒng)中,STM32F103采集經(jīng)過放大后的PPG信號,實(shí)時計算其幅度信息并反饋控制LTC6910-1的增益,實(shí)現(xiàn)實(shí)時的自適應(yīng)增益調(diào)節(jié)。
圖4 可變增益放大電路Fig.4 Schematic of VGA
2.2.1 ARM軟件設(shè)計
STM32F 103 處理器的所有軟件都采用C 語言在RealView MDK平臺下開發(fā)。該系統(tǒng)中,STM32F103主要完成LED驅(qū)動時序的控制、PPG信號的采集、PPG信號幅度的判斷以自適應(yīng)地反饋調(diào)節(jié)增益和將數(shù)據(jù)打包通過USB傳輸?shù)缴衔粰C(jī),軟件流程圖如圖5所示。
圖5 ARM軟件流程圖Fig.5 Program flow chart of ARM
整個系統(tǒng)的時序由定時器中斷1 保證,即STM32F103每667 μs觸發(fā)一次定時器中斷,在定時器中斷服務(wù)程序中完成LED燈的切換,同時開啟ADC采樣。ADC采樣完成后,觸發(fā)DMA中斷,在DMA的中斷里,將紅光、紅外光和暗光的PPG信號經(jīng)過處理后計算其信號幅度,并判斷是否需要切換增益以自適應(yīng)的調(diào)節(jié)可變增益放大器的增益值,隨后將PPG信號數(shù)據(jù)通過USB傳輸?shù)缴衔粰C(jī)。
2.2.2 PC機(jī)軟件設(shè)計
PC機(jī)軟件在Windows操作系統(tǒng)下運(yùn)行,開發(fā)環(huán)境為Visual Studio 2008。該上位機(jī)軟件與下位機(jī)通過USB接口連接,接收下位機(jī)傳輸來的數(shù)據(jù),并進(jìn)行相應(yīng)的處理。為了實(shí)時處理下位機(jī)傳輸?shù)臄?shù)據(jù),本設(shè)計采用多線程技術(shù)來完成數(shù)據(jù)讀取和處理,分別為數(shù)據(jù)讀取線程和數(shù)據(jù)處理線程,并開辟一塊共享內(nèi)存區(qū)域作為兩個線程數(shù)據(jù)交互的緩沖區(qū)。數(shù)據(jù)讀取線程將USB緩沖區(qū)內(nèi)的數(shù)據(jù)讀出并存放進(jìn)數(shù)據(jù)緩沖區(qū),當(dāng)數(shù)據(jù)讀取線程的時間片用完后便切換到數(shù)據(jù)處理線程,數(shù)據(jù)處理線程從數(shù)據(jù)緩沖區(qū)取出數(shù)據(jù)進(jìn)行分析處理,其數(shù)據(jù)流圖如圖6所示。
圖6 上位機(jī)軟件數(shù)據(jù)流圖Fig.6 Data flow diagram of software in PC
數(shù)據(jù)處理線程主要完成如下功能:將紅光、紅外光和暗光數(shù)據(jù)按照自定義的數(shù)據(jù)幀格式進(jìn)行分離、濾波、進(jìn)行算法選擇、參數(shù)計算、數(shù)據(jù)存儲、波形界面繪制及參數(shù)顯示。其流程圖如圖7所示。
圖7 上位機(jī)數(shù)據(jù)處理線程流程圖Fig.7 Program flow chart of data processing thread of software in PC
其中上位機(jī)軟件將原始數(shù)據(jù)和經(jīng)過處理后的數(shù)據(jù)存放在以軟件啟動時刻命名的文件夾中(如果輸入了被測者的個人信息,則以被測者姓名和軟件啟動時刻命名),便于對采集到的數(shù)據(jù)進(jìn)行離線分析處理。本系統(tǒng)最終開發(fā)的上位機(jī)軟件運(yùn)行界面如圖8。如圖中標(biāo)注,左區(qū)由上而下分別顯示紅光、紅外光、暗光的波形,右區(qū)由上而下分別顯示當(dāng)前時間、PR、SpO2、PI及其他一些參考值。最下方為功能按鈕,分別為開始/暫停、退出、低灌注、平均、個人信息。點(diǎn)擊“開始”按鈕軟件開始運(yùn)行,期間點(diǎn)擊“暫?!卑粹o即可暫停運(yùn)行;若PI值很低,顯示參數(shù)頻繁跳動出現(xiàn)很大誤差,表明被測者處于弱灌注水平,則可點(diǎn)擊“低灌注”按鈕選擇自相關(guān)建模法的低灌注算法來計算各參數(shù);普通算法測試正常人時,使用者也可點(diǎn)擊“平均”按鈕來使參數(shù)顯示更加穩(wěn)定;“個人信息”按鈕點(diǎn)擊后跳出對話框,可輸入被測者的ID號、姓名和年齡等個人信息;點(diǎn)擊“退出”按鈕即可退出軟件運(yùn)行。其中,點(diǎn)擊“低灌注”按鈕時,對低灌注信號加入本系統(tǒng)開發(fā)的自相關(guān)建模法的低灌注算法來計算各參數(shù),其大致流程框圖如圖9所示。
圖8 上位機(jī)軟件運(yùn)行界面Fig.8 Software interface in PC
圖9 自相關(guān)建模法的數(shù)據(jù)處理流程框圖Fig.9 Data processing flow diagram of auto-correlation modeling method
在低灌注時,由于血流灌注能力下降,脈動血流量減少導(dǎo)致PPG信號的交流分量大幅降低,在噪聲干擾下脈搏波失去其明顯的周期性特點(diǎn),有效信號幾乎被噪聲信號淹沒,信噪比極低。由于噪聲主要是白噪聲,而信號和噪聲、噪聲和噪聲不相關(guān),因此我們首先對信號進(jìn)行自相關(guān)處理達(dá)到抑制噪聲以提高信噪比的目的[7-8]。由自相關(guān)原理可知自相關(guān)后信號的頻率與原始信號完全相同,由此我們可通過自相關(guān)后的信號準(zhǔn)確計算脈率,而自相關(guān)后信號的幅值發(fā)生改變,但是它們存在相應(yīng)的對應(yīng)關(guān)系,我們通過建模確定其幅值關(guān)系從而計算信號的交流分量,進(jìn)而計算PI和計算SpO2所需的比值R。通過該建模,我們便可通過自相關(guān)信號準(zhǔn)確計算PR、PI和SpO2等參數(shù)。
為了驗(yàn)證本文所設(shè)計的血氧儀的性能,我們將其與國際通用的Fluke Index 2XL SpO2模擬儀進(jìn)行了對比測試,分別評價了本系統(tǒng)對PR、PI和SpO2等參數(shù)檢測的準(zhǔn)確性;同時,對低灌注0.125%和運(yùn)動狀況的信號進(jìn)行了算法處理驗(yàn)證,并特別的在低灌注至0.125%時,單獨(dú)做了數(shù)據(jù)測試,以檢驗(yàn)該系統(tǒng)對低灌注的檢測能力。
通過Fluke Index 2XL SpO2模擬儀,模擬PI為5%(普通正常人的灌注水平),脈率從30到250變化,本系統(tǒng)檢測的脈率全部正確。模擬脈率為70,SpO2為90%,PI從0.125%~20%變化的情形,F(xiàn)luke Index 2XL SpO2模擬儀的PI值和本系統(tǒng)測量得到的PI值的擬合曲線如圖10,從圖中可以看出,本系統(tǒng)計算的PI值和Fluke Index 2XL SpO2模擬儀的PI值基本一致,其準(zhǔn)確度和穩(wěn)定性能滿足要求。
圖10 本系統(tǒng)與Fluke Index 2XL的PI值對比Fig.10 Comparison graph of PI between the system and Fluke simulator
采用模擬儀Fluke Index 2XL模擬灌注水平在5%,脈率為70,SpO2從35%~100%的情形,用本文設(shè)計的血氧儀的測量結(jié)果與Fluke Index 2XL SpO2模擬儀的值進(jìn)行對比,其擬合曲線如圖11。二者相關(guān)系數(shù)為0.998,接近于1,說明二者的結(jié)果基本相同。同時,在SpO270%~100%的臨床測試要求范圍內(nèi),測量誤差不大于±2%,在SpO235%~70%的范圍內(nèi),測量誤差不大于±3%,具有很高的準(zhǔn)確性和重復(fù)性。
圖11 本系統(tǒng)與Fluke Index 2XL的SpO2值對比Fig.11 Comparison graph of SpO2between the system and Fluke simulator
為檢驗(yàn)本系統(tǒng)設(shè)計的自相關(guān)建模法的低灌注SpO2測量算法對信號的處理能力,我們采集了模擬儀PI為0.125%時的數(shù)據(jù)傳輸?shù)缴衔粰C(jī),在Matlab環(huán)境下加入算法進(jìn)行了處理,其結(jié)果如圖12的(a)(b)所示。同時,為檢驗(yàn)算法對運(yùn)動干擾信號的處理能力,我們用手指的抖動和手臂擺動來產(chǎn)生運(yùn)動干擾,其原始信號和經(jīng)算法處理后的信號分別如圖12的(c)(d)所示,從圖中看出,本算法對這種手指抖動和手臂擺動的運(yùn)動干擾具有很好的抑制作用。
圖12 原始波形和算法處理后的波形Fig.12 Orignal waveforms and algorithm processed waveforms
為進(jìn)一步檢驗(yàn)本系統(tǒng)硬件及算法設(shè)計對低灌注的檢測能力,我們在灌注為0.125%時進(jìn)行了單獨(dú)的數(shù)據(jù)測試,并給出了脈率、PI和SpO2等參數(shù)檢測的結(jié)果。PI為0.125%時脈率從30至250變化時測試結(jié)果全部正確。表1給出了本系統(tǒng)對SpO2和PI值的檢測結(jié)果、與模擬儀的偏差及標(biāo)準(zhǔn)差。從表中可看出,SpO2為70%以上的檢測結(jié)果非常準(zhǔn)確,偏差在±3%以內(nèi),標(biāo)準(zhǔn)差也很小說明其檢測結(jié)果非常穩(wěn)定。需要說明的是,在灌注0.2%以上時,SpO2在35%~100%全范圍內(nèi)檢測都非常準(zhǔn)確,在灌注0.125%~0.2%時,SpO2在較低水平時出現(xiàn)較大偏差,因此這里在灌注0.125%時只給出了臨床要求范圍70%~100%的測量結(jié)果。
系統(tǒng)對血氧飽和度的測量范圍擴(kuò)展到了35%~100%;設(shè)計的自相關(guān)模型法的抗低灌注算法使得本系統(tǒng)在灌注水平低至0.125%時仍能準(zhǔn)確測量。
表1 PI為0.125%時本系統(tǒng)檢測的PI和SpO2值Tab.1 The PI and SpO2detected by our system at PI 0.125%
將本文介紹的血氧儀與Fluke Index 2XL SpO2模擬儀進(jìn)行同步對比測試,該儀器實(shí)現(xiàn)了脈率從30至250 BPM,灌注水平從0.125%至20%,SpO2從35%至100%范圍內(nèi)脈率、PI和SpO2的準(zhǔn)確測量。
[1] 劉光達(dá),郭維,朱平,等.基于容積波分析的血氧飽和度測量系統(tǒng)[J].激光與紅外,2009,39(2):169-172.
[2] 周洪建,蔡桂艷.三波長無創(chuàng)血氧飽和度測量算法及應(yīng)用[J].中國生物醫(yī)學(xué)工程學(xué)報,2007,26(5):680-683,689.
[3] 嚴(yán)新忠,楊靜,郭略.人體血氧飽和度監(jiān)測方法的研究[J].醫(yī)療裝備,2005,18(12):1-4.
[4] 聞大翔,周穎,王珊娟,等.體動和低灌注影響脈搏血氧飽和度準(zhǔn)確性的臨床研究[J].臨床麻醉學(xué)雜志,2004,20(6):333-335.
[5] 張虹,金捷,孫衛(wèi)新.數(shù)字式脈搏血氧飽和度檢測系統(tǒng)的研制[J].生物醫(yī)學(xué)工程與臨床,2002,6(3):125-128.
[6] 張坤,焦騰,付峰,等.運(yùn)用小波模極大值濾波算法消除光電容積脈搏波中的運(yùn)動干擾[J].儀器儀表學(xué)報,2009,30(3):586-589.
[7] 范曉志,趙立志,黃曉紅.基于多重自相關(guān)的微弱信號檢測算法研究[J].小型微型計算機(jī)系統(tǒng),2007,28(3):566-568.
[8] 于剛,張安清.強(qiáng)背景噪聲中信號二次循環(huán)自相關(guān)檢測與幅度估計[J].艦船電子對抗,2008,31(4):88-90,96.