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

📄 demo2_01.m

📁 Kalman Filtering Theory and Practice, Using MATLAB
💻 M
字号:
%
% Demonstrates performance of a fixed-gain estimator as a function of gain
%
% Applied to random walk process with gaussian sampling noise
%
clear all;
close all;
N     = 1000; % Number of samples of process used in simulations
mse   = .004; % Mean squared Wiener filter error
%               (used in determining process noise)
%
% Four cases
%
R     = [.04,.02,.01,.005];    % Variance of sampling noise
for n=1:4,
   sigv  = sqrt(R(n));         % Standard Deviation of sampling noise
   Q  = mse^2/(R(n) - mse);    % Variance of random walk increments
   sigw  = sqrt(Q);            % Standard Deviation of random walk increments
   %
   % W is Wiener gain (steady state Kalman gain)
   %
   W     = (Q+(Q*(Q+4*R(n)))^(1/2))/(Q+(Q*(Q+4*R(n)))^(1/2)+2*R(n));
   %
   % Eleven values of weighting "w"
   %
   xbar  = 0;          % Initial value of true process
   for m=1:11,
      xhat(m) = xbar; % Eleven filters
      rms(m)  = 0;    % Squared filter errors (initialization)
      if m==6
         w(m) = W;    % Wiener gain
      elseif m<6
         w(m) = (m/6)*W;
      else
         w(m) = W + (1-W)*(m-6)/5;
      end;
   end;
   %
   % Simulation loop
   %
   for k=1:N;
      xbar  = xbar + sigw*randn;  % Random walk
      z     = xbar + sigv*randn;  % Noisy sample
      for m=1:11,
         xhat(m) = xhat(m) + w(m)*(z - xhat(m)); % Filtered estimates
         rms(m)  = rms(m) + (xhat(m) - xbar)^2;  % Sum of estimation errors
      end;
   end;
   %
   % Done simulating
   %
   for m=1:11,
      rms(m) = sqrt(rms(m)/N);   % Root-mean-squared esitmation errors
   end;
   plot(w,rms);
   title('DEMO #1: RMS Filter Error versus Weight (w) --- Four Cases');
   xlabel('Filter weight (w)');
   ylabel('RMS Estimation Error');
   text(W-.015,min(rms),'W');
   hold on;
end;


⌨️ 快捷键说明

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