kalman例子

% Kalman filter example demo in Python
% A Python implementation of the example given in pages 11-15 of "An
% Introduction to the Kalman Filter" by Greg Welch and Gary Bishop,
% University of North Carolina at Chapel Hill, Department of Computer
% Science, TR 95-041,
% http://www.cs.unc.edu/~welch/kalman/kalmanIntro.html
% by Andrew D. Straw






% intial parameters
clear,close all
sz = 50; % size of array
x = -0.37727; % truth value (typo in example at top of p. 13 calls this z)
z = 0.1*randn(1,50)+x; % observations (normal about x, sigma=0.1)


Q = 1e-5; % process variance
R =0.1^2 ;% estimate of measurement variance, change to see effect  0.1^2


% allocate space for arrays
xhat=zeros(sz);      % a posteri estimate of x
P=zeros(sz);         % a posteri error estimate
xhatminus=zeros(sz); % a priori estimate of x
Pminus=zeros(sz);    % a priori error estimate
K=zeros(sz);        % gain or blending factor




% intial guesses
xhat(1) = 0.0;
P(1) = 1.0;


for k=2:sz
    % time update
    xhatminus(k) = xhat(k-1);
    Pminus(k) = P(k-1)+Q;


    % measurement update
    K(k) = Pminus(k)/( Pminus(k)+R );
    xhat(k) = xhatminus(k)+K(k)*(z(k)-xhatminus(k));
    P(k) = (1-K(k))*Pminus(k);
end
x=zeros(50)-0.37727 ;%每个值都是0.37727
w=1:50;
plot(w,x,' ',w,z,'+',w,xhat,'-');
legend('true value','noisy measurements','a posteri estimate')
axis([1 50 -0.7 0]);%define the range of the axises
xlabel('Iteration')

ylabel('Voltage')



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值