STM32 · Embedded · 08

PPG peak·HRV·BPM 검출 흐름

PPG 기본 코드는 100 Hz timer에서 1·2차 차분과 peak interval을 계산한다. 별도 HRV 모듈은 최근 peak 4개로 gap 3개를 만들고 평균에서 20% 이상 벗어난 gap을 제외한 뒤 BPM을 계산한다.

전극과 NUCLEO-F411RE ECG PPG breadboard prototype 전체 구성

먼저 확인한 것

PPG 기본 코드는 100 Hz timer에서 1·2차 차분과 peak interval을 계산한다. 별도 HRV 모듈은 최근 peak 4개로 gap 3개를 만들고 평균에서 20% 이상 벗어난 gap을 제외한 뒤 BPM을 계산한다.

원본 구성

  • 새 PPG 변형은 slope sign change와 refractory interval을 함께 사용해 중복 peak를 막는다.
  • HRV 모듈은 gap 평균과 margin을 계산하고 유효하지 않으면 BPM을 0으로 돌린다.
  • 저장된 출력 Cell이나 정량 정확도 기록은 없어 알고리즘 구조까지만 정리했다.

코드 흐름

GapAvr = (Gap1 + Gap2 + Gap3) / 3;
margin = GapAvr / 5;
if (all_gaps_within_margin) {
    bpm = 60 * 1000 / GapAvr;
}

핵심 용어

  1. peak interval
  2. refractory period
  3. HRV
  4. BPM

다시 볼 때의 순서

  1. peak interval
  2. refractory period → HRV
  3. BPM

공식 문서

새로 확인한 원본은 실험 사진 22장, STM 사용법 40장, 3쪽 KiCad 회로도, ADC·UART 메모, HRV 모듈, PPG 코드 2종, ECG C 코드 변형 12개와 CubeIDE 프로젝트 압축본이다. 같은 SHA-256의 중복 코드와 ST·Arm vendor 파일은 별도 결과처럼 세지 않았다. 사진과 코드로 확인되는 구성까지만 적고 측정 성능은 새로 만들지 않았다.

논문 첫 페이지 미리보기