저주파 통과 필터 (low pass filter)

유명현·2022년 1월 15일
0
post-thumbnail

저주파 통과 필터 특징

1) 저주파 신호는 통과시키고 고주파 신호를 걸러내는 필터
2) 노이즈 제거에 많이 사용 (신호는 저주파, 노이즈는 고주파 성분으로 되어 있기 때문)
3) 저주파 통과 필터는 저주파만 통과시키는 특성을 가진 모든 필터를 총칭

저주파 통과 필터는 이동평균필터 한계로 인해 많이 사용된다.

이동평균 필터는 노이즈를 제거와 변화 추이를 반영 이 두가지 조건을 충족하기가 어려워 저주파 통과 필터를 많이 사용합니다.

<이동평균필터 식>

위는 이동 평균 필터입니다. 이동평균필터는 모든 데이터에 똑같이 가중치 1/n을 하기때문에 최신 데이터의 반영이 느립니다. 이런 단점 떄문에 변화가 시심한 신호에 적용하면 노이즈 제거와 변화 민감성 둘 조건을 충족하기 어렵습니다.

1차 저주파 통과 필터

위와같은 이동평균 필터의 단점을 보완하기 위헤 저주파 통과 필터를 사용합니다.

<고주파 통과 필터 식>

위의 식을 보면 0<α<1d 범위를 가지고 있고 그러므로 α(1 - α) < 1 - α의 관게가 성립합니다.
즉 최근 측정값이 이전 측정값보다 더큰 가중치를 가지고 있습니다. 그렇기 떄문에 이동평균 필터보다 노이즈와 반영 민감성 두 조건을 충족 시킬 수 있습니다.

α값을 어떻게 정하면 좋을까요?
1)α가 큰 경우 -> 노이즈 제거 부족, 변화에 민감
2)α가 작은 경우 -> 노이즈 제거 향상, 변화에 둔감

α값의 선정은 신호를 어떻게 처리할 꺼냐에 따른 목적에 맞게 사용자가 설정해야 합니다.

저주파 통과필터 (C code)

#define ALPHA 0.7
uint32_t low_pass_filter (uint32_t data)
{
    static uint8_t filter_is_first = 1u;
    static uint32_t prev_data;
    uint32_t now_data;
    
    if(1u == filter_is_first)
    {
    	prev_data = data;
        filter_is_first = 0u;
    }
    
    now_data = (prev_data * ALPHA) + ((1 - ALPHA) * data)
    
    return now_data;
}
profile
기억보다 기록을

0개의 댓글