杜 超,周 淦,劉貴聰,焦 翔,聶殿輝
(華北計(jì)算機(jī)系統(tǒng)工程研究所,北京 100083)
我國(guó)載人航天事業(yè)飛速發(fā)展,自載人航天工程第五艘飛船神舟五號(hào)成功將首位航天員送入太空以來(lái),截至2022 年1 月已有13 位中國(guó)航天員先后乘坐神舟系列飛船進(jìn)入太空。
在載人航天飛行試驗(yàn)任務(wù)的執(zhí)行過(guò)程中,地面指揮人員和專(zhuān)家根據(jù)航天員相關(guān)生理參數(shù),準(zhǔn)確指導(dǎo)并協(xié)助航天員及時(shí)控制航天員系統(tǒng)狀態(tài),是確保航天員生命安全與任務(wù)成敗的關(guān)鍵環(huán)節(jié)。
在飛船發(fā)射待發(fā)段和上升段,航天員的心電、呼吸等參數(shù)通過(guò)遙測(cè)通道實(shí)時(shí)下傳地面指揮系統(tǒng),地面系統(tǒng)通過(guò)建立數(shù)據(jù)模型等方法處理航天員生理參數(shù),以實(shí)時(shí)準(zhǔn)確地獲得航天員的身體狀況,從而確保航天員的生命安全。因此,建立滿(mǎn)足實(shí)時(shí)性和精度要求的航天員生理遙測(cè)數(shù)據(jù)處理算法,是載人航天工程必須解決的技術(shù)難題。處理航天員心率和呼吸數(shù)據(jù),實(shí)時(shí)獲得航天員心電波形和呼吸波形,就是典型代表。
目前,工程應(yīng)用中,心率計(jì)算的基礎(chǔ)是R 波檢測(cè)。R波提取的方式有小波變換法[1?2]、神經(jīng)網(wǎng)絡(luò)法[3?4]、模板匹配法[5]和數(shù)學(xué)形態(tài)學(xué)法[6]等。小波變換法的基本原理是對(duì)信號(hào)進(jìn)行連續(xù)小波變換,同時(shí)采用閾值法來(lái)檢測(cè)QRS 波群的R 波,小波變換法準(zhǔn)確性較高,但計(jì)算量較大,對(duì)硬件條件要求較高[7];神經(jīng)網(wǎng)絡(luò)法根據(jù)采樣點(diǎn)預(yù)測(cè)來(lái)提取心電特征,需要大量的學(xué)習(xí)和訓(xùn)練,計(jì)算需求較高,較難滿(mǎn)足實(shí)時(shí)運(yùn)算需求;模板匹配法是一種基于統(tǒng)計(jì)識(shí)別的檢測(cè)算法,重復(fù)執(zhí)行率高,耗時(shí)較長(zhǎng)。
呼吸波形變化緩慢,幅度易波動(dòng),呼吸率的計(jì)算有時(shí)域?qū)し逅惴╗8]、包絡(luò)線(xiàn)算法等。這些算法要么由于數(shù)據(jù)干擾導(dǎo)致時(shí)域內(nèi)峰值難以定位,要么因?yàn)榘j(luò)線(xiàn)確定費(fèi)時(shí)費(fèi)力,導(dǎo)致工程應(yīng)用中難以獲得準(zhǔn)確的呼吸數(shù)據(jù)而產(chǎn)生一定的誤差。
所以研究在自主安全條件下既滿(mǎn)足任務(wù)實(shí)時(shí)性、又滿(mǎn)足精度要求的心率與呼吸波形計(jì)算方法,成為工程必要。本文提出的基于自學(xué)習(xí)閾值自動(dòng)調(diào)整的心率計(jì)算R 波檢測(cè)算法,以生理遙測(cè)數(shù)據(jù)為基礎(chǔ),通過(guò)自學(xué)習(xí)判斷閾值進(jìn)行自適應(yīng)修正與調(diào)整,以確保快速確定心率峰值,又有效降低漏檢率,以提高心率波形計(jì)算的實(shí)時(shí)性和精度?;谧钚《嘶€(xiàn)擬合的呼吸波形算法,可簡(jiǎn)單直觀地確定呼或吸曲線(xiàn)與基線(xiàn)的交點(diǎn),從而快速得到呼吸率及其變化波形,為地面支持系統(tǒng)快速了解和掌握航天員生理狀態(tài)提供可靠的技術(shù)支撐。
本文根據(jù)國(guó)產(chǎn)自主安全軟硬件計(jì)算機(jī)系統(tǒng)要求,模擬構(gòu)建了地面指揮控制中心應(yīng)用場(chǎng)景,利用遙測(cè)數(shù)據(jù)對(duì)本文建立的基于自學(xué)習(xí)閾值動(dòng)態(tài)調(diào)整的心率計(jì)算R 波檢測(cè)算法和基于最小二乘擬合基線(xiàn)的呼吸波形算法進(jìn)行了計(jì)算驗(yàn)證,結(jié)果證明其實(shí)時(shí)性和計(jì)算精度滿(mǎn)足工程應(yīng)用的要求。開(kāi)發(fā)的可視化心率波形與呼吸波形顯示系統(tǒng)穩(wěn)定可靠,滿(mǎn)足動(dòng)態(tài)、直觀和逼真的要求。
心電圖(Electrocardiogram,ECG)信號(hào)是心電活動(dòng)的記錄,具有心率計(jì)算、診斷心臟異常和生物特征識(shí)別等多種生物醫(yī)學(xué)應(yīng)用[9],它記錄的是心臟在一段時(shí)間內(nèi)通過(guò)在人體身上放置電極而產(chǎn)生的微小電活動(dòng)[10],反饋了人體的相關(guān)生理和情境信息[11]。ECG 能夠反映人體心臟的健康狀況,某些病變可以通過(guò)ECG 波形的異常體現(xiàn)出來(lái)[12?13]。ECG 信號(hào)是一種低幅值、低頻率的生理信號(hào)[14],具有一定的周期性,一段完整的ECG 信號(hào)周期分為P 波、QRS 波群以及T 波,如圖1 所示。
圖1 ECG 信號(hào)典型波形示意
P 波是在正常心房除極過(guò)程中除極由右心房至左心房形成的,正常P 波持續(xù)時(shí)間一般不多于0.11 s,振幅一般不超過(guò)0.25 mV。PR 段連接了P 波和QRS 波群,信號(hào)上表現(xiàn)為一個(gè)平直段,時(shí)長(zhǎng)一般在50~120 ms。QRS 波群表示左右心室在除極過(guò)程中受到的電刺激情況,由Q波、R 波和S 波組成,由于心室的肌肉組織遠(yuǎn)比心房發(fā)達(dá),因此QRS 波群振幅較大,時(shí)長(zhǎng)一般為80~120 ms。ST 段將QRS 波群與T 波銜接,正常的ST 段接近基線(xiàn),時(shí)長(zhǎng)一般為80~120 ms。T 波表示心室迅速?gòu)?fù)極化過(guò)程,時(shí)長(zhǎng)通常為160 ms。
相鄰兩個(gè)P 波峰點(diǎn)之間的時(shí)間跨度定義為一個(gè)PP間期,同理,相鄰兩個(gè)R 波峰點(diǎn)之間的時(shí)間跨度定義為一個(gè)RR 間期。心率定義為心電圖中每分鐘內(nèi)PP 間期的個(gè)數(shù)。由于P 波變化率較小,檢測(cè)較為復(fù)雜,而心電波形中QRS 波群變化比較顯著,其中又尤以R 波的變化率最大,因此常用RR 間期的個(gè)數(shù)來(lái)計(jì)算心率,R 波檢測(cè)就成為了心率檢測(cè)的基礎(chǔ)。
本文設(shè)計(jì)一種可自學(xué)習(xí)更新閾值的差分閾值法來(lái)檢測(cè)R 波。
心率檢測(cè)的過(guò)程為首先對(duì)接收到的心電數(shù)據(jù)進(jìn)行差分運(yùn)算處理,根據(jù)最新的閾值判斷檢出R 波,依照自學(xué)習(xí)閾值的計(jì)算方法對(duì)閾值進(jìn)行更新,隨后根據(jù)檢出的R 波計(jì)算心率。若有新的實(shí)時(shí)數(shù)據(jù)到來(lái),則算法的流程循環(huán)進(jìn)行。心率計(jì)算的流程如圖2 所示。
圖2 心率計(jì)算流程
對(duì)ECG 原始信號(hào)作差分運(yùn)算,可使QRS 波群更加突出。ECG 信號(hào)整體上具有一定的稀疏性,本文采用的R波檢測(cè)算法以ECG 信號(hào)的一階差分和二階差分序列為計(jì)算樣本。
ECG 原始信號(hào)及作差分運(yùn)算后的波形如圖3 所示。
圖3 ECG 波形及差分運(yùn)算后的波形
對(duì)心電波形作一階差分和二階差分運(yùn)算。將ECG的數(shù)字信號(hào)記為x(n),第n點(diǎn)的差分值可由以下公式求得:
式中,Δk=x(n+k)-x(n-k),k=1,2,3,4。
差分處理的算法復(fù)雜度為O(n)。
心電信號(hào)隨機(jī)性較強(qiáng),并且存在基線(xiàn)漂移,因此采用自學(xué)習(xí)閾值,即每次都根據(jù)新的信號(hào)值自動(dòng)判斷更新閾值。
首先選取初始閾值,將初始的一段心電數(shù)據(jù)按每一秒劃分成n段,對(duì)各段差分值的最大值累加平均得到閾值。若初始閾值太大會(huì)造成漏檢,太小會(huì)造成錯(cuò)檢,因此取一定比例作為R 波的檢測(cè)閾值T。
其中,Mi為第i段差分值的最大值。
之后在每次檢測(cè)時(shí)閾值都要更新,本文設(shè)計(jì)了閾值自適應(yīng)更新方法,取當(dāng)次值和之前N次值的加權(quán)平均作為新閾值,其中的加權(quán)系數(shù)按如下規(guī)定:
其中,Mcu為當(dāng)前心拍一階差分最大值。
根據(jù)得到的閾值檢測(cè)R 波,當(dāng)差分值大于閾值時(shí)記為A點(diǎn),求出A點(diǎn)后0.28 s 間隔內(nèi)(當(dāng)前心拍)的一階差分、二階差分最大值。A點(diǎn)后第一次小于1/2 閾值的點(diǎn)記為B1,若A-B1的間隔大于0.1 s,則認(rèn)為找到R 波;否則就再找一個(gè)大于1/2 的閾值的點(diǎn)B2,若B1-B2的間隔小于0.1 s,則認(rèn)為找到R 波。
實(shí)時(shí)心率的心率值為最近15 s 的平均心率,每1 s心率值刷新計(jì)算一次。連續(xù)兩個(gè)R 波的時(shí)間差為一個(gè)RR 間期,則心率值Rh的計(jì)算公式如下:
其中,N為最近15 s 內(nèi)的RR 間期個(gè)數(shù),RRi為第i個(gè)RR間期。
理論情況下,呼吸波形類(lèi)似于正弦波,如圖4 所示,從A點(diǎn)到E點(diǎn)是一個(gè)完整的呼吸周期。其中A-B-C表示吸氣過(guò)程,C-D-E表示呼氣過(guò)程。在航天員生理信息數(shù)據(jù)的處理過(guò)程中,呼吸率的計(jì)算方式為每30 s 同向過(guò)零點(diǎn)的次數(shù)乘以2。同向過(guò)零點(diǎn)指上升過(guò)零點(diǎn)或下降過(guò)零點(diǎn),如圖4 所示,A點(diǎn)為上升過(guò)零點(diǎn),C點(diǎn)為下降過(guò)零點(diǎn)。
圖4 呼吸波理論波形
在實(shí)際情況下,呼吸的隨機(jī)性較大,波形形態(tài)較復(fù)雜,在較長(zhǎng)的時(shí)間跨度內(nèi)基線(xiàn)不再是一條完整的直線(xiàn),如圖5 所示。
圖5 呼吸波實(shí)際波形
本文設(shè)計(jì)零點(diǎn)檢測(cè)算法計(jì)算呼吸率。呼吸率計(jì)算的流程如圖6 所示。首先對(duì)原始呼吸信號(hào)進(jìn)行分段,在每段區(qū)間內(nèi)對(duì)呼吸波形進(jìn)行回歸分析獲得比較基線(xiàn),之后依據(jù)獲得的比較基線(xiàn)檢測(cè)過(guò)零次數(shù),根據(jù)過(guò)零次數(shù)計(jì)算得到呼吸率。
圖6 呼吸率計(jì)算流程
零點(diǎn)檢測(cè)算法的核心在于尋找波形的零點(diǎn),也即波形與基線(xiàn)的交點(diǎn)。雖然呼吸波形的基線(xiàn)在較長(zhǎng)的時(shí)間跨度內(nèi)不是一條直線(xiàn),但在一定的時(shí)間范圍內(nèi),呼吸波形的基線(xiàn)可以認(rèn)為是一條直線(xiàn),利用該范圍內(nèi)的呼吸信號(hào)數(shù)據(jù)進(jìn)行線(xiàn)性回歸分析即可得到比較基線(xiàn)。比較基線(xiàn)如圖7 所示。
圖7 呼吸波信號(hào)回歸分析獲得比較基線(xiàn)
將一定時(shí)間范圍內(nèi)的呼吸信號(hào)基線(xiàn)方程記為y=a+bx,利用最小二乘法求解回歸系數(shù)a和b。最小二乘回歸分析原理清晰,在多種領(lǐng)域均有應(yīng)用[15]。呼吸信號(hào)數(shù)據(jù)的殘差平方和為:
回歸系數(shù)a和b使得殘差平方和最小,求解得到a和b即可得到比較基線(xiàn)。得到的比較基線(xiàn)使得各呼吸信號(hào)樣本值到基線(xiàn)的歐氏距離最小。
線(xiàn)性回歸分析的時(shí)間復(fù)雜度為O(n)。
實(shí)時(shí)呼吸率的呼吸率值為最近30 s 的平均呼吸率。
將呼吸波形信號(hào)與回歸基線(xiàn)比較可得到波形同向過(guò)零點(diǎn)的次數(shù)。設(shè)最近30 s 內(nèi)呼吸波形同向過(guò)零點(diǎn)的次數(shù)為N,則呼吸率Rb為:
本節(jié)分析前述心率計(jì)算運(yùn)用的R 波檢測(cè)算法和呼吸率計(jì)算運(yùn)用的零點(diǎn)檢測(cè)算法的準(zhǔn)確率。
本文從生理遙測(cè)數(shù)據(jù)中截取10 段不重復(fù)的心電信號(hào),利用前述算法進(jìn)行R 波檢測(cè),檢測(cè)結(jié)果如表1 所示。
表1 R 波檢測(cè)結(jié)果統(tǒng)計(jì)
從結(jié)果統(tǒng)計(jì)可以看出,10 段心電數(shù)據(jù)中第8 段數(shù)據(jù)有1 次誤檢,其他數(shù)據(jù)段沒(méi)有誤檢,R 波檢測(cè)的整體準(zhǔn)確率為0.999 038。
從前述數(shù)據(jù)中截取10 段不重復(fù)的呼吸波信號(hào),利用零點(diǎn)檢測(cè)算法計(jì)算過(guò)零次數(shù),計(jì)算結(jié)果如表2 所示。
表2 零點(diǎn)檢測(cè)結(jié)果統(tǒng)計(jì)
從統(tǒng)計(jì)結(jié)果看出,10 段數(shù)據(jù)中單向過(guò)零的檢測(cè)數(shù)量全部與實(shí)際數(shù)量一致,零點(diǎn)檢測(cè)的準(zhǔn)確率為1.000 000。
根據(jù)指揮顯示數(shù)據(jù)接收處理軟件架構(gòu)設(shè)計(jì),采用Qt開(kāi)發(fā)平臺(tái),用C++語(yǔ)言開(kāi)發(fā)出了一套通用化指揮顯示數(shù)據(jù)接收與處理軟件。軟件對(duì)接收到的ECG 心電波形和呼吸波形以及心率和呼吸率的計(jì)算結(jié)果進(jìn)行實(shí)時(shí)動(dòng)態(tài)顯示,軟件的運(yùn)行環(huán)境兼容符合國(guó)產(chǎn)自主安全要求的軟硬件條件。
在指揮顯示軟件的設(shè)計(jì)和實(shí)現(xiàn)方面,心電和呼吸波形以由右至左的方式均勻滾動(dòng)顯示,其中心電波形的滾動(dòng)速度固定為25 mm/s,波形變化幅度設(shè)計(jì)為5 mm/mV、10 mm/mV、20 mm/mV 三擋可調(diào);呼吸波形的滾動(dòng)速度為心電波形滾動(dòng)速度的1/8,幅度同心電波形。軟件同步顯示心率和呼吸率的實(shí)時(shí)計(jì)算結(jié)果,并支持設(shè)置心率和呼吸率的正常值范圍,對(duì)于超出正常值范圍的實(shí)時(shí)心率和呼吸率進(jìn)行告警顯示。生理遙測(cè)數(shù)據(jù)處理顯示軟件如圖8 所示。
圖8 生理信息實(shí)時(shí)顯示
軟件支持設(shè)置1~3 名航天員生理數(shù)據(jù)源,可同時(shí)解析處理3 名航天員的實(shí)時(shí)數(shù)據(jù)。
本文利用生理遙測(cè)數(shù)據(jù)設(shè)計(jì)算法計(jì)算得到航天員的心率和呼吸率等實(shí)時(shí)生理狀態(tài),并設(shè)計(jì)顯示軟件將ECG 心電波形和呼吸波形進(jìn)行動(dòng)態(tài)直觀顯示。根據(jù)遙測(cè)數(shù)據(jù)進(jìn)行的測(cè)試結(jié)果表明,心率計(jì)算和呼吸率計(jì)算的實(shí)時(shí)性和計(jì)算精度滿(mǎn)足工程應(yīng)用的要求,解決了在國(guó)產(chǎn)自主安全軟硬件條件下快速、準(zhǔn)確計(jì)算心率和呼吸率的技術(shù)難題。研制的心率波形與呼吸率波形可視化顯示系統(tǒng)穩(wěn)定、可靠,能夠滿(mǎn)足醫(yī)學(xué)專(zhuān)家和指揮員實(shí)時(shí)、直觀掌握航天員的生理狀況的需求。