资源简介
基于卡尔曼滤波的三种经典室内定位算法:Fang、Chan、Taylor,MATLAB仿真。
代码片段和文件信息
function main
clc;
clear;
T=1;%扫描周期
N=120/T;%采样次数
X=zeros(4N);%目标真实位置、速度
X(:1)=[302402];%目标初始位置(3040)速度(220)
Z=zeros(2N);%基站对位置的观测
a=exprnd(214);%指数分布的过程噪声
Q=diag(a);%过程噪声
b=exprnd(312);
R=60*diag(b); %观测噪声均值 指数分布
A=[1T00;
0100;
001T;
0001]; %状态转移矩阵
G=[1000;
0010];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
for t=2:N
X(:t)=A*X(:t-1)+sqrtm(Q)*randn(41);%目标真实轨迹
end
MX=X(1:);
MY=X(3:);
for t=1:N
yuce=zz(MX(1t)MY(1t));
Z(:t)=[yuce(1);yuce(2)]+sqrtm(R)*randn(21);%对目标的观测
end
% Kalman滤波
Xkf=zeros(4N); %滤波后的最优估计
Xkf(:1)=X(:1);%初始化
P0=eye(4);% 误差协方差阵初始化
for i=2:N
%预测方程
Xn=A*Xkf(:i-1);%状态预测
P1=A*P0*A‘+Q;%预测误差协方差
%信息方程
K=P1*G‘/(G*P1*G‘+R);%Kalman增益
%估计方程
Xkf(:i)=Xn+K*(Z(:i)-G*Xn);%状态更新
P0=(eye(4)-K*G)*P1;%滤波误差协方差更新
end
% 误差分析
for i=1:N
Observation(i)=RMS(X(:i)Z(:i));%滤波前的误差
KalmanFilter(i)=RMS(X(:i)Xkf(:i));%滤波后的误差
end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 画图
figure
hold on;box on;
plot(X(1:)X(3:)‘-k‘);%真实轨迹
plot(Z(1:)Z(2:)‘*‘);%观测轨迹
plot(Xkf(1:)Xkf(3:)‘-r‘);%Kalman滤波轨迹
legend(‘真实轨迹‘‘观测轨迹‘‘滤波后轨迹‘)
xlabel(‘横坐标 X/m‘); ylabel(‘纵坐标 Y/m‘);
figure
hold on;box on;
plot(Observation‘-ko‘‘MarkerFace‘‘g‘)
plot(KalmanFilter‘-ks‘‘MarkerFace‘‘r‘)
legend(‘滤波前误差‘‘滤波后误差‘)
xlabel(‘观测时间/s‘); ylabel(‘误差值‘);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1690 2017-11-19 10:34 卡尔曼定位程序\chan\main.m
文件 178 2017-11-06 11:06 卡尔曼定位程序\chan\RMS.m
文件 2522 2017-11-19 11:04 卡尔曼定位程序\chan\zz.m
文件 1109 2017-11-19 11:30 卡尔曼定位程序\fang\Fang.m
文件 1723 2017-11-17 19:23 卡尔曼定位程序\fang\main.m
文件 178 2017-11-06 11:06 卡尔曼定位程序\fang\RMS.m
文件 1727 2017-11-17 19:42 卡尔曼定位程序\SI\main.m
文件 178 2017-11-06 11:06 卡尔曼定位程序\SI\RMS.m
文件 1107 2017-11-19 11:50 卡尔曼定位程序\SI\SI.m
文件 1730 2017-11-17 19:57 卡尔曼定位程序\Taylor\main.m
文件 178 2017-11-06 11:06 卡尔曼定位程序\Taylor\RMS.m
文件 1342 2017-11-19 12:07 卡尔曼定位程序\Taylor\Taylor.m
目录 0 2018-01-02 21:15 卡尔曼定位程序\chan
目录 0 2018-01-02 21:15 卡尔曼定位程序\fang
目录 0 2018-01-02 21:15 卡尔曼定位程序\SI
目录 0 2018-01-02 21:15 卡尔曼定位程序\Taylor
目录 0 2018-01-02 21:15 卡尔曼定位程序
----------- --------- ---------- ----- ----
13662 17
相关资源
- 阵列天线的matlab仿真
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
- 用matlab实现的多站定位系统性能仿真
- 通过不同方法进行粗糙集属性约简m
- k近邻算法matlab实现
- matlab识别系统
- 神经网络分类matlab程序
- matlab正弦信号发生器的设计
评论
共有 条评论