English
Sensors & Time Series

Wearable Biosignals

박동·맥파·피부전도·움직임을 읽고, 같은 사람과 새로운 사람의 결과를 비교한다.

전문가 검수 전실측 공개 기록 · 브라우저에서 직접 계산

Heart Rate & HRV

MIT-BIH / 100 / MLII / 360 Hz

ECG 위 점선 문턱을 위아래로 끈다. 원은 검출한 봉우리, 세로 눈금은 전문가 기준 주석이다. 아래에서 그 결과로 만든 RR 간격을 비교한다.

지표는 전체 300초에서, 위 ECG 그림은 8초 구간에서 계산한다. 검출 후보에는 정상 박동 판정이 없어 표준편차를 SDRR로 표시한다. 일치 허용 오차 ±50 ms는 이 페이지에서 정한 평가 조건이다.

Moody & Mark (2005), MIT-BIH Arrhythmia Database 1.0.0 · ODC-By 1.0 · 발췌: 0–300초, 원래 표본율 유지 · 출처와 가공 내역 NOTICE

Overview

Electrocardiography(심전도, ECG)는 몸 표면의 전위차를 기록한다. R 봉우리는 QRS complex에서 박동 시점을 정하는 표지가 된다. Heart rate는 박동의 빠르기를, heart-rate variability(심박변이도, HRV)는 박동 간격의 변화를 요약한다. 두 계산의 출발점은 같은 봉우리 시각이다.

이 자료는 MIT-BIH의 ambulatory ECG(일상 중 심전도) 기록이며 박동 주석을 전문가가 검토했다. 첫 체험은 파형을 고정하고 검출기를 바꾼다. 두 번째 체험은 기준 주석을 고정하고 관찰 창을 바꾼다. 측정 오류와 요약 대상의 변화가 각각 어떤 결과를 만드는지 분리해서 살핀다.

Concept

R 봉우리에서 normal-to-normal 간격까지

tᵢ를 초 단위 박동 시각으로 두면 RRᵢ = 1000(tᵢ − tᵢ₋₁)은 ms 단위 간격이다. 순간 심박수는 60000/RRᵢ bpm이다. 이 페이지의 평균 빠르기는 60000/mean(RR)로 계산한다. 역수는 비선형이므로 순간 심박수를 각각 구해 평균한 값과는 다를 수 있다.

Normal-to-normal(NN)은 정상 동방결절 박동 사이 간격을 고른 것이다. 여기서는 연속된 두 박동이 모두 N으로 주석된 간격만 채택한다. A나 V 주석이 있으면 그 양옆 간격이 제외된다. RMSSD는 원래부터 이웃하던 유효 간격의 차이만 쓴다. 제외한 박동을 건너뛰어 새 이웃을 만들지 않는다.

SDNN = √[ Σ(NNᵢ − N̄N)² / (N − 1) ]
RMSSD = √[ Σ(NNᵢ₊₁ − NNᵢ)² / M ]

N은 유효 NN 간격 수, M은 유효한 이웃 쌍 수다. 끊김 없는 열에서는 M = N − 1이다. SDNN은 창 평균 주변의 퍼짐을 재며 여기서는 표본 표준편차를 쓴다. RMSSD는 연속 간격의 차이를 요약한다. 단위는 둘 다 ms지만 요약하는 변화는 다르다.

검출 오류가 바꾸는 것

박동 하나를 놓치면 간격 두 개가 긴 간격 하나가 된다. 봉우리를 잘못 추가하면 한 간격이 짧은 둘로 나뉜다. 평균 심박수가 조금만 바뀌어도 인접 차이는 원래의 변동보다 훨씬 커질 수 있다. 변이도를 읽기 전에 정검출(TP), 오검출(FP), 누락(FN)을 센다. 민감도 = TP/(TP+FN), 정밀도 = TP/(TP+FP)다.

화면의 검출기는 문턱 위 국소 최댓값 중 강한 것부터 고르고, 이 체험에서 정한 250 ms 안의 약한 후보를 억제한다. Pan과 Tompkins(1985)는 필터·기울기·제곱·적분·적응형 판정을 결합했다. 그 접근을 함께 보면 파형 모양이나 잡음이 바뀔 때 진폭 하나만으로 찾는 방식이 왜 불안정해지는지 이해할 수 있다.

Hands-on · Window Length

NN 타임라인을 가로로 끌어 관찰 창을 고른다. 기준 주석과 실제 기록은 그대로 유지한다. 선택한 창과 전체 5분을 비교하고 유효 간격 수와 이웃 쌍 수도 함께 읽는다.

비교 창NNSDNN / msRMSSD / ms

짧은 창은 구간 선택에 따른 민감도를 드러내기 위해 쓴다. Task Force는 비교 가능한 길이로 단기 5분, 장기 명목상 24시간 기록을 권한다. 개별 기록에서는 같은 시작점의 창을 늘려도 두 지표가 매번 커지는 것은 아니다.

Summary

  • 봉우리 시각·박동 종류·간격의 이웃 관계가 모두 결과에 들어간다.
  • 간격 통계량에 앞서 검출 오류를 비교한다.
  • HRV에는 창 길이·단위·표본 관례·제외 규칙을 함께 적는다.

Notation

tᵢ박동 시각 / s
RR, NN검출 간격 / 정상 박동 간격 / ms
N, M유효 간격 / 이웃 쌍 / 개
TP, FP, FN정검출 / 오검출 / 누락 / 개
𝒜원래 이웃한 유효 NN 쌍의 색인 집합 / 무차원

References

  1. Task Force of the ESC & NASPE (1996). Heart rate variability. Circulation 93:1043–1065; simultaneously Eur Heart J 17:354–381. Full text, pp.355–358, 364–365.
  2. Pan, J. & Tompkins, W.J. (1985). A real-time QRS detection algorithm. IEEE TBME 32(3):230–236. DOI.
  3. Moody, G. & Mark, R. (2005). MIT-BIH Arrhythmia Database 1.0.0. Moody & Mark (2001), IEEE EMB 20(3):45–50. PhysioNet · ODC-By 1.0.

Photoplethysmography

같은 8초, 맥파와 움직임

실제 활동 기록을 고른 뒤 그림 위를 가로로 끌어 8초 구간을 옮긴다. 광학 맥파의 최고 파워 주파수로 구한 심박수를 ECG 기준과 비교한다.

겹쳐 그리기 위해 각 파형을 자신의 평균·표준편차로 표준화했다. 세로축은 z 단위이고, 움직임 크기는 별도로 g 단위의 3축 dynamic RMS로 표시한다.

Reiss, Indlekofer, Schmidt & Van Laerhoven (2019) · PPG-DaLiA, UCI · CC BY 4.0 · Attribution & changes

Overview

Photoplethysmography(광용적맥파, PPG)는 피부에 빛을 보내고 되돌아온 빛의 변화로 혈액량의 맥동을 관찰한다. ECG가 전기적 사건의 시각을 잡는 데 비해 PPG는 말초에 도달한 맥동의 모양을 기록한다. 두 파형을 연결할 때는 시각 정렬과 같은 길이의 창이 먼저 필요하다.

PPG-DaLiA는 일상 활동 중 손목 맥파·가속도와 가슴 ECG를 함께 기록했다. 저자는 ECG의 R 시점을 검출한 뒤 사람이 점검·수정하고, 8초 동안 순간 심박수의 평균을 기준으로 만들었다. 여기서는 그 공개 기준을 그대로 쓴다.

Concept

맥박 성분과 움직임 성분은 동시에 센서에 들어온다. 움직임은 접촉 압력·광경로를 바꾸며, 걸음의 주기성도 반복 봉우리를 만든다. 파형에서 가장 큰 반복이 항상 심장 기원인 것은 주파수 대조로 확인해야 한다.

평균을 뺀 8초 파형에 주기 Hann 창 w[n]=0.5−0.5cos(2πn/N)을 곱한다. DFT의 k번째 빈은 fₖ=k/T Hz이고, 이 체험의 추정 심박수는 0.5–4 Hz 중 파워가 가장 큰 빈의 60fₖ bpm이다. 범위와 규칙은 이 페이지에서 정한 것이다.

T=8초이면 빈 간격은 0.125 Hz, 심박수로 7.5 bpm이다. 참 심박이 두 빈 사이에 있으면 잡음이 작아도 양자화 오차가 남는다. 창을 곱해 경계의 불연속을 줄이지만, 주파수가 가까운 두 원인을 자동으로 분리해 주지는 않는다.

가속도는 축마다 평균을 빼고 스펙트럼을 구한 뒤 세 축 파워를 더한다. PPG·가속도는 단위가 달라 각 대역 파워 합이 1이 되게 정규화한다. O=Σmin(pₖ,aₖ)는 두 분포의 겹침이다. O가 커지는 구간에서 추정 오차가 함께 커지는지 직접 살핀다.

Hands-on · Spectral Overlap

위와 동일한 구간을 사용한다. 스펙트럼의 어느 주파수를 맥박 후보로 읽을지 그림을 눌러 고른다. 원자료·기준 ECG·자동 추정은 유지되고, 선택한 후보의 오차만 바뀐다.

Summary

  • 기준 ECG와 정확히 같은 8초 구간을 비교한다.
  • 움직임 크기·주기·심박과의 겹침을 구분해 읽는다.
  • 주파수 빈 간격도 추정 오차의 일부다.

Notation

fₖ, T빈 주파수 / Hz · 창 길이 / s
pₖ, aₖ, O정규화 대역 파워와 겹침 / 무차원
|HR−HRref|절대 추정 오차 / bpm
x[n], w[n], N표본·주기적 Hann 가중치·창의 표본 수
P[k], pₖ, aₖPSD(신호 단위²/Hz)·정규화 PPG 및 ACC 대역 파워(무차원)

References

  1. Reiss et al. (2019). Deep PPG. Sensors 19(14):3079. DOI. Original dataset documentation, I–III.
  2. SciPy periodogram and Hann window documentation.

Electrodermal Activity

느린 기준선은 어디까지 신호를 따라갈까

실측 손목 EDA를 고르고 차단 주파수를 바꾼다. 그림 위를 좌우로 끌어도 주파수를 조절할 수 있다. 원자료는 고정하고, 느린 성분과 남은 성분의 크기가 어떻게 나뉘는지 본다.

Reiss, Indlekofer, Schmidt & Van Laerhoven (2019) · PPG-DaLiA, UCI · CC BY 4.0 · Attribution & changes

Overview

Electrodermal activity(피부전도 활동, EDA)는 땀 분비와 함께 변하는 피부의 전기적 특성을 읽는다. Skin conductance(피부전도도)는 저항의 역수이며 여기서는 µS로 기록된다. Tonic은 느리게 변하는 수준, phasic은 더 빠른 반응의 시간적 모양을 가리킨다.

Benedek와 Kaernbach(2010)는 느린 회복 꼬리 위에 반응이 겹치면 단순 봉우리 진폭을 읽기 어려워진다는 문제를 다뤘다. 논문은 반응함수의 deconvolution으로 연속 phasic driver를 추정하고 면적을 요약했다. 여기서는 먼저 주파수 분리가 결과에 미치는 영향을 실측 신호에서 조작한다.

Concept

원신호 x[n]에 1차 low-pass를 적용해 느린 성분 t[n]을 구한다. t[n]=αx[n]+(1−α)t[n−1], r[n]=x[n]−t[n]이다. 따라서 두 성분의 합은 원신호를 정확히 복원한다. 초기값 t[0]=x[0]은 경계 조건이다.

d=1−cos(2πfc/fs), α=√(d²+2d)−d로 두면 단일 통과 필터의 −3 dB 주파수가 fc가 된다. fc를 높이면 느린 성분도 더 빠른 변화를 따라가고 잔차가 작아진다. 단일 통과는 위상 지연을 만들며 첫 부분은 초기값의 영향을 받는다.

반응 후보의 진폭은 잔차의 국소 봉우리와 직전 골의 차이로 잰다. 후보를 진폭 순서로 골라 1초보다 가까운 봉우리를 억제한 다음, 문턱 이상의 후보를 센다. 첫 10초는 검출에서 제외한다. 이 간격·제외 길이·문턱은 체험에서 정한 규칙이다.

같은 잔차에서도 작은 문턱은 더 많은 후보를 남긴다. 반대로 차단 주파수까지 바꾸면 잔차와 골의 위치가 달라져, 후보를 세는 대상 자체가 바뀐다. 한 번에는 조건 하나를 바꾸어 검출 수와 평균 후보 진폭을 함께 읽는다.

Hands-on · Response Threshold

점선 문턱을 위아래로 끌어 본다. 표시된 원은 직전 골 대비 진폭이 문턱 이상인 반응 후보다. 잔차가 음수여도 봉우리와 골의 차이는 양수가 될 수 있다.

후보 시각 / s봉우리−골 / µS

표는 앞 8개 후보를 보인다. 그림의 회색 구간은 초기값 영향 때문에 세지 않는 첫 10초다. 점선은 진폭 문턱을 조절하는 손잡이이며 잔차의 절대 높이 판정선은 아니다.

Summary

  • 분해 규칙이 바뀌면 잔차와 후보도 바뀐다.
  • 후보 수에는 문턱·관찰 시간·경계 처리 조건을 붙인다.
  • 기록된 활동과 피부전도 반응의 해석을 구분한다.

Notation

x, t, r원신호·느린 성분·잔차 / µS
fs, fc표본율·차단 주파수 / Hz
α새 표본의 가중치 / 무차원

References

  1. Reiss et al. (2019). Deep PPG. Sensors 19(14):3079. DOI. Original dataset documentation, I–III.
  2. Benedek & Kaernbach (2010). A continuous measure of phasic electrodermal activity. J Neurosci Methods 190:80–91, §§1–3,4.1.5.
  3. SciPy lfilter, difference equation.

Fusion & Validation

신호를 빼고, 같은 조건으로 다시 학습한다

PPG·EDA·가속도에서 직접 특징을 계산하고 앉기·계단·걷기 라벨에 맞춰 ridge 모델을 학습한다. 신호를 끄면 그 특징을 제외한 모델을 다시 학습한다. 평가 대상으로 남길 두 사람은 아래에서 선택한다.

학습에 넣을 신호

같은 사람 분할로 재학습한 신호AccuracyMacro-F1

선택 모델 · 혼동행렬

행은 기록된 활동, 열은 예측 활동이다. 수치는 창 개수다.

Reiss, Indlekofer, Schmidt & Van Laerhoven (2019) · PPG-DaLiA, UCI · CC BY 4.0 · Attribution & changes

Overview

Fusion(신호 결합)의 질문은 신호 개수를 늘렸는지가 아니라 새로운 기록의 오차가 줄었는지다. 같은 자료·분할·평가 지표를 유지하고 입력 신호만 하나씩 빼는 ablation은 각 신호의 추가 정보를 살핀다. 계단과 걷기가 헷갈리면 혼동행렬에서 어떤 방향의 오류인지 읽는다.

이 자료의 목표는 세 가지 실제 활동 라벨이다. PPG·EDA·가속도만 특징으로 사용하고 참가자 ID·시각·ECG 정답 심박·활동 라벨은 입력에서 뺀다. 여섯 사람의 각 활동 120초를 같은 규칙으로 발췌했다.

Concept

특징은 PPG의 표준편차·평균 절대 1차 차이, EDA의 평균·표준편차·양끝 기울기, 가속도 벡터 크기의 표준편차·3축 dynamic RMS·평균 크기다. 8초 창에서 계산하므로 시간 모양 전체를 보존하지는 않는다. 활동과 장치 접촉·개인의 차이가 같은 특징에 들어갈 수 있다.

학습 자료에서만 평균 μ와 표준편차 σ를 구해 z=(x−μ)/σ로 바꾼다. 정답을 one-hot 벡터 Y로 놓고 ||ZW−Y||²+λ||W||²를 최소화한다. λ=1은 고정한 값이며 절편에는 페널티를 주지 않는다. 예측은 가장 큰 출력의 활동이다. 이 점수는 확률로 표시하지 않는다.

사람 단위 분할은 특정 두 사람을 평가에 통째로 남긴다. 무작위 분할은 각 사람·활동 안에서 1/3의 창을 평가에 둔다. 두 방식의 학습·평가 창 수는 같지만 답하는 질문은 다르다. 전자는 처음 보는 사람, 후자는 이미 본 사람의 다른 창에 가깝다.

8초 창을 2초씩 이동하면 이웃 창은 원신호 6초를 공유한다. 무작위 분할에서는 같은 신호 표본이 양쪽에 들어갈 수도 있다. 8초 이동으로 바꿔 원구간 중첩을 없애 본 뒤에도 사람이 양쪽에 남는지 그림에서 확인한다.

정확도는 맞힌 창의 비율이다. Macro-F1은 각 활동의 2TP/(2TP+FP+FN)을 평균해 활동마다 같은 비중을 준다. 신호를 추가해 점수가 내려가는 경우도 그대로 보이며, 평가 사람을 바꿔 효과가 유지되는지 확인한다.

Hands-on · Split by Person

분할 그림의 사람 이름을 누르면 평가 사람 조합이 순환한다. 두 목록의 중복 사람 수와 원구간 중첩 쌍 수를 점수 옆에 함께 보인다.

분할AccuracyMacro-F1중복 사람중첩 구간 쌍

Summary

  • 신호 추가 효과는 같은 분할에서 다시 학습해 비교한다.
  • 사람·겹치는 원구간·전처리 통계의 경계를 함께 검사한다.
  • 평가 점수에는 자료 범위와 어떤 일반화를 재는지 붙인다.

Notation

Z, Y, W표준화 특징·one-hot 목표·계수
μ, σ학습 자료에서만 추정한 평균·표준편차
λridge 페널티 1 / 정한 값
D, zD=diag(0,1,…,1)은 절편을 제외한다. z는 첫 원소 1과 표준화 특징을 포함한다(무차원).

References

  1. Reiss et al. (2019). Deep PPG. Sensors 19(14):3079. DOI. Original dataset documentation, I–III.
  2. scikit-learn Cross-validation: grouped data and held-out transformations.
  3. scikit-learn Ridge regression.

원리를 탐구하는 단순화한 계산이다. 의료·피로·스트레스 판정에 사용하지 않는다.