
本质上是 AOA 定位,测距信息只作为辅助约束引入;带距离辅助的 AOA 定位是在纯 AOA 定位基础上的精度增强方法。适用于平面(二维)
原创代码,禁止翻卖。可联系我获取更多代码例程、讲解和定制
程序介绍
本文件夹为 固定目标 场景的二维平面定位版本。程序使用二维基站坐标 (x, y) 和目标坐标 (x, y),量测信息为方位角 AOA 与距离。
运行主程序后会生成二维轨迹/定位结果图、坐标跟踪图、误差曲线或误差统计柱状图,并在 MATLAB 命令行输出关键误差指标,包含仅AOA的传统方法和本例程提出的AOA+测距辅助的创新方法。代码中的随机种子保持为 rng(0),便于复现实验结果。
运行结果
定位示意图:

单次定位结果误差对比:

多次定位(蒙特卡洛)结果对比:

统计特性:

命令行截图:

MATLAB源代码
部分代码如下:
% AOA二维定位,测距仅作为辅助精度增强
% 作者微信:matlabfilter(可联系获取完整例程、个性化定制和讲解)
% 本代码本质是AOA定位,测距只作为辅助信息。
% 2026-06-10/2D:由三维空间版本重新整理为二维平面定位版本
% 2026-06-16/Ver2:增加Monte Carlo实验,使mean、RMSE、Std等统计量具有统计意义
%% 初始化
clc; clear; close all;
rng(0);
%% 参数设置
num_station = 3;
num_target = 1;
num_mc = 500; % Monte Carlo重复次数
scene_name = '3个基站二维固定目标';
target_scale = 10;
station_scale = 20;
AOA_noise = 1e-2; % AOA角度量测噪声标准差/rad
distance_noise = 0.1; % 距离量测噪声标准差/m
if num_station < 2 || mod(num_station, 1) ~= 0
error('num_station必须为不小于2的整数,二维AOA定位建议设置为2或更多。');
end
if num_mc < 2 || mod(num_mc, 1) ~= 0
error('num_mc必须为不小于2的整数,否则无法进行有效的Monte Carlo统计。');
end
%% 固定真实几何构型
% Monte Carlo实验中,基站位置和目标真实位置保持不变,重复生成不同的量测噪声。
% 这样统计得到的mean、RMSE、Std反映的是同一场景下算法对随机量测噪声的响应。
position = target_scale * randn(num_target, 2);
stations_position = station_scale * randn(num_station, 2);
%% Monte Carlo定位估计
estimated_positions_AOA1_MC = zeros(num_target, 2, num_mc); % 不带距离辅助AOA
estimated_positions_AOA2_MC = zeros(num_target, 2, num_mc); % 带距离辅助AOA
for i_mc = 1:num_mc
for i_target = 1:num_target
[estimated_positions_AOA1_MC(i_target, :, i_mc), ...
estimated_positions_AOA2_MC(i_target, :, i_mc)] = ...
estimateAoaRange2D(stations_position, position(i_target, :), AOA_noise, distance_noise);
end
end
完整代码下载:https://download.csdn.net/download/callmeup/92989834
程序扩展方向
可以从下面几个方向扩展:
-
由二维定位扩展为三维 AOA/测距融合定位(例程已跑通,详见:https://blog.csdn.net/callmeup/article/details/161823112?spm=1011.2415.3001.5331)
-
引入加权最小二乘,提高不同基站噪声条件下的定位精度
-
将单点定位扩展为运动目标轨迹跟踪
-
融合 EKF、UKF 或 CKF 实现递推式动态定位
-
研究不同基站数量与几何构型对定位精度的影响
-
加入 GDOP/CRLB 分析,用于评价定位构型优劣
-
扩展为多目标同时定位与误差统计分析
-
考虑角度噪声、距离噪声不一致时的自适应权重分配
如需帮助,或有导航、定位滤波相关的代码定制需求,可从个人主页左侧联系我
1万+

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



