
原创代码,请勿翻卖
程序简介
概览
本程序是三维n基站CKF轨迹滤波例程的二维版本。
面向二维平面目标定位与轨迹跟踪场景,构建了一套融合AOA角度观测与TOA距离观测的混合定位算法框架。程序支持自适应基站数量设置,通过多基站角度与时间到达信息联合估计目标位置,有效提升了单一观测方式下的定位稳定性与精度。相比传统单纯AOA或TOA定位方法,该例程进一步结合轨迹运动特性,使定位结果更加连续、平滑,适用于无线定位、机器人导航、无人机协同感知、室内外目标跟踪等典型应用场景。
在轨迹滤波部分,程序引入容积卡尔曼滤波(CKF)对AOA/TOA混合定位结果进行动态平滑处理,并与纯观测结果、模拟惯导结果进行对比分析。代码不仅给出了目标真实轨迹、观测轨迹、CKF估计轨迹和基站布局的可视化结果,还输出了双轴误差曲线与RMSE对比图,便于直观评估算法性能。
运行结果
运行代码后,程序会完成二维n基站AOA与TOA混合定位轨迹仿真,并使用CKF对连续时刻的定位观测进行滤波。程序对比纯观测、模拟纯惯导和CKF滤波结果,展示容积卡尔曼滤波在二维轨迹定位中的平滑效果。
截图如下:
定位示意图.png

双轴误差图.png

RMSE对比图.png

命令行会输出终点真实坐标、滤波前纯观测误差、CKF滤波后误差,以及每时刻RMSE最大值。

MATLAB源代码
部分代码:
% AOA与TOA混合定位例程,自适应基站数量,二维平面,轨迹滤波使用CKF
% 作者:matlabfilter(v同号,例程获取、定制讲解等)
% 2026-06-12/Ver1
%% 初始化
clc; clear; close all;
rng(0);
% 生成目标初始点和二维运动轨迹
position0 = [-1, 1];
positions = repmat(position0, 21, 1) + [(0:0.2:4)', (0:-0.2:-4)'];
% 固定基站位置
num_station = 10;
stations_position = 2 * randn(num_station, 2);
estimated_positions_AOA2 = zeros(size(positions));
for i1 = 1:size(positions, 1)
position = positions(i1, :);
%% AOA与TOA混合定位观测
true_distances = vecnorm(stations_position - position, 2, 2);
azimuth_angles = atan2(position(2) - stations_position(:, 2), ...
position(1) - stations_position(:, 1));
完整代码也可通过下面链接:
https://download.csdn.net/download/callmeup/92971776
课题扩展方向
可以继续扩展为以下几个方向:
-
自适应噪声协方差的AOA/TOA-CKF融合定位方法
-
可变基站拓扑下AOA/TOA混合定位性能分析
-
非视距环境下的AOA/TOA鲁棒混合定位方法
-
基于加权融合策略的AOA/TOA高精度定位算法
-
AOA/TOA/TDOA多源异构信息融合定位研究
-
面向多目标场景的AOA/TOA联合定位与数据关联方法
-
基于IMM-CKF的多运动模型轨迹跟踪方法
-
基站位置优化对AOA/TOA混合定位精度的影响研究
如需帮助,或有导航、定位滤波相关的代码定制需求,可从个人主页左侧联系我
126

被折叠的 条评论
为什么被折叠?



