目錄
1、引言
2、算法原理
(1)Pan-Tompkins 算法(方法1)
(2)Findpeak 閾值檢測算法(方法2)
(3)差分閾值算法(方法3)
3、算法性能評估
(1)評估指標
(2)實驗結果對比
(3)綜合分析與結論
1、引言
????????心電圖(ECG)是臨床診斷心臟疾病的重要工具,R波檢測作為其中的關鍵步驟,其準確性直接影響后續的心律失常分析等診斷過程。本文檔介紹三種 R 波檢測算法及其性能評估。
2、算法原理
(1)Pan-Tompkins 算法(方法1)
相關內容詳情見我博客👇
「ECG信號處理——(10)Pan-Tompkins算法(R峰檢測)」2025年3月17日-CSDN博客
(2)Findpeak 閾值檢測算法(方法2)
??
基于信號局部極大值特性,通過雙閾值約束實現R波定位。其核心思想是找到信號中滿足特定條件的局部極大值點。通過設置最小峰間距(MinPeakDistance
)和最小峰高(MinPeakHeight
)兩個關鍵參數來篩選潛在的 R 波位置。
-
幅值閾值:設置最小峰值高度MinPeakDistance=round(0.2×fs),過濾低幅噪聲。
-
位置閾值:設置最小峰間距MinPeakHeight=0.5(對應最大心率300bpm)。
????????其中,fs
表示采樣頻率,MinPeakDistance
是為了確保 R-R 間隔至少為 0.2 秒,MinPeakHeight
是根據信號幅度設定的最小閾值。
(3)差分閾值算法(方法3)
????????該方法通過信號微分和動態閾值調整來檢測 R 波。基本流程如下:
- 信號微分處理:對原始 ECG 信號進行微分操作,突出信號的突變部分,公式為:
diff_ecg=diff(ecg)
- 移動平均濾波:對微分后的信號取絕對值并進行移動平均平滑處理,窗口長度設為 0.12 秒對應的采樣點數,公式為:
smoothed=movmean(∣diff_ecg∣,window_length)
- 動態閾值調整:在信號的前 10 秒學習階段內,計算平滑信號的最大值并乘以 0.6 作為初始閾值,公式為:
threshold=0.6×max(smoothed(1:learning_phase))
- 閾值檢測與峰值確認:通過比較平滑信號與閾值確定潛在 R 波區間,并在每個區間內找到原始信號的最大值點作為 R 波位置。
3、算法性能評估
(1)評估指標
- 靈敏度(Sen):衡量實際 R 波被正確檢測的比例,公式為:
Sen=TP?/(TP+FN)×100%
- 陽性預測值(PPV):衡量檢測到的 R 波中實際正確的比例,公式為:
PPV=TP?/(TP+FP)×100%
- 準確率(Acc):衡量整體檢測的準確程度,公式為:
Acc=TP?/(TP+FP+FN)×100%
????????其中,TP
表示真陽性數量,FN
表示假陰性數量,FP
表示假陽性數量。
(2)實驗結果對比
????????以下是上述三種R波檢測算法在MIT-BIH心律失常數據庫\mit-bih-arrhythmia-database-1.0.0上的性能評估結果。
圖1:波檢測示例1
圖2:R波檢測示例2
表1:MIT-BIH心律失常數據庫部分數據結果對比
整體性能對比:
評價指標 | 1、Pan-Tompkins法 | 2、Findpeaks法 | 3、差分閾值法 |
---|---|---|---|
平均靈敏度(Se) | 94.94% | 99.94% | 99.91% |
平均PPV | 95.32% | 94.21% | 84.97% |
平均準確率(Acc) | 91.66% | 94.00% | 84.89% |
平均位置偏差 | 0.45±1.38 | 2.12±1.40 | 0.45±1.33 |
平均幅值偏差 | 0.07±0.08 | -0.99±0.17 | 0.06±0.07 |
靈敏度對比:
-
Findpeaks與差分閾值法表現相當(99.94% vs 99.91%)
-
Pan-Tompkins法在記錄106出現嚴重漏檢(Sen=65.56%)
-
極端案例:記錄106中差分閾值法保持100%靈敏度,而Pan-Tompkins降至65.56%
定位精度
-
差分閾值法定位最精準(平均偏差0.45樣本點)
-
Findpeaks法存在系統定位延遲(平均+2.12樣本點)
-
記錄102中Findpeaks定位偏差最大(5.44±5.42樣本點)
幅值估計
-
Findpeaks法存在顯著幅值低估(平均-0.99mV)
-
差分閾值法幅值偏差最小(0.06±0.07mV)
-
記錄107中Findpeaks幅值偏差達-1.51±0.25mV
(3)綜合分析與結論
????????方法3(差分閾值法)在多數數據集上表現最佳,具有較高的靈敏度和最佳的檢測精度;方法1在時間準確性上表現較好,但在幅值準確性上稍差;方法2在某些數據集上表現優異,但在其他數據集上存在不穩定性。
????????根據具體應用場景的需求:
-
對靈敏度和檢測精度要求極高時,選擇方法3(差分閾值法);
-
更注重時間準確性時,選擇方法1(Pan-Tompkins法);
-
需要在不同數據集上保持較好的穩定性時,選擇方法3(差分閾值法)。
Tips:下一講,我們將進一步探討,心電信號處理與應用的其他部分。
以上就是Pan-Tompkins & Findpeak 閾值檢測 & 差分閾值算法——三種R波檢測算法對比分析的全部內容啦~
我們下期再見,拜拜(?v?) ~
(Ps:有代碼實現需求,請見主頁信息,謝謝支持!~)