심장 박동 감지 (Heartbeat detection)
ECG 기반 수면 단계는 심박수 변동성에 크게 의존한다. 따라서 신뢰할 수 있고 효율적인 심장 박동 감지기가 필수적이다. SleepECG는 Pan & Tompkins (1985)가 설명한 접근 방식을 기반으로 하는 감지기를 제공한다. 성능에 중요한 코드를 C 확장에 아웃소싱하여 감지기가 다른 구현보다 훨씬 더 빠르다. 그러나 Numba 및 순수 Python 백엔드도 제공한다. (Numba 백엔드는 거의 빠른 반면 순수 Python 구현은 훨씬 느림).
사용법
detect_heartbeats 함수는 ecg샘플링 주파수 fs (Hz)를 사용하여 필터링되지 않은 ECG 신호에서 심장 박동을 찾는다. 감지된 모든 심장 박동의 인덱스를 반환한다. 시각화 및 성능 평가를 포함한 전체에서 사용할 수 있다 (examples/heartbeat_detection.py).
from sleepecg import detect_heartbeats
detection = detect_heartbeats(ecg, fs)
성능평가 (Performance evaluation)
성능 평가는 모든 코드에서 사용할 수 있다 (examples/benchmark). 사용된 패키지 버전은 requirements-benchmark.txt에 있다.
최소 20시간 동안의 LTDB 레코드에서 다양한 길이의 조각을 사용하여 감지기 런타임을 평가한다. 아래 그림의 오차 막대는 평균의 표준 오차에 해당한다. 감지기의 C 백엔드는 테스트된 모든 패키지 중에서 단연 가장 빠른 구현이다 (y 축은 대수적으로 조정됨). 런타임 평가는 32GiB RAM이 장착된 Intel® Xeon® Prozessor E5-2440 v2 에서 수행되었다. 병렬화가 사용되지 않았다.
또한 모든 MITDB 레코드에 대한 탐지 성능을 평가한다. 해당 주석의 100ms (즉, 36개 샘플) 이내인 경우 성공적인 감지를 정의했다 (주석이 일반적으로 정확한 R 피크 위치와 일치하지 않기 때문에 여기에서 허용 오차를 사용하는 것이 필요함). 리콜, 정밀도 및 F1 점수 측면에서 당사의 감지기는 사용 가능한 최고의 심장 박동 감지기 중 하나이다.
심장 박동 변동성을 분석하려면 심장 박동의 정확한 위치를 감지하는 것이 필수적이다. 탐지기가 얼마나 정확한지를 측정하기 위해 모든 GUDB 레코드에서 주석이 달린 비트 위치와 탐지된 비트 위치에서 추론된 리샘플링된 RRI 시계열 사이의 Pearson 상관 계수를 계산했다. 우리의 구현은 대역통과 필터링된 ECG 신호에서 피크를 감지하므로 후처리 없이 안정적인 RRI 시계열을 생성한다.
https://sleepecg.readthedocs.io/en/stable/heartbeat_detection.html
'Somnology' 카테고리의 다른 글
수면 무호흡증 및 당뇨병성 눈 문제 (0) | 2022.04.25 |
---|---|
[SleepECG] Feature extraction (0) | 2022.04.25 |
[SleepECG] Datasets (0) | 2022.04.25 |
SleepECG (0) | 2022.04.22 |
수면 (Sleep) (0) | 2022.03.15 |