본문 바로가기
Health/심전도(ECG) 분석

4. Peak(R) detection (Revised)

by 꼰대코더 2023. 12. 13.

(ECG) 3. 시그널 전처리 에서는 피크를 찾기위한 전처리 과정을 살펴보았다.

이제 전처리된 ECG 시그널을 이용해 Peak detection을 해 보겠다.

 

일단, Peak detection 의 유명한 알고리즘은 아래와 같다.

  • Hamilton
  • Christov
  • Engelse and Zeelenberg
  • Pan and Tompkins
  • Stationary Wavelet Transform
  • Two Moving Average
  • Matched Filter
  • WQRS
 

GitHub - berndporr/py-ecg-detectors: Popular ECG QRS detectors written in python

Popular ECG QRS detectors written in python. Contribute to berndporr/py-ecg-detectors development by creating an account on GitHub.

github.com

위의 알고리즘을 적용해 보았으나 만족할 만한 결과를 얻지 못했기 때문에 다른 알고리즘을 적용해 보았다.

 

scipy.signal.find_peaks(...)

from scipy.signal import find_peaks

# distance = sample Hz / 2 으로 설정해서 이보다 작은 간격의 peaks 는 무시
rr_peaks, _ = find_peaks(filtered_data, distance=130*0.5)

plt.title("ECG Peaks")
plt.plot(self.product._filtered_data, color='blue', lw=1, label='Filtered')
plt.scatter(rr_peaks, self.product._filtered_data[rr_peaks], color='red', label='Peaks')
plt.xlim(0, 3000)
plt.legend()
plt.show()

'Health > 심전도(ECG) 분석' 카테고리의 다른 글

6. Heart Rate Variability (HRV)  (1) 2024.01.07
5. R-R Intervals  (1) 2024.01.07
3. 시그널 전처리 (Revised)  (1) 2023.12.09
2. ECG 데이터 클린징 (Revised)  (1) 2023.12.07
1. 심전도 분석에 관해  (2) 2023.12.03