1. 기본코드
public class Kalman {
private static final double Q = 0.00001;
private static final double R = 0.001;
private double P = 1;
private double X = 0;
private double K;
public Kalman(double value) {
X = value;
}
// 계산
private void measurementUpdate() {
K = (P + Q) / (P + Q + R);
P = R * (P + Q) / (P + Q + R);
}
// 현재값을 받아 계산된 공식을 적용하고 반환한다
public double update(double measurement) {
measurementUpdate();
X = X + (measurement - X) * K;
return X;
}
}
- 상수 Q와 R의 이해가 필요
- 주 사용처 : 센서(온도, 습도, 자기장, 가속도계), RSSI 시그널 등의 오차 계산
- 칼만필터 위키백과 :
https://ko.wikipedia.org/wiki/%EC%B9%BC%EB%A7%8C_%ED%95%84%ED%84%B0