여기에서는 간단하 예제를 통해, 평균 필터가 잘 작동하는지 확인해보자.
--------------------------------------------------------------------------------------------------------------
고평균 연구원은 전기차의 배터리를 연구한다. 새로 들어온 배터리의 전압을 측정하는데, 잡음이 심해서 잴 때마다 달랐다. 그래서 일정 시간 동안 측정 데이터를 모아서 평균을 내보기로 했다. 전압은 0.2초 간격으로 측정한다.
--------------------------------------------------------------------------------------------------------------
아래 R 코드는 위 문제를 풀기 위한 테스트 프로그램이다. 측정된 전압은 평균이 14.4볼트이고, 잡음이 섞여있는데 이 잡음은 평균은 0이고 표준편차가 4인 정규분포를 따른다고 가정했다.
rm(list = ls())
set.seed(123)
dt = 0.2
t = seq(0, 10, 0.2)
Nsamples = length(t)
Avgsaved = rep(0, Nsamples)
Xmsaved = rep(0, Nsamples)
w = 0 + 4*rnorm(Nsamples, mean = 0, sd = 1);
z = 14.4 + w;
prevAvg = 0;
for (n in 1:Nsamples)
{
xm = z[n];
alpha = (n-1)/n;
avg = alpha * prevAvg + (1-alpha)*xm;
prevAvg = avg;
Avgsaved[n] = avg;
Xmsaved[n] = xm;
}
plot(t, Xmsaved)
points(t, Avgsaved, col="red")
워낙 계산식이 간단하다 보니, 구현 코드도 얼마 되지 않는다. 오히려 알고리즘과 직접 관련 없는 코드가 더 많은 모습이다.
위 그림은 측정 전압과 평균 필터의 출력값을 비교한 그래프이다. 측정 전압은 위아래로 변동이 심하지만, 평균 필터 출력은 추이가 안정되어 있다. 그리고 데이터가 쌓여가면서 측정 잡음은 제거되고 차츰 원래의 평균 전압에 근접해간다. 이처럼 어떤 물리량의 측정값을 평균 내면, 잡음이 제거된다고 한다. 이것이 평균 계산식에 "필터"라는 이름이 붙은 이유이다.
'노트 > Kalman Filter' 카테고리의 다른 글
칼만 필터 알고리즘 - 시스템 모델 (0) | 2016.04.09 |
---|---|
칼만 필터 알고리즘 - 예측 과정 (0) | 2016.04.01 |
칼만 필터 알고리즘 - 추정 과정 (0) | 2016.03.22 |
칼만 필터 알고리즘 - 개요 (0) | 2016.03.19 |
저주파 통과 필터 - 1차 저주파 통과 필터 R코드 (0) | 2016.03.15 |
저주파 통과 필터 - 1차 저주파 통과 필터 (0) | 2016.03.14 |
이동평균 필터 - 이동평균의 재귀식을 사용할 때의 한계 (0) | 2016.03.14 |
이동평균 필터 - 이동평균의 재귀식 R 코드 (0) | 2016.03.14 |
이동평균 필터 - 이동평균의 재귀식 (0) | 2016.03.11 |
평균 필터 - 평균의 재귀식 (0) | 2016.03.09 |