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

📄 incorrec.m

📁 it is a source code from internet
💻 M
字号:
%INCORREC  Random walk incorrectly modeled as a random constant.

%Kai Borre, 04-13-97
%Copyright (c) 1997 by Kai Borre
%$Revision: 1.0 $  $Date: 1997/09/22  $

e = exist('incorrec.eps');
if e ~= 0
   delete incorrec.eps
end

% Random walk process simulated using Gaussian random numbers
% with zero mean and unit variance ~ N(0,1)
tmax = 100;
t = 0:tmax;
rwp = randn(size(t));

%We assume the following lines generate a one-dimensional random walk
rw(1) = rwp(1);
for i = 1:tmax
   rw(i+1) = rw(i) + rwp(i+1);
end

% Generation of true model
F = 1;
A = 1;
Q = 1;
R = 0.1;
% Initial conditions
x_minus = 0;
P_minus = 1;
% Artificial way of creating observations
b = rw + randn(size(t));
% Kalman filtering
for i = 0:tmax
   [x_plus, P_plus, K, innovation_var] = ...
               k_updatx(x_minus, P_minus, A, b(i+1), R, Q);
   % fprintf(' %4g %4g \n',i,K);
   x_minus = x_plus;
   P_minus = P_plus;
   % Storing
   x_plus_corr = [x_plus_corr x_plus];
   % fprintf(' %4g %8.4f %8.4f %8.4f %8.4f %8.4f\n',...
                  % i, x_plus, P_plus, x_minus, P_minus, b(i+1));
end

% Generation of incorrect model
Q = 0;
% Initial conditions
x_minus = 0;
P_minus = 1;
% Kalman filtering
for i = 0:tmax
   [x_plus, P_plus, K, innovation_var] = ...
                   k_updatx(x_minus, P_minus, A, b(i+1), R, Q);
   %  fprintf(' %4g %4g \n',i,K);
   x_minus = x_plus;
   P_minus = P_plus;
   % Storing
   x_plus_inc = [x_plus_inc x_plus];
   % fprintf(' %4g %8.4f %8.4f %8.4f %8.4f %8.4f\n',...
                      % i, x_plus, P_plus, x_minus, P_minus, b(i+1));
end

figure;
pl1 = plot(t,b,'yo',t,rw,'r-',t,x_plus_corr,'b:',t,x_plus_inc,'c--');
set(pl1,'Markersize',4);
title('Simulated random walk process','Fontsize',16)
ylabel('State variable','Fontsize',16)
legend('Observations','Random walk process', ...
                'Filter with correct model',...
                'Filter with incorrect model');
set(gca,'Fontsize',16);
legend('Observations','Random walk process',...
                 'Filter for correct model',...
                 'Filter for incorrect model');
pause
print incorrec -deps
%%%%%%%% end incorrec.m  %%%%%%%%%%%%%%%%%%

⌨️ 快捷键说明

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