作為人體常見的電生理信號之一,光電容積脈搏波蘊含了血液微循環的細節信息,已在多種醫學場景中得到了普遍應用,準確檢測脈搏波波形并量化其形態特征是其中必不可少的步驟。本文以設計模式為原則,開發了模塊化的脈搏波預處理分析系統。系統將預處理分析過程各環節設計為相互獨立的功能模塊,以期具有兼容性與復用性。此外,本文改進了脈搏波波形的檢測過程,提出了一種基于初篩—復核—決策的新型波形檢測算法。經驗證,該算法各模塊設計合理,對波形的識別準確率高、抗干擾能力強。本文開發的模塊化脈搏波預處理分析軟件系統,可滿足不同平臺下的多種脈搏波應用研究的個性化預處理需求;提出的高準確率的新型算法也為脈搏波分析過程提供了新思路。
引用本文: 江鋒, 朱志斌, 張夢鴿, 馮靜雯, 徐藝菲, 陳杭. 一種基于新型檢測算法的模塊化的脈搏波預處理分析系統的設計與實現. 生物醫學工程學雜志, 2023, 40(3): 529-535. doi: 10.7507/1001-5515.202208034 復制
0 引言
脈搏波(photoplethysmography,PPG)是臨床監護中常用的人體電生理信號,是由于心臟周期性收縮與舒張導致血液以壓力波動的形式從主動脈傳播延伸至整個血管動脈系統而形成的[1-2]。相關研究證實,PPG的形態、強度、速率、節律等特征均能在一定程度上反映心臟的功能與狀態[1-3]。目前,PPG已在動脈硬化、高血壓、心肌梗塞等疾病監測、麻醉深度監測、子癇前期(preeclampsia,PE)檢測、情緒識別等多種醫學場景中得以應用[1-10]。準確檢測PPG波形并量化其形態特征是此類研究中必不可少的步驟,其中涉及的時頻特征參數也會隨著具體應用場景而變化[4-5, 7-10]。目前,尚無針對國內外眾多醫療器械的統一數據標準與規范,因而不同硬件設備采集的PPG數據在采樣率、采樣精度及導出的數據格式等方面存在著不小的差異。這些設備對數據采集過程中出現的人體肌電、呼吸與體動以及環境工頻等噪聲干擾的軟硬件濾波處理能力也不盡相同,因此在對PPG預處理時需要進行兼容性設計以滿足不同的研究與應用場景下的具體需求[11-12]。
本研究對PPG信號的預處理分析過程進行了模式設計,基于計算機編程語言Java 16.0.2.7(Oracle Inc., 美國)開發一種模塊化的軟件分析系統,并對數據導入、濾波處理、波形檢測及波形形態特征計算等功能模塊進行接口化設計,可依據需求進行二次開發,以期具有較好的兼容性與復用性。其中,對PPG波形的檢測過程進行了模式設計,提出一種基于初篩—復核—決策(screening-checking-deciding,SCD)的新型算法,以期實現對PPG波形高效準確的檢測。本研究為不同平臺下的多種PPG應用研究提供了一種通用的預處理分析軟件系統,同時提出一種高準確率的算法也期望可為不同場景下的脈搏波分析研究提供參考。
1 系統總體設計
1.1 需求分析
本文提及的軟件系統應具有完整的PPG預處理分析功能,包括不限于數據導入、濾波處理、特征點定位、波形檢測、波形形態特征計算及數據導出等。其次,上述功能均需保證具有可拓展性,可根據應用場景靈活選擇具體使用的處理算法、調整算法參數等。此外,系統需具備交互功能以適應不同用戶的需求,同時實現各項功能操作流程簡潔明了。最后,系統需具有跨平臺可移植性,可根據實際需求應用于不同平臺。
1.2 總體方案設計
本研究以設計模式為基本原則,將需求分析中各項PPG預處理分析功能設計為相互獨立的處理模塊。每一模塊只處理某一類特定任務,以實現功能高內聚性,并保持模塊間的松耦合性。這些處理任務也進行了接口化設計,以方便二次開發。本文所提軟件系統對PPG預處理分析的整體流程如圖1所示。為保證系統的可移植性,該軟件選用了跨平臺的Java進行各項功能的設計與開發。作為一種面向對象編程的高級設計語言,Java具有抽象與繼承等特性,支持抽象類與接口類設計,可滿足上節中多種設計需求。

1.3 波形檢測算法設計
在借鑒計算機科學領域的策略與機制分離思想的基礎上[13],本研究對PPG波形的檢測過程進行了模式設計,提出了一種新型SCD算法。SCD算法以“寬進嚴出”為原則,通過初篩、復核及決策等機制檢測有效PPG波形,其處理流程圖如圖2所示。SCD算法對各機制下使用的具體策略不做過多限制,支持直接更改初篩算法,增刪復核標準,切換決策策略等設置,保證了SCD算法的適用性與調整的靈活性,使高效準確地檢測受到干擾或存在畸變的PPG數據成為可能。

2 設計模式應用與模塊設計
設計模式是計算機軟件設計中對某些特定問題的優化解決方案的總結[14-15]。本研究選取了模板方法(template method)、工廠方法(factory method)及單例程模式(singleton)等三種經典設計模式優化了PPG預處理分析系統的研發設計過程[15]。
2.1 模板方法
模板方法的基本原則是預定義一個操作中算法的骨架,而延遲實現其中的關鍵步驟。以PPG濾波處理為例,本研究在濾波過程所對應的抽象基類中定義了模板方法。而模板方法定義了濾波過程的算法骨架,負責調用基類中的濾波方法與評價濾波效果的相關方法等,如圖3所示。基類中的濾波方法被定義為抽象方法,真正的業務方法必須在基類的具體子類中實現。當主程序進行濾波時,只需實例化特定子類后,在子類中調用上述模板方法。常用于評價濾波效果的均方誤差(mean-square error, MSE)與信噪比(signal noise ratio,SNR)等指標可以設計為濾波基類的業務方法;而帶通濾波器、小波濾波器等多種經典濾波算法可以在不同的濾波子類濾波方法中實現[16-19]。這種機制延遲實現了濾波的具體處理過程,隔離了濾波模塊對系統其他功能的影響,也保證了系統整體的靈活性。

2.2 工廠方法模式
工廠方法的原則是定義一個用于創建對象的接口,讓子類決定具體實例化的類。以如圖2所示的SCD波形檢測算法流程為例,初篩、復核及決策階段均按上述模板方法進行了設計,各階段的具體業務方法均在對應的具體子類中得到實現。在SCD算法運行時,這些子類并不是直接被實例化,而是作為特殊的“產品”,由一個額外的工廠方法基類完成生產。該工廠方法基類中定義了用于實例化、初始化這些產品的抽象生產方法,該抽象方法必須在工廠方法基類的子類中實現。若需設置或改變所需產品,只需在工廠方法基類的不同子類中調整生產過程,如圖4所示。對SCD算法而言,在初篩及決策階段對應的工廠類中,生產方法只返回一個產品對象;而在復核階段對應的工廠方法基類中,生產方法則以列表的形式同時返回了多個產品對象。

2.3 單例程模式
單例程模式的原則是保證一個類僅有一個實例,并提供該實例唯一的全局訪問點。單例程模式在PPG形態特征計算模塊得到了應用。由于PPG時域特征種類繁多,本研究在時域特征的抽象基類中定義了模板方法,由模板方法負責調用特征的計算方法。計算方法在基類中被定義為抽象方法,也必須在具體的特征子類中實現。而PPG時域特征的計算過程與其定義完全綁定,在處理不同PPG波形時創建不同特征實例是對內存資源的浪費。因此,本研究使用單例程模式該過程進行了設計,如圖5所示。單例程類自身不提供顯式的構造方法,此前所有可用特征的實例化過程被設計為單例程類的生產方法,且該方法只能作為類方法被調用。在初次被調用時,生產方法會創建并保存單例程類本身的一個全局對象,并由全局對象完成生產返回所需產品;此后的調用直接均由全局對象完成生產。單例程模式可以提升軟件系統的工作效率、降低內存資源的消耗。

3 SCD波形檢測算法的具體實現
準確地檢測PPG波形是分析研究PPG的前提。多數波形檢測算法一般會一次性完成PPG波形分析與檢測,而對結果的校驗需全部由人工完成[2-3, 7-8, 10]。在處理受到干擾或存在畸變的PPG數據時,此類算法的檢測性能通常也會下降。為改進這些問題,本研究提出了一種新型SCD算法,該算法由初篩、復核與決策等三部分組成。其中,初篩階段可初步確定PPG波形;復核階段利用多種形態學特征,將初篩結果定性描述為有效波形或異常干擾;決策階段則是按照一定的策略從上述定性描述中最終確定有效波形。因此,SCD算法可以視為一個廣義上的監督學習模型的訓練與應用過程[20]。其中,多種形態學特征的復核結果對應著模型的輸入數據;決策階段使用的策略對應著模型的訓練算法;確定有效波形的決策過程則對應著模型在新數據集上的應用過程;而復核與決策階段涉及的多項具體數值可以視為該模型的超參數。本研究基于自主試驗數據確定了這些超參數的具體數值(參見3.4.1小節)。
3.1 初篩
在初篩階段,SCD算法通過搜索窗定位PPG的波峰與波谷,再從原始數據中確定波形。其中,與局部極大值對應的波峰的定位步驟如下:① 從前向后遍歷原始數據的一階導數直至尋找到從正轉負的過零點,該點鄰域內必然存在局部極大值。② 為避免錯誤識別重博波峰,定義兩個窗長分別為0.1 s與0.3 s的搜索窗,以 ① 中過零點為中心,搜索窗內最大值的位置坐標。③ 若兩個搜索窗返回的坐標一致,可確定該坐標處存在著一個波峰。④ 從 ① 中過零點處開始新一輪的檢測。對與局部極小值對應的波谷的定位與上述過程類似,故不在此贅述。
3.2 復核
由于PPG是一種平穩隨機信號,短時間內采樣得到的數據波形理應具有較高的相似度[21]。而有效PPG波形與干擾、畸變信號在形態特征、統計特征上往往存在著一定差異,存在通過軟件算法進行智能識別區分的理論可行性。因此,SCD算法設計了PPG波形的多種形態學特征,并以這些特征為標準對初篩結果進行復核。
3.2.1 功率
功率標準描述了PPG波形的能量均值,也即波形內所有采樣點的幅值平方的均值,其計算過程如式(1)所示:
![]() |
其中,P為當前PPG波形功率值,n為該波形的采樣點數,xi為該波形每個采樣點的幅值。
3.2.2 標準差
標準差標準描述了PPG波形中交流成分的平均幅值[1],是對上述功率標準的補充,其計算過程如式(2)所示:
![]() |
其中,S為當前PPG波形功率值,n為該波形的采樣點數,xi為該波形每個采樣點的幅值,為該波形內所有采樣點的幅值均值。
3.2.3 波峰相對位置
由于血管回流作用,PPG 波形的下降支會較上升支持續時間更長,波峰必然出現在PPG波形的前半段。而波峰在PPG波形的相對位置如式(4)所示:
![]() |
其中,R為當前PPG波形的波峰相對位置,n為該波形的采樣點數,np為該波形波峰所對應的采樣點下標值。
3.2.4 基線漂移程度
基線漂移程度衡量了PPG波形起點與終點幅值差異,可量化PPG波形受到干擾的程度,如式(4)~式(6)所示:
![]() |
![]() |
![]() |
其中,B1是對當前PPG波形的基線漂移程度的絕對數值衡量,B2與B3均是對當前PPG波形的基線漂移程度的相對數值衡量。而xp、xs與xe分別為PPG的波峰、起點與終點處幅值,xl為xs與xe中數值較小者。
3.2.5 有效波形判斷
復核階段進行有效波形判斷時,使用的是上述PPG的形態學特征基于數值比較的邏輯值,而非其具體數值。這是由于PPG波形個體差異性較為明顯;同時,在上述特征上,同一個體的有效PPG波形與干擾、畸變信號也存在著較為明顯的數值差異。使用具體特征標準進行復核的步驟如下:①計算當前個體的所有PPG波形對應的特征值。②將①中所有數值排序后,選取部分數值計算均值。③依次將所有特征值與該均值進行比較,若特征值在均值的一定區間內,對應的波形才會被判斷為有效波形(輸出0);否則會被判為異常干擾(輸出1)。復核階段的超參數數值如表1所示。

3.3 決策
本研究在決策階段使用了一定的處理策略,基于復核的邏輯輸出,最終確定PPG波形是否為有效波形。由于復核與決策的輸出均為邏輯值0或1,可用的處理策略包括基于數值組合直接判斷、投票表決及訓練監督學習模型等[20]。
本研究選擇使用加權投票策略進行決策,具體過程如下:① 按復核流程計算當前波形在各標準上的邏輯輸出。② 將復核標準P與S的邏輯與運算結果計為E,將復核標準B1、B2與B3的邏輯與計算結果計為B。③ 按照0.3、0.5、0.2的權重對 ② 中得到的E、B及復核標準R進行加權計算,將結果計為Y。④ 若Y<0.5,當前波形會被判斷為有效波形;否則,會被判為異常干擾。⑤ 考慮到在進行與運算時,多個復核結果同時為1的特殊情況,若P與S的數值加法結果為2或B1、B2與B3的數值加法結果超過2,當前波形也會被判斷為異常干擾。
3.4 驗證與評估
本研究基于自主試驗的PPG數據設計研發了SCD算法,同時利用公開數據集對算法的檢測結果與性能進行了驗證與評估。此外,本研究也選取了兩種有代表性的PPG檢測算法與SCD算法進行了橫向對比驗證。
3.4.1 自主試驗數據
為探尋借助PPG信號分析孕婦在妊娠期間的PE病發可能[8, 22],本研究于2017年5月—2019年6月期間在浙江大學醫學院附屬婦產科醫院進行了臨床數據采集試驗。本研究數據采集過程通過了浙江大學醫學院附屬婦產科醫院醫學倫理委員會的審批(批文編號:20170131),所有參與試驗的孕婦均知曉本研究目的及具體試驗流程的情況,并簽署了知情同意書。針對30~35孕周的孕婦,按其是否患有PE分為試驗組與對照組。數據采集前,孕婦作為受試者需先靜坐至少5 min,隨后在其左手食指通過透射式血氧探頭采集PPG數據,單次采集時長不短于1 min。數據采集通過多生理參數監護儀(B650, General Electric Inc.,美國)完成,采樣率為100 Hz。本次臨床數據采集共獲取有效數據79條。經統計,這批數據共有有效PPG 波形計7 864個。
3.4.2 公開數據集
無袖帶血壓估計驗證數據集(cuffless blood pressure estimation data set,CBPEDS)是美國加州大學歐文分校機器學習數據庫上的一個可公開使用的數據集,是Kachuee等[23]于2015年在重癥監護醫療信息數據庫(medical information mart for intensive care,MIMIC)[24]的基礎上二次開發而來。CBPEDS一共包含12 000條數據記錄,每條記錄包含PPG、有創動脈血壓與心電等三通道數據,采樣率均為125 Hz,單條數據記錄時長范圍是1~10 min不等。由于CBPEDS數據記錄量較大,本研究僅以其中前50條數據記錄為代表進行PPG檢波算法的性能評估,這部分數據共有有效PPG波形計17 562個。
3.4.3 其他PPG檢波算法
差分法、閾值法、移動窗法與數字濾波法等是PPG檢波時最為常用的基本方法[4-5, 10, 18-19, 22, 25-26]。本研究選取了兩種有代表性并提供完整代碼的PPG檢波算法與SCD算法進行對比分析,包括本研究團隊的陳婉琳等[4-5]此前提出的雙移動時間窗算法(dual moving time-window, DMTW)(0.5,浙江大學,中國)與van Gent等[25-26]提出的一種基于數字濾波器與離群點檢測的PPG檢波算法HeartPy(1.2.5,MIT license, 荷蘭)。
3.4.4 對比與分析
SCD算法較DMTW算法與HeartPy算法的優勢主要體現在對包含噪聲干擾與畸變的PPG信號的準確識別上。使用這三種算法檢測自主試驗數據與CBPEDS數據的結果存在一定的差異,如圖6所示。由于HeartPy算法的本身輸出限制,圖6只標注了HeartPy算法檢測出的PPG波形的波峰位置,有效波峰與異常波峰分別用黑色與紅色進行了標注。而SCD算法與DMTW算法檢測出的有效PPG波形均在圖6中用虛線進行了框選,其中黑色虛線表示兩種算法對PPG波形的識別判斷完全一致,紅色虛線表示兩種算法的檢測結果出現了分歧。

從整體檢測準確率來看,SCD算法較另外兩種算法也具有一定的性能優勢。統計三種算法在自主試驗數據與CBPEDS數據上的錯檢波形數目,可得到對應算法的整體檢測準確率,如表2所示。從表2中可以發現,SCD算法的錯檢波形數目最少,識別的準確率最高。

此外,由于CBPEDS本身是重癥監護患者的臨床醫學數據記錄,部分患者的PPG數據波形畸變嚴重,顯著異于常人,如圖7所示。SCD算法可以準確地識別這些異常波形,不進行波形標注。由于如圖7所示的異常數據不在本研究選作算法性能評估的50條數據內,SCD算法的檢測結果未能在如表2所示的統計值中得以體現。

4 討論與結論
本研究遵循低耦合、高內聚的軟件設計原則,運用模板方法、工廠方法及單例程等設計模式,開發了一種模塊化的PPG預處理分析系統。該系統將PPG預處理分析過程各環節設置為相互獨立的功能模塊,并對功能模塊進行了接口化設計,保證了系統的兼容性與復用性,可滿足不同研究背景下對PPG預處理的需求。該系統基于Java開發,可根據實際需求應用于PC端、服務器端與移動端等多種平臺。
此外,本研究對PPG波形的檢測過程進行了模式設計,提出了一種新型SCD算法,算法由初篩、復核與決策等三部分組成。在初篩時,通過搜索窗的方法確定波形;在復核時,通過功率、標準差、波峰相對位置與基線漂移程度等PPG形態學特征,區分有效波形與異常干擾;在決策時,通過加權投票的策略確定PPG波形是否為有效波形。SCD算法可根據使用場景進行二次開發,支持更改初篩算法、增刪復核標準與切換決策策略等設置。經驗證,該算法各模塊設計合理,與其他算法對比結果表明,對PPG波形的識別準確率高、抗干擾能力強。SCD算法為多平臺、多研究應用下的PPG分析檢測的不同場景提供了一定的參考。
重要聲明
利益沖突聲明:本文全體作者均聲明不存在利益沖突。
作者貢獻聲明:江鋒負責了臨床數據采集工作及PPG處理算法的開發;朱志斌負責了軟件模式的設計及算法開發;馮靜雯負責實驗數據的校驗及軟件算法性能測試;張夢鴿與徐藝菲負責了本文所有圖表的繪制;陳杭負責了實驗設計及對接、文章撰寫。
倫理聲明:本研究涉及的數據采集試驗通過了浙江大學附屬婦產科醫院醫學倫理委員會的審批(批文編號:20170131)。
0 引言
脈搏波(photoplethysmography,PPG)是臨床監護中常用的人體電生理信號,是由于心臟周期性收縮與舒張導致血液以壓力波動的形式從主動脈傳播延伸至整個血管動脈系統而形成的[1-2]。相關研究證實,PPG的形態、強度、速率、節律等特征均能在一定程度上反映心臟的功能與狀態[1-3]。目前,PPG已在動脈硬化、高血壓、心肌梗塞等疾病監測、麻醉深度監測、子癇前期(preeclampsia,PE)檢測、情緒識別等多種醫學場景中得以應用[1-10]。準確檢測PPG波形并量化其形態特征是此類研究中必不可少的步驟,其中涉及的時頻特征參數也會隨著具體應用場景而變化[4-5, 7-10]。目前,尚無針對國內外眾多醫療器械的統一數據標準與規范,因而不同硬件設備采集的PPG數據在采樣率、采樣精度及導出的數據格式等方面存在著不小的差異。這些設備對數據采集過程中出現的人體肌電、呼吸與體動以及環境工頻等噪聲干擾的軟硬件濾波處理能力也不盡相同,因此在對PPG預處理時需要進行兼容性設計以滿足不同的研究與應用場景下的具體需求[11-12]。
本研究對PPG信號的預處理分析過程進行了模式設計,基于計算機編程語言Java 16.0.2.7(Oracle Inc., 美國)開發一種模塊化的軟件分析系統,并對數據導入、濾波處理、波形檢測及波形形態特征計算等功能模塊進行接口化設計,可依據需求進行二次開發,以期具有較好的兼容性與復用性。其中,對PPG波形的檢測過程進行了模式設計,提出一種基于初篩—復核—決策(screening-checking-deciding,SCD)的新型算法,以期實現對PPG波形高效準確的檢測。本研究為不同平臺下的多種PPG應用研究提供了一種通用的預處理分析軟件系統,同時提出一種高準確率的算法也期望可為不同場景下的脈搏波分析研究提供參考。
1 系統總體設計
1.1 需求分析
本文提及的軟件系統應具有完整的PPG預處理分析功能,包括不限于數據導入、濾波處理、特征點定位、波形檢測、波形形態特征計算及數據導出等。其次,上述功能均需保證具有可拓展性,可根據應用場景靈活選擇具體使用的處理算法、調整算法參數等。此外,系統需具備交互功能以適應不同用戶的需求,同時實現各項功能操作流程簡潔明了。最后,系統需具有跨平臺可移植性,可根據實際需求應用于不同平臺。
1.2 總體方案設計
本研究以設計模式為基本原則,將需求分析中各項PPG預處理分析功能設計為相互獨立的處理模塊。每一模塊只處理某一類特定任務,以實現功能高內聚性,并保持模塊間的松耦合性。這些處理任務也進行了接口化設計,以方便二次開發。本文所提軟件系統對PPG預處理分析的整體流程如圖1所示。為保證系統的可移植性,該軟件選用了跨平臺的Java進行各項功能的設計與開發。作為一種面向對象編程的高級設計語言,Java具有抽象與繼承等特性,支持抽象類與接口類設計,可滿足上節中多種設計需求。

1.3 波形檢測算法設計
在借鑒計算機科學領域的策略與機制分離思想的基礎上[13],本研究對PPG波形的檢測過程進行了模式設計,提出了一種新型SCD算法。SCD算法以“寬進嚴出”為原則,通過初篩、復核及決策等機制檢測有效PPG波形,其處理流程圖如圖2所示。SCD算法對各機制下使用的具體策略不做過多限制,支持直接更改初篩算法,增刪復核標準,切換決策策略等設置,保證了SCD算法的適用性與調整的靈活性,使高效準確地檢測受到干擾或存在畸變的PPG數據成為可能。

2 設計模式應用與模塊設計
設計模式是計算機軟件設計中對某些特定問題的優化解決方案的總結[14-15]。本研究選取了模板方法(template method)、工廠方法(factory method)及單例程模式(singleton)等三種經典設計模式優化了PPG預處理分析系統的研發設計過程[15]。
2.1 模板方法
模板方法的基本原則是預定義一個操作中算法的骨架,而延遲實現其中的關鍵步驟。以PPG濾波處理為例,本研究在濾波過程所對應的抽象基類中定義了模板方法。而模板方法定義了濾波過程的算法骨架,負責調用基類中的濾波方法與評價濾波效果的相關方法等,如圖3所示。基類中的濾波方法被定義為抽象方法,真正的業務方法必須在基類的具體子類中實現。當主程序進行濾波時,只需實例化特定子類后,在子類中調用上述模板方法。常用于評價濾波效果的均方誤差(mean-square error, MSE)與信噪比(signal noise ratio,SNR)等指標可以設計為濾波基類的業務方法;而帶通濾波器、小波濾波器等多種經典濾波算法可以在不同的濾波子類濾波方法中實現[16-19]。這種機制延遲實現了濾波的具體處理過程,隔離了濾波模塊對系統其他功能的影響,也保證了系統整體的靈活性。

2.2 工廠方法模式
工廠方法的原則是定義一個用于創建對象的接口,讓子類決定具體實例化的類。以如圖2所示的SCD波形檢測算法流程為例,初篩、復核及決策階段均按上述模板方法進行了設計,各階段的具體業務方法均在對應的具體子類中得到實現。在SCD算法運行時,這些子類并不是直接被實例化,而是作為特殊的“產品”,由一個額外的工廠方法基類完成生產。該工廠方法基類中定義了用于實例化、初始化這些產品的抽象生產方法,該抽象方法必須在工廠方法基類的子類中實現。若需設置或改變所需產品,只需在工廠方法基類的不同子類中調整生產過程,如圖4所示。對SCD算法而言,在初篩及決策階段對應的工廠類中,生產方法只返回一個產品對象;而在復核階段對應的工廠方法基類中,生產方法則以列表的形式同時返回了多個產品對象。

2.3 單例程模式
單例程模式的原則是保證一個類僅有一個實例,并提供該實例唯一的全局訪問點。單例程模式在PPG形態特征計算模塊得到了應用。由于PPG時域特征種類繁多,本研究在時域特征的抽象基類中定義了模板方法,由模板方法負責調用特征的計算方法。計算方法在基類中被定義為抽象方法,也必須在具體的特征子類中實現。而PPG時域特征的計算過程與其定義完全綁定,在處理不同PPG波形時創建不同特征實例是對內存資源的浪費。因此,本研究使用單例程模式該過程進行了設計,如圖5所示。單例程類自身不提供顯式的構造方法,此前所有可用特征的實例化過程被設計為單例程類的生產方法,且該方法只能作為類方法被調用。在初次被調用時,生產方法會創建并保存單例程類本身的一個全局對象,并由全局對象完成生產返回所需產品;此后的調用直接均由全局對象完成生產。單例程模式可以提升軟件系統的工作效率、降低內存資源的消耗。

3 SCD波形檢測算法的具體實現
準確地檢測PPG波形是分析研究PPG的前提。多數波形檢測算法一般會一次性完成PPG波形分析與檢測,而對結果的校驗需全部由人工完成[2-3, 7-8, 10]。在處理受到干擾或存在畸變的PPG數據時,此類算法的檢測性能通常也會下降。為改進這些問題,本研究提出了一種新型SCD算法,該算法由初篩、復核與決策等三部分組成。其中,初篩階段可初步確定PPG波形;復核階段利用多種形態學特征,將初篩結果定性描述為有效波形或異常干擾;決策階段則是按照一定的策略從上述定性描述中最終確定有效波形。因此,SCD算法可以視為一個廣義上的監督學習模型的訓練與應用過程[20]。其中,多種形態學特征的復核結果對應著模型的輸入數據;決策階段使用的策略對應著模型的訓練算法;確定有效波形的決策過程則對應著模型在新數據集上的應用過程;而復核與決策階段涉及的多項具體數值可以視為該模型的超參數。本研究基于自主試驗數據確定了這些超參數的具體數值(參見3.4.1小節)。
3.1 初篩
在初篩階段,SCD算法通過搜索窗定位PPG的波峰與波谷,再從原始數據中確定波形。其中,與局部極大值對應的波峰的定位步驟如下:① 從前向后遍歷原始數據的一階導數直至尋找到從正轉負的過零點,該點鄰域內必然存在局部極大值。② 為避免錯誤識別重博波峰,定義兩個窗長分別為0.1 s與0.3 s的搜索窗,以 ① 中過零點為中心,搜索窗內最大值的位置坐標。③ 若兩個搜索窗返回的坐標一致,可確定該坐標處存在著一個波峰。④ 從 ① 中過零點處開始新一輪的檢測。對與局部極小值對應的波谷的定位與上述過程類似,故不在此贅述。
3.2 復核
由于PPG是一種平穩隨機信號,短時間內采樣得到的數據波形理應具有較高的相似度[21]。而有效PPG波形與干擾、畸變信號在形態特征、統計特征上往往存在著一定差異,存在通過軟件算法進行智能識別區分的理論可行性。因此,SCD算法設計了PPG波形的多種形態學特征,并以這些特征為標準對初篩結果進行復核。
3.2.1 功率
功率標準描述了PPG波形的能量均值,也即波形內所有采樣點的幅值平方的均值,其計算過程如式(1)所示:
![]() |
其中,P為當前PPG波形功率值,n為該波形的采樣點數,xi為該波形每個采樣點的幅值。
3.2.2 標準差
標準差標準描述了PPG波形中交流成分的平均幅值[1],是對上述功率標準的補充,其計算過程如式(2)所示:
![]() |
其中,S為當前PPG波形功率值,n為該波形的采樣點數,xi為該波形每個采樣點的幅值,為該波形內所有采樣點的幅值均值。
3.2.3 波峰相對位置
由于血管回流作用,PPG 波形的下降支會較上升支持續時間更長,波峰必然出現在PPG波形的前半段。而波峰在PPG波形的相對位置如式(4)所示:
![]() |
其中,R為當前PPG波形的波峰相對位置,n為該波形的采樣點數,np為該波形波峰所對應的采樣點下標值。
3.2.4 基線漂移程度
基線漂移程度衡量了PPG波形起點與終點幅值差異,可量化PPG波形受到干擾的程度,如式(4)~式(6)所示:
![]() |
![]() |
![]() |
其中,B1是對當前PPG波形的基線漂移程度的絕對數值衡量,B2與B3均是對當前PPG波形的基線漂移程度的相對數值衡量。而xp、xs與xe分別為PPG的波峰、起點與終點處幅值,xl為xs與xe中數值較小者。
3.2.5 有效波形判斷
復核階段進行有效波形判斷時,使用的是上述PPG的形態學特征基于數值比較的邏輯值,而非其具體數值。這是由于PPG波形個體差異性較為明顯;同時,在上述特征上,同一個體的有效PPG波形與干擾、畸變信號也存在著較為明顯的數值差異。使用具體特征標準進行復核的步驟如下:①計算當前個體的所有PPG波形對應的特征值。②將①中所有數值排序后,選取部分數值計算均值。③依次將所有特征值與該均值進行比較,若特征值在均值的一定區間內,對應的波形才會被判斷為有效波形(輸出0);否則會被判為異常干擾(輸出1)。復核階段的超參數數值如表1所示。

3.3 決策
本研究在決策階段使用了一定的處理策略,基于復核的邏輯輸出,最終確定PPG波形是否為有效波形。由于復核與決策的輸出均為邏輯值0或1,可用的處理策略包括基于數值組合直接判斷、投票表決及訓練監督學習模型等[20]。
本研究選擇使用加權投票策略進行決策,具體過程如下:① 按復核流程計算當前波形在各標準上的邏輯輸出。② 將復核標準P與S的邏輯與運算結果計為E,將復核標準B1、B2與B3的邏輯與計算結果計為B。③ 按照0.3、0.5、0.2的權重對 ② 中得到的E、B及復核標準R進行加權計算,將結果計為Y。④ 若Y<0.5,當前波形會被判斷為有效波形;否則,會被判為異常干擾。⑤ 考慮到在進行與運算時,多個復核結果同時為1的特殊情況,若P與S的數值加法結果為2或B1、B2與B3的數值加法結果超過2,當前波形也會被判斷為異常干擾。
3.4 驗證與評估
本研究基于自主試驗的PPG數據設計研發了SCD算法,同時利用公開數據集對算法的檢測結果與性能進行了驗證與評估。此外,本研究也選取了兩種有代表性的PPG檢測算法與SCD算法進行了橫向對比驗證。
3.4.1 自主試驗數據
為探尋借助PPG信號分析孕婦在妊娠期間的PE病發可能[8, 22],本研究于2017年5月—2019年6月期間在浙江大學醫學院附屬婦產科醫院進行了臨床數據采集試驗。本研究數據采集過程通過了浙江大學醫學院附屬婦產科醫院醫學倫理委員會的審批(批文編號:20170131),所有參與試驗的孕婦均知曉本研究目的及具體試驗流程的情況,并簽署了知情同意書。針對30~35孕周的孕婦,按其是否患有PE分為試驗組與對照組。數據采集前,孕婦作為受試者需先靜坐至少5 min,隨后在其左手食指通過透射式血氧探頭采集PPG數據,單次采集時長不短于1 min。數據采集通過多生理參數監護儀(B650, General Electric Inc.,美國)完成,采樣率為100 Hz。本次臨床數據采集共獲取有效數據79條。經統計,這批數據共有有效PPG 波形計7 864個。
3.4.2 公開數據集
無袖帶血壓估計驗證數據集(cuffless blood pressure estimation data set,CBPEDS)是美國加州大學歐文分校機器學習數據庫上的一個可公開使用的數據集,是Kachuee等[23]于2015年在重癥監護醫療信息數據庫(medical information mart for intensive care,MIMIC)[24]的基礎上二次開發而來。CBPEDS一共包含12 000條數據記錄,每條記錄包含PPG、有創動脈血壓與心電等三通道數據,采樣率均為125 Hz,單條數據記錄時長范圍是1~10 min不等。由于CBPEDS數據記錄量較大,本研究僅以其中前50條數據記錄為代表進行PPG檢波算法的性能評估,這部分數據共有有效PPG波形計17 562個。
3.4.3 其他PPG檢波算法
差分法、閾值法、移動窗法與數字濾波法等是PPG檢波時最為常用的基本方法[4-5, 10, 18-19, 22, 25-26]。本研究選取了兩種有代表性并提供完整代碼的PPG檢波算法與SCD算法進行對比分析,包括本研究團隊的陳婉琳等[4-5]此前提出的雙移動時間窗算法(dual moving time-window, DMTW)(0.5,浙江大學,中國)與van Gent等[25-26]提出的一種基于數字濾波器與離群點檢測的PPG檢波算法HeartPy(1.2.5,MIT license, 荷蘭)。
3.4.4 對比與分析
SCD算法較DMTW算法與HeartPy算法的優勢主要體現在對包含噪聲干擾與畸變的PPG信號的準確識別上。使用這三種算法檢測自主試驗數據與CBPEDS數據的結果存在一定的差異,如圖6所示。由于HeartPy算法的本身輸出限制,圖6只標注了HeartPy算法檢測出的PPG波形的波峰位置,有效波峰與異常波峰分別用黑色與紅色進行了標注。而SCD算法與DMTW算法檢測出的有效PPG波形均在圖6中用虛線進行了框選,其中黑色虛線表示兩種算法對PPG波形的識別判斷完全一致,紅色虛線表示兩種算法的檢測結果出現了分歧。

從整體檢測準確率來看,SCD算法較另外兩種算法也具有一定的性能優勢。統計三種算法在自主試驗數據與CBPEDS數據上的錯檢波形數目,可得到對應算法的整體檢測準確率,如表2所示。從表2中可以發現,SCD算法的錯檢波形數目最少,識別的準確率最高。

此外,由于CBPEDS本身是重癥監護患者的臨床醫學數據記錄,部分患者的PPG數據波形畸變嚴重,顯著異于常人,如圖7所示。SCD算法可以準確地識別這些異常波形,不進行波形標注。由于如圖7所示的異常數據不在本研究選作算法性能評估的50條數據內,SCD算法的檢測結果未能在如表2所示的統計值中得以體現。

4 討論與結論
本研究遵循低耦合、高內聚的軟件設計原則,運用模板方法、工廠方法及單例程等設計模式,開發了一種模塊化的PPG預處理分析系統。該系統將PPG預處理分析過程各環節設置為相互獨立的功能模塊,并對功能模塊進行了接口化設計,保證了系統的兼容性與復用性,可滿足不同研究背景下對PPG預處理的需求。該系統基于Java開發,可根據實際需求應用于PC端、服務器端與移動端等多種平臺。
此外,本研究對PPG波形的檢測過程進行了模式設計,提出了一種新型SCD算法,算法由初篩、復核與決策等三部分組成。在初篩時,通過搜索窗的方法確定波形;在復核時,通過功率、標準差、波峰相對位置與基線漂移程度等PPG形態學特征,區分有效波形與異常干擾;在決策時,通過加權投票的策略確定PPG波形是否為有效波形。SCD算法可根據使用場景進行二次開發,支持更改初篩算法、增刪復核標準與切換決策策略等設置。經驗證,該算法各模塊設計合理,與其他算法對比結果表明,對PPG波形的識別準確率高、抗干擾能力強。SCD算法為多平臺、多研究應用下的PPG分析檢測的不同場景提供了一定的參考。
重要聲明
利益沖突聲明:本文全體作者均聲明不存在利益沖突。
作者貢獻聲明:江鋒負責了臨床數據采集工作及PPG處理算法的開發;朱志斌負責了軟件模式的設計及算法開發;馮靜雯負責實驗數據的校驗及軟件算法性能測試;張夢鴿與徐藝菲負責了本文所有圖表的繪制;陳杭負責了實驗設計及對接、文章撰寫。
倫理聲明:本研究涉及的數據采集試驗通過了浙江大學附屬婦產科醫院醫學倫理委員會的審批(批文編號:20170131)。