(ECG) 3. 시그널 전처리 에서는 피크를 찾기위한 전처리 과정을 살펴보았다.
이제 전처리된 ECG 시그널을 이용해 Peak detection을 해 보겠다.
일단, Peak detection 의 유명한 알고리즘은 아래와 같다.
- Hamilton
- Christov
- Engelse and Zeelenberg
- Pan and Tompkins
- Stationary Wavelet Transform
- Two Moving Average
- Matched Filter
- WQRS
위의 알고리즘을 적용해 보았으나 만족할 만한 결과를 얻지 못했기 때문에 다른 알고리즘을 적용해 보았다.
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 |