目錄
1、引言
2、數據庫介紹(Apnea-ECG Database)
3、基于Pan-Tompkins和隨機森林(RF)的睡眠呼吸暫停檢測算法
3.1 算法概述
3.2 心電信號預處理及QRS波檢測算法
3.3 心電信號的隨機森林睡眠呼吸暫停識別
4、實驗結果
4.1 心電信號預處理及QRS波檢測結果
4.2 睡眠呼吸暫停分類結果
4.3 實驗結果評估
參考文獻
1、引言
????????睡眠呼吸暫停綜合征(Sleep Apnea Syndrome, SAS)是一種常見睡眠障礙,涵蓋阻塞性、中樞性和混合型等多種類型,以阻塞性最為常見。患者睡眠中反復出現呼吸暫停或低通氣,導致身體生理功能紊亂,引發白天嗜睡、疲勞、頭痛、認知障礙等,長期會增加心血管、代謝和神經系統疾病風險,嚴重威脅健康[1]。目前,多導睡眠監測(Polysomnography, PSG)是診斷 SAS 的金標準,可同步記錄多種生理信號,全面評估睡眠和呼吸狀態。但 PSG 設備昂貴、操作復雜、耗時且可能干擾患者睡眠,影響結果客觀性,限制了其廣泛應用[2]。
圖1:睡眠呼吸暫停患者正在佩戴呼吸機
????????睡眠呼吸暫停事件會引發自主神經系統的顯著變化,這種變化直接反映在心電信號中[3]。當呼吸暫停發生時:
-
血氧飽和度下降激活頸動脈體化學感受器
-
交感神經興奮性增強導致心率變異性改變
-
胸腔內壓劇烈波動引起R波幅度變化
-
呼吸運動缺失使ECG信號中0.15-0.4Hz頻段能量降低
????????鑒于此,本文提出一種基于Pan-Tompkins和隨機森林(Random?Forest,RF)算法的睡眠呼吸暫停檢測算法,通過心電(ECG)數據預處理、特征提取及模型構建訓練,實現有效分類識別,旨在提供一種高效便捷的檢測手段,提高診斷效率、降低成本,助力 SAS 早期篩查與診斷,具有重要臨床意義。
2、數據庫介紹(Apnea-ECG Database)
????????該數據集包含 70 條記錄,分為一個包含 35 條記錄的學習集(a01 至 a20,b01 至 b05,以及 c01 至 c10)和一個包含 35 條記錄的測試集(x01 至 x35)。所有記錄均可從本頁面下載。每條記錄的時長在略不足 7 小時到近 10 小時之間不等。
????????每條記錄包含:
-
一條連續的數字化心電圖(ECG)信號
-
一組呼吸暫停標注(由人類專家基于同步記錄的呼吸及相關信號得出)
-
一組機器生成的 QRS 波標注(所有心跳無論類型均標記為“正常”)
????????此外,有八條記錄(a01 至 a04, b01, 以及 c01 至 c03)額外附帶了四條信號:
-
Resp C 和 Resp A:使用感應式體積描記法(inductance plethysmography)獲取的胸部和腹部呼吸努力信號
-
Resp N:使用鼻熱敏傳感器(nasal thermistors)測量的口鼻氣流信號
-
SpO2:血氧飽和度信號
3、基于Pan-Tompkins和隨機森林(RF)的睡眠呼吸暫停檢測算法
3.1 算法概述
????????本算法實現了基于Pan-Tompkins和隨機森林(RF)的睡眠呼吸暫停檢測算法,主要流程包括信號預處理及QRS波檢測和睡眠呼吸暫停分類兩個部分。其中,Pan-Tompkins算法用于信號預處理和檢測QRS波,隨機森林分類算法用于睡眠呼吸暫停檢測。
????????算法流程框圖如下:
圖2:睡眠呼吸暫停檢測算法流程框圖
? ? ? ? (1)信號預處理:通過Pan-Tompkins算法對心電信號進行預處理,可以提高QRS波和RR間隔的檢測準確率,并且減少噪聲干擾的影響,為后續疾病診斷和判別提供更加可靠的數據基礎。
? ? ? ? (2)Pan-Tompkins算法:利用濾波器和移動平均器來增強QRS波信號,通過閾值檢測來確定QRS波的位置,在心電信號處理領域被廣泛應用。
? ? ? ? (3)睡眠呼吸暫停檢測:采用隨機森林分類器來判斷是否存在睡眠呼吸暫停現象。通過隨機選取特征子集進行訓練,得到多個決策樹模型,然后將這些模型組成一個隨機森林分類器。
????????最終可以得到睡眠呼吸暫停的檢測結果。整個算法的輸入為心電信號,輸出為睡眠呼吸暫停檢測結果。
3.2 心電信號預處理及QRS波檢測算法
????????Pam-Tompkins算法是一種經典的心電信號處理算法,用于定位和檢測QRS波[4]。
圖3:心電信號預處理及QRS波檢測算法流程框圖
????????相關內容詳情見我博客👇
「ECG信號處理——(10)Pan-Tompkins算法(R峰檢測)」2025年3月17日-CSDN博客
????????以下是Pan-Tompkins算法的簡要步驟:
????????(1)心電信號預處理。利用濾波器對信號進行預處理,以消除基線偏移和高頻噪聲。
????????(2)R峰定位。對信號進行微分,然后應用一個帶寬限制的移動平均濾波器。過濾掉QRS波的尖峰和高頻噪聲,確定R峰的位置。
????????(3)定位QRS波群。利用QRS波組的形態和周期性,以及R峰的位置,識別Q波與S波,然后將每個QRS波組拆分為Q-R波和R-S波。
????????(4)匹配QRS波群心率。通過計算QRS波群之間的時間間隔,即RR間期。
????????(5)后處理和重采樣。最后對QRS波群進行后處理和重采樣。
圖4:Pan-Tompkins算法流程圖
3.3 心電信號的隨機森林睡眠呼吸暫停識別
????????隨機森林(Random?Forest,RF)是一種集成學習算法,核心思想是在隨機的特征子集和隨機的樣本子集上訓練多個決策樹,最終利用這些決策樹的投票結果或平均結果來得到最終的分類結果[5]。
????????
圖5:隨機森林生成過程示意圖
????????本文對心電特征分類采用的是隨機森林算法,目的是將患有睡眠呼吸暫停綜合征的數據和非睡眠呼吸暫停綜合征數據分離開。本文選擇了RR間期的8個時域特征。
圖6:隨機森林算法流程框圖
????????隨機森林的模型訓練和測試步驟如下:
????????(1)加載a、b、c編號的數據,使用特征提取特征的函數進行特征提取,將數據的特征存儲為f-a、f-b、f-c三個矩陣。
????????(2)合并所有數據特征,將三個矩陣合并為一個特征矩陣,然后將數據進行隨機打亂消除數據之間的順序性。
????????(3)構建和訓練隨機森林模型,將特征矩陣劃分為訓練集和測試集,搭建隨機森林分類器并對訓練集進行擬合。
????????(4)用隨機森林模型對測試集進行預測,并將預測結果與真實標簽進行對比。最后使用混淆矩陣進行模型性能的評估。
????????隨機森林算法通過在多個隨機的樣本和特征集合上構建多個相互獨立的決策樹,提高算法的準確率和泛化能力,在分類和回歸任務中都有廣泛的應用。
4、實驗結果
4.1 心電信號預處理及QRS波檢測結果
????????本研究將數據集按照1:1比例劃分為訓練集和測試集,使用Matlab對Apnea-ECG數據庫進行實驗,使用交叉驗證方法選擇最優的模型參數,并分析模型的性能指標。
????????首先讀取Apnea-ECG數據庫。然后從標注文件里提取出標注信息,并將ECG信號數據分為1分鐘的小段,將分段后的心電信號分為正常和異常兩類。
圖7:正常原始心電信號波形圖
圖8:異常原始心電信號波形圖
????????異常心電信號通常表現為峰值振幅、持續時間和波形形態的異常變化。在呼吸暫停期間,心電信號的波形可能會出現振幅減小,時間延長等變化,而在呼吸暫停結束后這些指標會得到恢復。
????????心電信號預處理是對采集到的心電信號進行去噪、濾波、歸一化等處理,以提高信號質量和可用性。
????????(1)進行帶通濾波。我們設計的是一個截止頻率為5-15Hz的帶通濾波器。
圖9:經帶通濾波器處理過的正常心電信號
圖10:經帶通濾波器處理過的異常心電信號
????????信號中的噪聲和雜波被去除一部分,變得平滑和清晰,有利于后續的處理和分析。
????????(2)進行差分運算。差分運算可以將離散時間序列中相鄰時刻兩個數值的差計算出來。
圖11:經差分運算處理后的正常心電信號
圖12:經差分運算處理后的異常心電信號
????????經差分運算后,快速變化的信號例如QRS波群,差分運算會導致輸出信號的幅值增加。而緩慢變化的信號例如T波,差分運算會導致輸出信號的幅值減小。
????????(3)進行平方運算。用信號的幅值的平方替換信號本身。
圖13:經平方運算處理后的正常心電信號
圖14:經平方運算處理后的異常心電信號
????????通過平方運算,使得QRS波群更加容易被檢測和提取。此外,平方運算還可以增強信號中高能量成分,有助于區分QRS波群和其他信號成分。
????????(4)進行平均濾波處理。平滑信號并提取QRS波峰值。使用了一個長度為0.15秒的滑動窗口,對心電信號進行移動平均操作,得到平滑處理后的心電信號。該算法可以自適應調整濾波器的閾值,以適應不同心電信號的峰值大小和幅值范圍。
圖15:經平均濾波處理后的心電信號圖
????????上圖分別表示經過移動平均濾波和各種閾值調整后的心電信號和峰值。黑色為信號中的高頻噪聲。綠色為自適應閾值線,用于自適應調整QRS波的閾值。紅色信號電平線,用于檢測QRS波的峰值。紅色圓圈表示自適應調整的QRS波閾值的位置。在平滑后的心電信號中尋找QRS波峰值位置,用于識別心電信號中的R峰位置。
????????(5)R波定位。在睡眠呼吸暫停過程中會導致低氧血癥和高碳酸血癥,通過分析QRS間隔的變化和R波的幅度變化,可以用來測量呼吸頻率和周期,提供睡眠呼吸暫停的診斷信息。
????????下圖展示了在原始ECG信號上找到的QRS脈沖信號,水平的紅線表示檢測到的R波位置。脈沖信號視為一種二進制信號,將QRS復合物與心率信號分離,方便進一步分析處理。
圖16:正常心電信號的R波脈沖
圖17:異常心電信號的R波脈沖
????????以上可得異常心電信號的R波脈沖幅度減小,這反映了心室收縮的減少或消失。有些R波脈沖的周期發生明顯變化,反映了心室收縮的減少和異常間歇。
4.2 睡眠呼吸暫停分類結果
????????我們根據8個RR期間上的時域特征對數據庫進行模型訓練和模型測試。合并數據集特征,隨機打亂數據的順序,創建隨機森林分類器。測試分類器的分類效果,使用訓練好的分類器模型,在測試集上進行分類,并使用混淆矩陣評估模型的分類效果,測試結果如下。
圖18:測試結果1
????????左上角矩陣中的1代表正常標簽數據,其中1152個預測正確,108預測錯誤,正常信號識別率為91.4%。左上角矩陣中的8代表異常標簽數據,其中665個預測正確199個預測錯誤,正確率為87.0%。左下角的矩陣意思是預測為1類的數據中1152個是真正的1,99個是標記為8但是預測為1的,假陰率為7.9%。
????????由于每次樣本集都隨機打亂,所以每次得到的結果都不同。
圖19:測試結果2
????????此次的運行結果是20次運行結果中睡眠呼吸暫停識別準確率最低的。其中91.1%的正常信號進行識別,81.9%的睡眠呼吸暫停被正確識別,假陰性為11.1%。
圖20:測試結果3
????????這次的運行結果是20次運行結果中正常信號識別準確率最低的。其中90.6%的正常信號進行識別,83.1%的睡眠呼吸暫停被正確識別,假陰性為10.4%。
????????進行20次重復實驗,求其平均準確率,統計結果如表1所示。
表1 睡眠呼吸暫停檢測結果表
編號 | 標簽數目 | 正常信號識別率 | 睡眠呼吸暫停識別率 | 假陰性 |
1 | 1260 | 91.4% | 87.0% | 7.9% |
2 | 1244 | 91.1% | 81.9% | 11.1% |
3 | 1247 | 90.6% | 83.1% | 10.4% |
4 | 1250 | 91.0% | 85.6% | 9.8% |
5 | 1244 | 91.1% | 81.9% | 11.1% |
6 | 1248 | 90.8% | 84.2% | 10.9% |
7 | 1246 | 90.9% | 82.3% | 10.8% |
8 | 1256 | 91.2% | 87.1% | 8.7% |
9 | 1247 | 90.6% | 83.1% | 10.4% |
10 | 1260 | 91.4% | 87.0% | 7.9% |
11 | 1256 | 91.2% | 87.1% | 8.7% |
12 | 1244 | 91.1% | 81.9% | 11.1% |
13 | 1250 | 91.0% | 85.6% | 9.8% |
14 | 1260 | 91.4% | 87.0% | 7.9% |
15 | 1248 | 90.8% | 84.2% | 10.9% |
16 | 1247 | 90.6% | 83.1% | 10.4% |
17 | 1260 | 91.4% | 87.0% | 7.9% |
18 | 1256 | 91.2% | 87.1% | 8.7% |
19 | 1246 | 90.9% | 82.3% | 10.8% |
20 | 1250 | 91.0% | 85.6% | 9.8% |
平均 | 1251 | 91.3% | 84.7% | 9.8% |
4.3 實驗結果評估
????????本論文設計的基于Pan-Tompkins和隨機森林(RF)的睡眠呼吸暫停檢測算法得到了魯棒性和穩健性的驗證。通過觀察混淆矩陣,得到了比較直觀的結果:該算法對正常信號識別率為91.3%,對有睡眠呼吸暫停現象發生的異常信號識別率為84.7%,假陰率為9.8%。
參考文獻
[1] 陳亮,劉云,曾麗珠,朱能琴,黃道蘭.便攜式睡眠監測儀在阻塞性睡眠呼吸暫停低通氣綜合征診斷中的價值分析[J].實用中西醫結合臨床,2022,22(11):87-89+128.DOI:10.13638/j.issn.1671-4040.2022.11.026.
[2] Qi Pengjia,Gong Shuaikui,Jiang Nan,Dai Yanyun,Yang Jiafeng,Jiang Lurong,Tong Jijun. Mattress-Based Non-Influencing Sleep Apnea Monitoring System.[J]. Sensors (Basel, Switzerland),2023,23(7).
[3] 董孝彤,曲新亮,魏守水.用于睡眠呼吸暫停檢測的心電特征穩定性分析[J].生物醫學工程研究,2020,39(01):6-10.DOI:10.19529/j.cnki.1672-6278.2020.01.02.
[4]?Pan J, Tompkins W J. A real-time QRS detection algorithm. IEEE Transactions on Biomedical Engineering, 1985, 32(3): 230-236
[5] Breiman, L. (2001). Random Forests. Machine Learning, 45(1), 5-32.
Tips:下一講,我們將進一步探討,心電信號處理與應用的其他部分。
以上就是基于Pan-Tompkins和隨機森林(RF)的睡眠呼吸暫停檢測算法的全部內容啦~
我們下期再見,拜拜(?v?) ~
(Ps:有代碼實現需求,請見主頁信息,謝謝支持!~)