资源简介
运动物体的轨迹预测,分别使用卡尔曼滤波、扩展卡尔曼滤波、无迹卡尔曼滤波以及数据拟合方法实现。本例代码仅含数据拟合部分代码。
本例仅为本人在研究轨迹预测问题时为理解算法原理所写,针对具体问题请自行斟酌算法适用性。
本例代码详解后续会在本人博客中做具体说明,欢迎讨论!
![](http://www.nz998.com/pic/42047.jpg)
代码片段和文件信息
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数据手册
相关资源
- 编程实现二维DCT变换
- 图像二值化
- 用FFT对信号进行频谱分析
- Tone-Reservation
- QGA 量子遗传算法
- 差分形式的阻滞增长模型
- 遗传算法的M文件
- 简单二阶互联系统的非线性动力学分
- 手写数字识别-模板匹配法
- Stock_Watson_动态因子分析模型
- 果蝇优化算法优化支持向量回归程序
- 自己做的一个简单GUI扑克纸牌识别-
- multi output SVR
- AR过程的线性建模过程与各种功率谱估
- PCNN TOOLBOX
- plstoolbox.zip
- 中国国家基础地理信息系统GIS数据
- 粒子群微电网优化调度
- 矩阵分析-经典教材-中文版-Roger.A.Ho
- 压缩感知TwIST
- 基于最小错误率的贝叶斯手写数字分
- 最全系统辨识源代码,包括多种最小
- 导弹制导实验
- 画跟踪精确度图的程序.zip
- 重力场大地水准面及重力异常阶次误
- prtools5.2.3工具包
- 脉冲耦合神经网络工具箱PCNN-toolbox
- SVM算法-回归拟合程序.zip
- Kriging代理模型EGO算法.zip
- Matalb实现停车场完整系统
评论
共有 条评论