본문 바로가기
공학

High pass(하이 패스) 필터 - 라플라스 도메인, 타임 도메인, C코딩

by Bonila 2024. 5. 20.

High pass(하이 패스) 필터를 c코드로 구현해보록 하겠습니다.

 

0. High pass filter(고역통과 필터) 란

- 주파수 도메인에서 저주파 성분을 제거하고자 할때 사용

 

1. 라플라스 도메인에서의 High pass filter 형태

 

High pass 하이 패스 필터

 

ω_c (Cut off frequency) : 필터가 작동하는 기준 주파수, -3db가 되는 시점

Cut off frequency보다 낮은 주파수 대역의 입력은 해당 필터를 지나서 절반 이하의 출력을 내보냄

- ω_c = 2*π*f_c 

** f_c : high pass filter를 치고 싶은 기준 주파수

2. 타임 도메인에서의 Low pass filter 형태

 

High pass 하이 패스 필터

 

라플라스 도메인에서 입력과 출력을 함께 표시해 보았다.

수식적으로 보면 아래와 같음

High pass 하이 패스 필터

 

s는 타임도메인에서 미분텀이기 때문에 s에 미분 인자 대입

High pass 하이 패스 필터

 

타임도메인에서 수식을 다시 정리하면 다음과 같다.

 

라플라스 도메인, 타임 도메인, C코딩
라플라스 도메인, 타임 도메인, C코딩

 

이 수식을 y_k에 대해 정리하면 아래와 같다.

라플라스 도메인, 타임 도메인, C코딩

 

3. C 코딩

 

위 타임 도메인에서의 필터 형태를 그대로 코드로 옮기면 됨

 

coeff_a = 1 / (1 + wc * T_s); 

 

lpf_y = coeff_a * lpf_y_ex + coeff_a * (input_x - input_x_ex) ;

lpf_y_ex = lpf_y ;

input_x_ex = input_x ;