资源简介
运动物体的轨迹预测,分别使用卡尔曼滤波、扩展卡尔曼滤波、无迹卡尔曼滤波以及数据拟合方法实现。本例代码仅含数据拟合部分代码。
本例仅为本人在研究轨迹预测问题时为理解算法原理所写,针对具体问题请自行斟酌算法适用性。
本例代码详解后续会在本人博客中做具体说明,欢迎讨论!
代码片段和文件信息
clear all
clc
%纬度
latitude = load(‘C:\workspace\matlab workspace\CES9937\latitude.txt‘);
%经度
longitude = load(‘C:\workspace\matlab workspace\CES9937\longitude.txt‘);
%每五对数据点做一次数据拟合
%以第六对数据点的纬度值作为基准点,计算经度值
%计算真实经度值和通过拟合曲线计算出的经度值之间的差值
%=================================================================
%真实值与拟合值之差
err_fit = [];
%用来做数据拟合的点集
data_fit_lat = [];
data_fit_lon = [];
%数据拟合得到的结果集
data_fit = [];
%对应的真实数据集合
data_real = [];
%拟合预测过程
for i = 1:length(latitude)
%当前用来做数据拟合的集合中有几组数据
n = length(data_fit_lat);
%当集合中的数据不满足拟合需要的最少数据点时,继续向集合中添加数据
if n<=10
data_fit_lat(n+1) = latitude(i);
data_fit_lon(n+1) = longitude(i);
continue
end
%当集合中的数据满足拟合需要的最少数据点时
%曲线拟合
if i %最小二乘拟合-二阶拟合
line_fit = polyfit(data_fit_latdata_fit_lon2);
%通过拟合函数求下一时刻经度值
lon_fit = polyval(line_fitlatitude(i+1));
%保存结果
df = length(data_fit);
data_fit(df+1) = lon_fit;
%计算预测值与真实值之间的差值
m = length(err_fit);
err_fit(m+1) = abs(longitude(i+1) - lon_fit);
%记录真实值
dr = length(data_real);
data_real(dr+1) = longitude(i+1);
%更新拟合数据
data_fit_lat(1) = [];
data_fit_lat(10) = latitude(i+1);
data_fit_lon(1) = [];
data_fit_lon(10) = longitude(i+1);
end
end
%=================================================================
%绘制误差图
k = 1:length(err_fit);
figure
hold on;
grid on;
plot(kerr_fit‘k.‘);
xlabel(‘X‘);
ylabel(‘误差值‘);
title(‘拟合‘);
%绘制预测值与真实值曲线图
b = 1:length(data_real);
figure
hold on;
grid on;
plot(bdata_real‘g.-‘bdata_fit‘r.-‘);
xlabel(‘X‘);
ylabel(‘误差值‘);
title(‘拟合‘);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 153993 2018-07-24 16:28 CES9937\CES9937.docx
文件 1825 2018-07-17 15:07 CES9937\latitude.txt
文件 2051 2018-07-17 15:15 CES9937\longitude.txt
文件 410 2018-07-17 11:16 CES9937\飞行数据-20组.txt
文件 2000 2018-08-14 13:46 re_fit_4.m
目录 0 2018-08-14 20:18 CES9937
----------- --------- ---------- ----- ----
160279 6
- 上一篇:FPGA_VHDL 自动售货机
- 下一篇:ADC0804数据手册
相关资源
- 如何使用FULLBNT工具箱(中文)
- 快速理解DFT
- 单目标优化含约束
- 原子分解算法Atomizer
- 室内定位RSS位置指纹法-KNN代码与数据
- 利用联合对角化技术进行信号盲分离
- 直流无刷电机双闭环控制系统仿真模
- 郑州大学随机信号处理大作业 附程序
- 气候分析中检验突变程序(滑动t检验
- 双馈风电机组DFIG的详细仿真模型
- 基于LIBSVM的图像分类
- 转子动力学求解转子系统前三个临界
- 图片颜色互相转换:RGB HSV CIE Lab CIE
- 卡尔曼滤波动态跟踪.rar
-
em
bedded Coder Support Package for Texas In - 直流微电网模型含蓄电池控制.zip
- 搭建双向DC-DC双电路,实现直流微网并
- CORDIC的资源
- MATLAB夜间车牌识别程序
- PSO_final 光伏阵列MPPT
- servo_foc
-
simuli
nk 利用Matlab/simuli nk搭建纯电 - 基于H桥级联型五电平逆变器的Matlab仿
- 自动泊车
- 轴承动力学建模matlab
- 晶粒再结晶的元胞自动机模拟
- 自己开发的风资源分析工具包WindAna
- 基于分数阶傅里叶变换的双随机图像
- InSAR_Mt_Etna仿真代码
- 基于遗传算法优化的BP神经网络
评论
共有 条评论