小车直线运动卡尔曼滤波,入门简单程序,拿走不谢。

代码来自于B站一个视频,我把它写出来并且在于变量noise我觉得他写的不够好所以自作主张改进一下,自己也补充了一点注释,增加了迭代次数,等小改动,欢迎批评指正。多谢。
该视频在B站的地址:https://www.bilibili.com/video/av4356232?from=search&seid=16010925919274859096

z = (1:300);%观测值矩阵
noise = 1+ sqrt(1) * randn(1,300);%方差为1的高斯噪声,很大了
z=z+noise;%带噪声的观测值
X = [0;0];%初始状态,第一个是位置,第二个是速度,初始值不是很重要
P = [1 0; 0 1];%初始的协方差矩阵,初始值不是很重要
F = [1 1;0 1];%转态转移矩阵,第一行第二列是时间步长,看看小车例子就知道这个转移矩阵怎么来
Q = [0.001 0;0 0.001];%转态转移矩阵的协方差
H = [1 0];%观测矩阵
R =1;%观测噪声,噪声方差
figure;
hold on;
for i=1:300%迭代300次,直接带入卡尔曼滤波的五条公式,(注意下一行开始到end行之前,在matlab中要缩进,自己补充上)
X_ = FX;
P_ = F
PF’+Q;
K = P_H’/(HP_H’+R);
X = X_+K
(z(i) - H
X_);
P = (eye(2)-K*H)*P_;
plot(X(1),X(2),’.’,‘Color’,[1 0 0]);%第一个(横轴)表示位置,第二(纵轴)表示速度
axis([0 300,0 2]);
end

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值