Matlab Kalman Filter Source




% Kalman Filter MATLAB Simulation Example.

%

% Estimation of random constant by WonwooPark

% Original Code of Andrew D. Straw



% initial parameters

n_iter = 50;

data_size = n_iter;






x = -0.37727; % truth value

sigma = 0.1; % sigma

z = x+randn(1, data_size)*sigma; % observations (normal about x, sigma=0.1)



Q = 1e-5; % process variance



% allocate space for array

xhat = zeros(1, data_size); % a posteri extimate of x

P = zeros(1, data_size); % a posteri error estimate

xhatminus = zeros(1, data_size); % a priori estimate of x

Pminus = zeros(1, data_size); % a priori error estimate

K = zeros(1, data_size); % gain or blending factor



R = 1; % Estimate of measurement variance. chage to see effect



% initial guess

xhat(1) = 0;

P(1) = 1;



for k=2:n_iter

% time update (prediction)

xhatminus(k) = xhat(k-1); % Project the state ahead

Pminus(k) = P(k-1)+Q; % Project the error covariance ahead



% measurement update

K(k) = Pminus(k)/(Pminus(k)+R); % Kalman gain

xhat(k) = xhatminus(k)+K(k)*(z(k)-xhatminus(k)); % measurement

P(k) = (1-K(k))*Pminus(k); % error covariance

end



close all;

figure(1); subplot(211);

hold on;

x1 = x*ones(1, data_size);

plot(x1, 'b'); plot(z, 'r-+'); plot(xhat, 'g');

legend('truth value', 'noisy measurements', 'a posteri estimate');

hold off;

title(['Simulation with R=' num2str(R)]);

xlabel('iteration'); ylabel('voltage');



subplot(212);

plot(Pminus(2:n_iter));

title('a priori error estimate'); xlabel('iteration'); ylabel('voltage^2');


  • 좋은 자료 감사합니다.
  • 2014/04/28 15:15답글
    물체 추적 하시나요?
  • Extended KF도 있나요?
  • 2014/07/16 10:42답글
    소스를 말씀하시는가요?
    구글링해보시면 안나오나요?
  • 퀀트 파이낸스 쪽에서 제일 폼나는게 바로 이 칼만필터와 몬테카를로 시뮬레이션이더군요. 칼만 필터는 미사일 추적 장치에 쓴다지요 ?! 파이낸스 쪽 GPU예제는 거의 전부가 MC일 정도로 인기가 많구요 ! 마침 파이썬과 R 게시판이 따로 있으니 얘네들은 이쪽에 맞는 (financial) signal processing 예제들을 좀 뒤져봐야겠군여.
  • 2014/09/10 13:12답글
    퀀트 파이낸스 쪽에서 제일 폼나는게 바로 이 칼만필터와 몬테카를로 시뮬레이션이더군요. 칼만 필터는 미사일 추적 장치에 쓴다지요 ?!
    >> 네 처음에 그 용도 개발 되었죠. 최근엔 센서 보정에도 많이 씁니다.

    파이낸스 쪽 GPU예제는 거의 전부가 MC일 정도로 인기가 많구요 !
    >> 파이낸셜 예제 몇개 올려줘 보세요~ 저도 궁금하네요.

    마침 파이썬과 R 게시판이 따로 있으니 얘네들은 이쪽에 맞는 (financial) signal processing 예제들을 좀 뒤져봐야겠군여.
    >> 그러세요. 근데 경제학 쪽 예제는 많이 없을 겁니다. 공학도들은 그쪽 예제는 배우질 않아서 ... ^^
    >> 뭐... 수학적 알고리즘은 비스하겠지만 말이죠..
  • 길똥고 에... 파이낸스 쪽 예제가 드문게, 제대로 되면 공개를 (당연히) 안합니다. 짐 사이먼스처럼 헷지펀드를 만들어버리지요 ! 그리고 결과는 아마 무덤까지 가져가겠지요. 제대로 안나올 때, 이걸 이렇게 볼 수도 있다, 더 연구해 볼 여지가 있다고 공개가 되지여...
    가만히 보니까, 칼만필터/마르코프체인/볼츠만머신이 공통점이 있더군요. 시그널 프로세싱, 언어개념, 열역학 등 전혀 다른 도메인의 문제를 해결하고자 나온 이론들이지만, 이미 아는(旣知) 상태로 부터 아직 모르는(未知) 상태를 추정한다는 동일한 목적을 갖고 있다는 거지요. 그 핵심이 아마 '우연성' 혹은 '무작위성' 이라는 소금과 후추가 반드시 들어가야 한다는 점인거 같구요 !!
  • 2014/09/10 14:41답글
    함지 탁월한 관찰 이십니다.

    모든 다른 분야의 학문이
    궁극에는 유사한 형태의
    결론에 도달하게 된다고 하던데

    이 경우가 그런 경우인가 봅니다~
  • 2014/09/10 14:42답글
    함지 경제학에서 괄목할만한
    공학적 성과가 나오면
    며느리도 안가르쳐 주는 거로군요. ^^

    혹시 그거 유태인들의 전통에서
    유래한거 아닌가요?
    탈무드에 보면 돈에 관한한 철저한
    그런 가르침이
    종종 나오거든요.

    참고: http://cafe.naver.com/iphonediy/513

댓글

이 블로그의 인기 게시물

파이썬으로 Homomorphic Filtering 하기

파이썬으로 2D FFT/iFFT 하기: numpy 버전