STM32 · Embedded · 07

CMSIS-DSP Biquad filter 연결

ECG 250 Hz 코드는 40 Hz low-pass와 0.5 Hz high-pass 두 stage를 DF1 또는 DF2T cascade로 구현한다. PPG 코드에는 0.5 Hz high-pass와 8 Hz low-pass가 분리돼 있어 ECG coefficient를 그대로 재사용하지 않았다.

NUCLEO-F411RE와 analog prototype에 전원이 들어온 필터 실습 구성

먼저 확인한 것

ECG 250 Hz 코드는 40 Hz low-pass와 0.5 Hz high-pass 두 stage를 DF1 또는 DF2T cascade로 구현한다. PPG 코드에는 0.5 Hz high-pass와 8 Hz low-pass가 분리돼 있어 ECG coefficient를 그대로 재사용하지 않았다.

원본 구성

  • ARM_MATH_CM4와 FPU 설정, source file, include path가 모두 있어야 build 구성이 맞는다.
  • filter instance, coefficient array, state buffer와 blocksize=1의 역할을 구분한다.
  • 저장된 코드의 coefficient 구조는 확인했지만 실제 frequency response를 새로 측정하지 않았다.

코드 흐름

arm_biquad_cascade_df2T_init_f32(
    &ECG_Filter, numStage_ECG,
    IIR_Coeffs_ECG, pState_ECG);
arm_biquad_cascade_df2T_f32(
    &ECG_Filter, &Raw_Voltage,
    &ECG_Filtered, 1);

핵심 용어

  1. CMSIS-DSP
  2. DF2T
  3. coefficient
  4. state buffer

다시 볼 때의 순서

  1. CMSIS-DSP
  2. DF2T → coefficient
  3. state buffer

공식 문서

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

논문 첫 페이지 미리보기