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를 그대로 재사용하지 않았다.

먼저 확인한 것
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);
핵심 용어
- CMSIS-DSP
- DF2T
- coefficient
- state buffer
다시 볼 때의 순서
- CMSIS-DSP
- DF2T → coefficient
- state buffer
공식 문서
- STM32CubeF4 Getting Started (UM1730)
- STM32 DSP with CMSIS (AN4841)
- Arm CMSIS-DSP
- STM32CubeF4 repository
새로 확인한 원본은 실험 사진 22장, STM 사용법 40장, 3쪽 KiCad 회로도, ADC·UART 메모, HRV 모듈, PPG 코드 2종, ECG C 코드 변형 12개와 CubeIDE 프로젝트 압축본이다. 같은 SHA-256의 중복 코드와 ST·Arm vendor 파일은 별도 결과처럼 세지 않았다. 사진과 코드로 확인되는 구성까지만 적고 측정 성능은 새로 만들지 않았다.