资源简介
在做课程设计的时候遇到了运用卡尔曼滤波进行移动目标跟踪问题,对此参考了很多资源,完成了题目要求,如果有做卡尔曼滤波的可以放心下载,有详尽注释。

代码片段和文件信息
clc;clear all;close all;
T=1; %采样周期
N=100/T; %总的采样次数
r=1.01;var_u=1;var_w=3; %几个参数初始化赋值
A=[r000;0r00;T*(1+r)/2010;0T*(1+r)/201];
B=[10T/20;010T/2]‘;
Q=var_u*eye(2);
H=[0010;0001];
p11=(T^2*var_u+8*r^2*var_w)/(T^2*(1+r)^2);
p13=2*r*var_w/(T*(1+r));
M22=[p110p130;0p110p13;p130var_w0;0p130var_w];
xd=zeros(2N);
S=zeros(4N); %信号矢量vxvyxy
S(:1)=[1111]; %x四维,初始绝对位置(11)水平速度2,垂直速度2 %(:1)取第一列
Z=zeros(2N);
Z(:1)=[S(31)S(41)]; %z只观测到位置,没有速度,zx观测值
Z1=zeros(2N); %z真实相对观测值
Z1(:1)=Z(:1); %z只观测到位置,没有速度,zx观测值
Skf=zeros(4N); %卡尔曼滤波结果
Skf(:1)=S(:1);
%%%运动模型,状态模型s(n)=As(n-1)+Bn和观测到的Z
for i = 2:N
S(:i)=A*S(:i-1)+B*var_u*randn(21);
Z(:i)=H*S(:i)+var_w*randn(21);
xd(:i)=xd(:i-1)+[1;0]; %沿着x轴匀速
Z1(:i)=Z(:i)-xd(:i); %观测真实相对值
end
zx1=Z(11);zx2=Z(12);zy1=Z(21);zy2=Z(22);
db=2*r/(T*(1+r));
Skf(:2)=[db*(zx2-zx1)db*(zy2-zy1)zx2zy2];%s[2|2]
%%%滤波的
for i=3:N
S_pre=A*Skf(:i-1); %s[k|k-1]=As[k-1|k-1]
M_pre=A*M22*A‘+var_w*(B*B‘); %M[k|k-1]=AM[k-1|k-1]A‘+var_w*BB‘
K=M_pre*H‘/(H*M_pre*H‘+var_w*eye(2)); %K[k]=M[k|k-1]H‘(HM[k|k-1]H‘+var_w*I)-1
Skf(:i)=S_pre+K*(Z(:i)-H*S_pre);
M22=(eye(4)-K*H)*M_pre; %M[k|k]=(I-KH)*M[k|k-1]
end
%%%绘图
figure;
hold on;
plot(S(3:)S(4:)‘-k‘); %位置轨迹
plot(Z(1:)Z(2:)‘-b.‘); %观测轨迹
% plot(Z1(1:)Z1(2:)‘-m*‘); %真实位置
plot(Skf(3:)Skf(4:)‘-r+‘); %Kalman估计轨迹
hold off;legend(‘真实轨迹‘‘观测轨迹‘‘滤波轨迹‘)
%%%误差计算模块
for i=1:N
Err_Observation(i)=RMS(S(:i)Z(:i));
Err_KalmanFilter(i)=RMS(Skf(:i)Z(:i));
end
figure;
hold on; box on;
plot(Err_Observation‘-ko‘‘MarkerFace‘‘g‘)
plot(Err_KalmanFilter‘-ks‘‘MarkerFace‘‘r‘)
legend(‘滤波前误差‘‘滤波后误差‘)
%%%第二问引入传感器误差引入改变之后的矩阵
% var_d=2; %传感器方差
% var_n=var_d+var_w;%M[2|2]中出现的
% p11_n=(T^2*var_u+8*r^2*var_n)/(T^2*(1+r)^2);
% p13_n=2*r*var_n/(T*(1+r));
% M22_n=[p11_n0p13_n0;0p11_n0p13_n;p13_n0var_n0;0p13_n0var_n];
% Skf_n=zeros(4N); %卡尔曼滤波结果
% Skf_n(:1)=S(:1);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 2372 2020-04-12 19:33 卡尔曼滤波\kal_test.m
文件 2376 2020-04-12 19:36 卡尔曼滤波\kal_test2.m
文件 174 2020-04-12 10:52 卡尔曼滤波\RMS.m
文件 149886 2020-04-14 23:16 卡尔曼滤波\题目描述1.png
文件 41930 2020-04-14 23:17 卡尔曼滤波\题目描述2.png
目录 0 2020-04-14 23:18 卡尔曼滤波
----------- --------- ---------- ----- ----
196738 6
- 上一篇:多目标跟踪仿真
- 下一篇:声卡测试音频-正弦波-各种频率
相关资源
- 卡尔曼滤波与组合导航原理_第三版
- 卡尔曼滤波与组合导航原理
- 交互多模IMM 卡尔曼滤波
- 卡尔曼滤波、自适应卡尔曼、抗差卡
- 卡尔曼滤波初学详解,包你懂!
- 滤波-卡尔曼滤波-互补滤波
- 双向不敏卡尔曼滤波的无源定位算法
- 容积卡尔曼滤波(CKF)和嵌入式容积
- 卡尔曼滤波与组合导航
- 基于Verilog HDL的卡尔曼滤波器的设计
- 卡尔曼滤波理论与实践英文原版+代码
- 基于PCA的人脸识别
- 卡尔曼滤波 宋文尧
- mpu6050+地磁传感器通过卡尔曼滤波得出
- K5环境+STM32+MPU6050+卡尔曼滤波源码
- 一种改进扩展卡尔曼滤波新方法
- 基于扩展卡尔曼滤波EKF的机器人SLAM问
- 卡尔曼滤波器及其应用基础.pdf
- Fundamentals of Kalman Filtering A Practical A
- 平衡车卡尔曼滤波
- 卡尔曼滤波理论及其在导航系统中的
- kalman滤波理论及其在导航系统中的应
- MPU6050姿态解算STM32源码(互补滤波、
- 卡尔曼滤波算法在FPGA中实现-Verilog代
- 卡尔曼滤波与维纳滤波 现代时间序列
- 自适应卡尔曼滤波算法
- 卡尔曼滤波与组合导航原理.pdf
- 两轮平衡小车K5环境+STM32+MPU6050+卡尔曼
- 卡尔曼滤波 宋文尧
- 核函数的所有代码
评论
共有 条评论