Matlab关于粒子滤波代码与卡尔曼做比较-untitled3.fig
部分程序如下:
function ParticleEx1
% Particle filter example, adapted from Gordon, Salmond, and Smith paper.
x = 0.1; % initial state
Q = 1; % process noise covariance
R = 1; % measurement noise covariance
tf = 50; % simulation length
N = 100; % number of particles in the particle filter
xhat = x;
P = 2;
xhatPart = x;
% Initialize the particle filter.
for i = 1 : N
xpart = x sqrt * randn;
end
xArr = [x];
yArr = [x^2 / 20 sqrt * randn];
xhatArr = [x];
PArr = [P];
xhatPartArr = [xhatPart];
close all;
for k = 1 : tf
% System simulation
x = 0.5 * x 25 * x / 8 * cos) sqrt * randn;%状态方程
y = x^2 / 20 sqrt * randn;%观测方程
% Extended Kalman filter
F = 0.5 25 * / ^2;
P = F * P * F' Q;
H = xhat / 10;
K = P * H' * ^;
xhat = 0.5 * xhat 25 * xhat / 8 * cos);%预测
xhat = xhat K * ;%更新
P = * P;
% Particle filter
for i = 1 : N
运行结果:
Figure39.jpg
2022-11-21 16:31:41
9KB
matlab
1