Low pass(로우 패스) 필터를 C코드로 구현 해보도록 하겠습니다.
0. Low pass filter(저역통과 필터) 란
- 주파수 도메인에서 고주파 성분을 제거하고자 할때 사용
1. 라플라스 도메인에서의 Low pass filter 형태
ω_c (Cut off frequency) : 필터가 작동하는 기준 주파수, -3db가 되는 시점
- Cut off frequency보다 높은 주파수 대역의 입력은 해당 필터를 지나서 절반 이하의 출력을 내보냄
ex) 모터 최대 회전 주파수(f_c)가 100hz 일때 ω_c는?
ω_c = 2π*f_c
이론적으로 최소 ω_c = 200π이 되어야 하지만 실제로는 안전 마진 고려하여 5~10배 사이 적용
ω_c가 작을 경우 노이즈 성분이 줄지만 딜레이가 커짐
ω_c가 클경우 딜레이는 적지만 노이즈 성분이 많아짐
2. 타임 도메인에서의 Low pass filter 형태
라플라스 도메인에서 입력과 출력을 함께 표시해 보았다.
수식적으로 보면 아래와 같음
s는 타임도메인에서 미분텀이기 때문에 s에 미분 인자 대입
타임도메인에서 수식을 다시 정리하면 다음과 같다.
이 수식을 y_k에 대해 정리하면 아래와 같다.
3. C 코딩
위 타임 도메인에서의 필터 형태를 그대로 코드로 옮기면 됨
coeff_a = 1 / (1 + wc * T_s);
coeff_b = wc * T_s / (1 + wc * T_s);
lpf_y = coeff_a * lpf_y_ex + coeff_b * input_x;
lpf_y_ex = lpf_y ;
'공학' 카테고리의 다른 글
High pass(하이 패스) 필터 - 라플라스 도메인, 타임 도메인, C코딩 (0) | 2024.05.20 |
---|---|
제어 공학 튜토리얼 : Control Tutorials - Introduction system modeling (동적 시스템이란?, 상태공간표현식?(State-Space Representation) (0) | 2024.04.16 |
임베디드 소프트웨어 컴파일러란?obj, asm (5) | 2024.04.15 |