⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kalman_intro.m

📁 kalman的经典介绍文章
💻 M
字号:
% Kalman filter example demo in Matlab% This M code is modified from Andrew D. Straw's Python % implementation of Kalman filter algorithm.% The original code is here:% http://www.scipy.org/Cookbook/KalmanFiltering% Below is the Python version's comments:        % 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.htm        % by Andrew D. Straw% by Xuchen Yaoclear all;close all;% intial parametersn_iter =200;sz = [n_iter, 1]; % size of arrayx = -0.37727; % truth value (typo in example at top of p. 13 calls this z)z = x + sqrt(0.1)*randn(sz); % observations (normal about x, sigma=0.1)Q = 1e-5; % process variance% allocate space for arraysxhat=zeros(sz);      % a posteri estimate of xP=zeros(sz);         % a posteri error estimatexhatminus=zeros(sz); % a priori estimate of xPminus=zeros(sz);    % a priori error estimateK=zeros(sz);         % gain or blending factorR = 0.05; % estimate of measurement variance, change to see effect% intial guessesxhat(1) = 0.0;P(1) = 1.0;for k = 2:n_iter    % 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);endfigure(1);plot(z,'k+');hold on;plot(xhat,'b-')hold on;plot(x*ones(sz),'g-');legend('noisy measurements', 'a posteri estimate', 'truth value');xlabel('Iteration');ylabel('Voltage');hold off;figure(2);valid_iter = [2:n_iter]; % Pminus not valid at step 1plot(valid_iter,Pminus([valid_iter]));legend('a priori error estimate');xlabel('Iteration');ylabel('$(Voltage)^2$');ylim([0,.01]);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -