龐 宇,何 鴻,蔣 偉
(重慶郵電大學(xué) 光電信息感測(cè)與傳輸技術(shù)重慶市重點(diǎn)實(shí)驗(yàn)室,重慶 400065)
血壓是作為評(píng)估心血管風(fēng)險(xiǎn)和疾病的重要體征參數(shù)之一,一段時(shí)間內(nèi)的血壓變化趨勢(shì)通常反映著心血管和呼吸系統(tǒng)的健康狀況,在評(píng)估心血管功能和風(fēng)險(xiǎn)方面起著重要作用[1]。血壓包括收縮壓和舒張壓,正常成年人收縮壓的范圍一般是90~140 mmHg,也稱為高壓,若大于140 mmHg,則血壓偏高。收縮壓是與心臟收縮有關(guān)的壓力,它表示心臟每搏一次將血液泵入動(dòng)脈所需的最大壓力。舒張壓的正常范圍一般是60~90 mmHg,也稱為低壓,舒張壓表示心臟為了產(chǎn)生下一次心跳而必須克服的壓力,偏高或者偏低的血壓容易引發(fā)各類心血管疾病[2]。在無(wú)創(chuàng)測(cè)量血壓中,示波法測(cè)血壓往往是比較好的選擇,由于其便攜式、無(wú)創(chuàng)測(cè)量、無(wú)汞風(fēng)險(xiǎn)等優(yōu)勢(shì),在測(cè)量血壓方面得到了廣大醫(yī)護(hù)人員和研究者的認(rèn)可[3]。
示波法測(cè)量血壓是利用袖帶線性或逐步放氣時(shí),人體脈搏波引起袖帶內(nèi)壓力振蕩形成振蕩脈搏波,并根據(jù)波形的特征點(diǎn),可計(jì)算出收縮壓和舒張壓。示波法測(cè)量血壓在國(guó)內(nèi)外也有較為廣泛的研究,針對(duì)幅度系數(shù)法自適應(yīng)能力差的問(wèn)題,華斌等利用kmeans算法對(duì)包絡(luò)唯一聚類,然后對(duì)各類包絡(luò)分別采用梯度下降法獲取一組最優(yōu)比例系數(shù),結(jié)果表明該方法能夠提高血壓測(cè)量精度[4]。溫亮等采用2個(gè)高斯函數(shù)之和作為模型對(duì)脈搏波包絡(luò)線進(jìn)行擬合,擬合后的高斯函數(shù)參數(shù)作為輸入,通過(guò)2個(gè)前端神經(jīng)網(wǎng)絡(luò)進(jìn)行收縮壓和舒張壓的判定[5]。國(guó)外的Ahmadreza等提出基于人工智能的無(wú)創(chuàng)血壓估計(jì)方法,該方法將血壓估計(jì)方法轉(zhuǎn)化為序列對(duì)序列的分類問(wèn)題,通過(guò)小波包分解得到相應(yīng)的細(xì)節(jié)部分和近似部分,并提取每一個(gè)分段的特征,從而形成一個(gè)分段序列,并在收縮壓和舒張壓之間設(shè)計(jì)一個(gè)BiLSTM循環(huán)神經(jīng)網(wǎng)絡(luò)來(lái)估計(jì)血壓值[6]。上述示波法血壓檢測(cè)方法雖然能夠提高測(cè)量精度,但是算法復(fù)雜度高,MCU(單片微型計(jì)算機(jī))較難實(shí)現(xiàn),難以做到小型化、可穿戴的特點(diǎn)。
綜合以上分析,本文采用基于基波的方法實(shí)現(xiàn)振蕩脈搏波信號(hào)幅值輪廓處理,通過(guò)數(shù)字濾波的方法提取出脈搏波信號(hào),并結(jié)合一階差分法完成脈搏波峰值點(diǎn)定位。對(duì)定位峰值序列進(jìn)行拉格朗日差值運(yùn)算,能夠有效減少離散峰值匹配不均造成幅度系數(shù)匹配不良的問(wèn)題。該算法在減少計(jì)算量的同時(shí)能夠提高血壓的測(cè)量精度,對(duì)可穿戴血壓檢測(cè)系統(tǒng)的研究具有較大意義。
袖帶式血壓測(cè)量主要采用示波法測(cè)量,測(cè)量原理如圖1所示[7]。通過(guò)確定振蕩脈搏波的幅值和脈搏波最大幅值的比例關(guān)系(臨床上判定幅值最大處對(duì)應(yīng)壓力值即為平均壓)來(lái)確定收縮壓和舒張壓,如下式:

圖1 示波法原理示意圖

式中:AS、AM、AD——收縮壓、平均壓、舒張壓對(duì)應(yīng)的脈搏波幅度值;
K1、K2——變幅度系數(shù)。
結(jié)合系數(shù)K1,K2,系數(shù)是隨平均壓的變化而變化的,變幅度系數(shù)表如表1所示[8]。收縮壓系數(shù)K1的取值范圍一般是在0.52~0.64,舒張壓系數(shù)K2的取值范圍一般是0.50~0.85。

表1 變幅度系數(shù)表
系統(tǒng)電路硬件部分主要包括電源單元、血壓信號(hào)采集單元、算法處理單元、人機(jī)交互單元等,其中血壓信號(hào)采集單元主要由驅(qū)動(dòng)電路、袖帶、氣泵(DQB030-A型)、電磁閥、壓力傳感器等部分,信號(hào)采集裝置結(jié)構(gòu)示意圖如圖2所示。

圖2 信號(hào)采集裝置結(jié)構(gòu)示意圖
采集過(guò)程為氣泵對(duì)袖帶進(jìn)行充氣,通過(guò)壓力傳感器采集袖帶內(nèi)的壓力值,當(dāng)壓力上升至180 mmHg時(shí),關(guān)閉氣泵,然后通過(guò)PWM波控制電磁閥實(shí)現(xiàn)勻速放氣,放氣過(guò)程中,同樣通過(guò)壓力傳感器采集袖帶內(nèi)的壓力值,采樣率為250 Hz,得到含有袖帶靜壓力和振蕩脈搏波的混合信號(hào)。
本文使用的壓力傳感器為飛思卡爾公司設(shè)計(jì)的MP3V5050,該傳感器能夠根據(jù)袖帶內(nèi)壓力的變化而調(diào)整輸出的電壓值,通過(guò)單片機(jī)內(nèi)置ADC采集壓力傳感器輸出電壓的AD值。袖帶外接一個(gè)壓力表,對(duì)袖帶充氣,記錄AD采樣值和壓力表顯示值,便可以得到AD采樣值和壓力的定量關(guān)系,AD采樣值和壓力值的關(guān)系如表2所示。

表2 AD采樣值和壓力值對(duì)應(yīng)關(guān)系
它們的變化關(guān)系如圖3所示。

圖3 AD采樣值和壓力值的關(guān)系
可以看出,壓力傳感器輸出的AD采樣值和壓力具有線性關(guān)系,對(duì)它們進(jìn)行一次多項(xiàng)式擬合,得到壓力傳感器輸出的AD采樣值c和壓力P的關(guān)系為:

采集到的原始混合信號(hào)F(x)中主要包含了袖帶靜壓力信號(hào)、示波法血壓信號(hào)、高頻噪聲、基線漂移等[7],原始混合信號(hào)如圖4(a)所示。主要的脈搏波信號(hào)即為示波法信號(hào),頻率一般是1~10 Hz左右分布,幅值遠(yuǎn)遠(yuǎn)小于袖帶靜壓力信號(hào)的幅值,實(shí)驗(yàn)驗(yàn)證兩者的幅值比例約為40∶1,故可以將混合信號(hào)平滑處理后來(lái)替代袖帶壓力信號(hào),忽略脈搏波信號(hào)對(duì)壓力信號(hào)的影響。

圖4 原始信號(hào)的處理
考慮到袖帶壓力信號(hào)G(x)屬于低頻信號(hào),本文采用移動(dòng)平均濾波分離出袖帶靜壓信號(hào)和示波法脈搏波信號(hào),其計(jì)算公式為:

式中:n≥m,xn-m+1~xn——當(dāng)前滑動(dòng)窗口依次采集到的數(shù)據(jù)樣本;
yn——算法濾波結(jié)果;
m——窗函數(shù)寬度。
可以將連續(xù)的采樣數(shù)據(jù)看成一個(gè)長(zhǎng)度固定為m的隊(duì)列。
本算法選取的窗函數(shù)寬度為100,能夠分離出頻率在1 Hz以下的袖帶靜壓信號(hào)和示波法脈搏波信號(hào),分離后的袖帶靜壓信號(hào)和脈搏波信號(hào)分別如圖4(b)和圖4(c)所示,提取出的振蕩脈搏波信號(hào)即為示波法血壓信號(hào)。
分離出來(lái)的振蕩脈搏波信號(hào)如圖5(a)所示,其信號(hào)的頻域分析如圖5(b)所示,主要頻率分布在20 Hz以內(nèi)。分離出的振蕩脈搏波包含較多的干擾噪聲,如高頻噪聲、基線漂移等,基線漂移主要是由于人體呼吸運(yùn)動(dòng)和袖帶相對(duì)于皮膚的抖動(dòng)引起[9]?;€漂移和高頻干擾對(duì)脈搏波的幅值判定和峰值定位影響極大,從而導(dǎo)致血壓特征點(diǎn)判斷誤差變大。經(jīng)過(guò)研究,選用一維離散形態(tài)學(xué)進(jìn)行基線漂移信號(hào)處理具有良好的效果,形態(tài)學(xué)主要運(yùn)算有腐蝕和膨脹,兩種運(yùn)算能夠組成開(kāi)運(yùn)算和閉運(yùn)算,這四種運(yùn)算相互結(jié)合使用可以用于信號(hào)的噪聲處理、邊緣識(shí)別及特征提取等。

圖5 基線漂移信號(hào)處理
分離出來(lái)的振蕩脈搏波信號(hào)為一維離散信號(hào)f(i),(i=0,1,2,···,n-1),結(jié)構(gòu)元素為g(j),(j=0,1,2,···,m-1),其中n>m。腐蝕是取結(jié)構(gòu)元素g(j)與脈搏波f(i)的最大相關(guān)點(diǎn)集,膨脹是取結(jié)構(gòu)元素g(j)與脈搏波信號(hào)f(i)完全相關(guān)點(diǎn)所對(duì)應(yīng)的中心原點(diǎn),是腐蝕的逆運(yùn)算,進(jìn)行對(duì)偶運(yùn)算即可,腐蝕和膨脹運(yùn)算定義如下[10]:

膨脹和腐蝕可以組成開(kāi)、閉運(yùn)算,利用g(j)對(duì)f(i)做形態(tài)學(xué)開(kāi)運(yùn)算,其開(kāi)運(yùn)算定義式為:

利用g(j)對(duì)f(i)做形態(tài)學(xué)閉運(yùn)算,其閉運(yùn)算定義式為:

開(kāi)閉運(yùn)算具有等冪性,振蕩脈搏波通過(guò)一次開(kāi)閉運(yùn)算就可以濾除所有的基于結(jié)構(gòu)元素的噪聲。上式計(jì)算只包含加、減等簡(jiǎn)單運(yùn)算,運(yùn)算速度較快。振蕩脈搏波的采樣頻率為250 Hz,一個(gè)特征波寬度約為200,結(jié)構(gòu)元素選用直線型,寬度設(shè)計(jì)為210,高度按經(jīng)驗(yàn)取值為10。通過(guò)形態(tài)學(xué)濾波去除基線漂移后的信號(hào)如圖5(c)所示,其頻域分析如圖5(d)所示,可以看出,該算法能夠去除基線漂移,并且基本濾除20 Hz以上的高頻噪聲。
考慮到采用的是振蕩脈搏波的幅值比例方法測(cè)量血壓,且脈搏波信號(hào)大多數(shù)處于低頻范圍,采用低通濾波器提取出振蕩脈搏波中的基波信號(hào)。結(jié)合采集狀態(tài)下脈搏波的頻率,選擇2 Hz窄頻率帶來(lái)選擇基波主要信號(hào),利用數(shù)字濾波來(lái)構(gòu)建低通濾波器。本文通過(guò)將模擬低通濾波器轉(zhuǎn)換為數(shù)字低通濾波器來(lái)實(shí)現(xiàn)濾波的目的,RC低通濾波器的微分方程為[11]:

式中:R——濾波電阻;
C——濾波電容;
ui——輸入電壓;
u0——輸出電壓。
將其轉(zhuǎn)換為差分形式:

其中T為信號(hào)的采樣周期,又由角頻率 ω=1/RC,ω =2πfc得:

式中:ui(k)——當(dāng)前輸入數(shù)據(jù);
u0(k)——處理后的輸出數(shù)據(jù);
u0(k-1)——上次處理后的輸出數(shù)據(jù);
a——低通濾波系數(shù);
fc——截止頻率。
即可實(shí)現(xiàn)對(duì)脈搏波信號(hào)的數(shù)字濾波。
實(shí)驗(yàn)發(fā)現(xiàn),選取濾波系數(shù)a為0.025 12,血壓信號(hào)中的基波信號(hào)近似正弦波信號(hào),定位峰值過(guò)程中不容易識(shí)別干擾波,每個(gè)脈搏波的峰值更顯著,有利于峰值定位?;}搏波振蕩信號(hào)幅值輪廓更明確,且主要頻率分布在1~2 Hz左右,如圖6(a)所示。

圖6 基波信號(hào)處理
振蕩脈搏波峰值查找采用一階差分法定位,主要是通過(guò)對(duì)相鄰數(shù)據(jù)進(jìn)行一階差分運(yùn)算。設(shè)需要處理的第i點(diǎn)處數(shù)據(jù)記為f(i),后向差分記為 ?f(i),定義式為:

若y(i)為負(fù),則判定n點(diǎn)為極值點(diǎn),即只需判定?f(i)的正負(fù):若?f(i)為正,則i點(diǎn)為波峰點(diǎn),若?f(i)為負(fù),則i點(diǎn)為波谷點(diǎn)。依次完成整組數(shù)據(jù)的一階差分定位,判斷y(i)的正負(fù),完成波峰值的定位,定位結(jié)果如圖6(a)所示,頻域分析結(jié)果如圖6(b)所示。
振蕩脈搏信號(hào)的基波信號(hào)幅值輪廓明顯,無(wú)重搏波影響,峰值定位準(zhǔn)確,對(duì)血壓幅值判定計(jì)算有顯著的幫助。通過(guò)離散峰值序列,需要找到對(duì)應(yīng)幅值波峰,完成與袖帶壓匹配。本文采用拉格朗日插值法對(duì)脈搏波離散序列進(jìn)行插值計(jì)算,匹配對(duì)應(yīng)波峰幅值,來(lái)完成血壓匹配計(jì)算。
設(shè)滿足條件f(ai)=bi,(i=1,2,···,n+1)的次數(shù)不超過(guò)n的多項(xiàng)式f(x)=c0+c1x+c2x2+···+cnxn。可得一個(gè)以c0,c1,…cn為方程系數(shù)的n+1個(gè)線性方程,這個(gè)方程組的系數(shù)行列式D為[12]:

根據(jù)克萊姆法則知cj=Dj+1/D(j=0,1,···,n),b0,b1,···,bn替換行列式的第j+1列,如下:

將cj帶入f(x)計(jì)算,可得:

上式為范德蒙行列式,計(jì)算可得:

代入上式f(x),可得拉格日插值公式:

通過(guò)拉格朗日插值法確定收縮壓和舒張壓的特征點(diǎn)坐標(biāo)后,便可計(jì)算血壓,血壓計(jì)算原理如圖7所示。

圖7 血壓計(jì)算原理
經(jīng)綜合測(cè)量,結(jié)合K1,K2的變幅度系數(shù)取值,振蕩脈搏波峰值A(chǔ)M為離散序列中的最大值,收縮壓和舒張壓的特征幅值點(diǎn)通過(guò)拉格朗日插值法進(jìn)行尋找,即圖7峰值點(diǎn)序列中虛線通過(guò)的實(shí)心圓點(diǎn),計(jì)算流程圖如圖8所示。

圖8 血壓計(jì)算流程
本血壓檢測(cè)算法測(cè)量結(jié)果和聽(tīng)診法(測(cè)量血壓的金標(biāo)準(zhǔn))進(jìn)行對(duì)比,實(shí)驗(yàn)裝置為腕式血壓檢測(cè)裝置,如圖9(a)所示,標(biāo)準(zhǔn)聽(tīng)診法血壓計(jì)如圖9(b)所示。

圖9 測(cè)量裝置圖
實(shí)驗(yàn)選取10名測(cè)試者,年齡20歲~30歲,測(cè)試要求實(shí)驗(yàn)前24 h內(nèi)不酗酒、身體無(wú)不良反應(yīng)以及身體狀態(tài)良好。測(cè)試時(shí)要求測(cè)試對(duì)象靜坐,手腕固定袖帶,調(diào)整坐姿使手腕與心臟平齊,啟動(dòng)設(shè)備采集數(shù)據(jù)并計(jì)算血壓值。
測(cè)量結(jié)果如圖10所示,本文采用Bland-Altman分析兩者數(shù)據(jù)的一致性,實(shí)驗(yàn)數(shù)據(jù)與標(biāo)準(zhǔn)數(shù)據(jù)的平均值作為橫坐標(biāo),差值作為縱坐標(biāo),中間的虛線代表樣本平均差值,一致性限值主要是由兩組差值計(jì)算得到,為兩組對(duì)比數(shù)據(jù)的差值均值的95%置信區(qū)間,如下圖兩端虛線。

圖10 血壓測(cè)量結(jié)果一致性分析
通過(guò)對(duì)測(cè)量結(jié)果的一致性分析可以得知,與聽(tīng)診法相比,只有個(gè)別點(diǎn)分布在上下限值附近,其中收縮壓最大限值為12.81 mmHg,舒張壓最大限值為 12.98 mmHg,滿足 ANSI/AAMI標(biāo)準(zhǔn)規(guī)定的(5±8 )mmHg要求[13],能夠作為血壓判定依據(jù)。
在可穿戴血壓檢測(cè)系統(tǒng)測(cè)量血壓過(guò)程中,采集到的信號(hào)存在許多噪聲,如信號(hào)混合疊加、高頻、基線漂移等。所以對(duì)信號(hào)的處理尤為重要,這將直接影響到血壓判定的準(zhǔn)確性。本文通過(guò)對(duì)采集到的袖帶式振蕩脈搏波信號(hào)進(jìn)行了研究與處理,主要?jiǎng)?chuàng)新點(diǎn)有以下幾個(gè)部分:1)對(duì)特征輪廓不明顯的脈搏波采用了基波信號(hào)處理,使得幅值輪廓明顯,有利于幅度系數(shù)法的系數(shù)匹配計(jì)算;2)波峰離散序列中,采用拉格朗日插值法進(jìn)行波峰坐標(biāo)定位,減小了需要擬合的數(shù)據(jù)計(jì)算。在可穿戴血壓檢測(cè)系統(tǒng)中,此血壓檢測(cè)算法具有可實(shí)現(xiàn)性和工程價(jià)值。