
原创代码,请勿翻卖。附下载链接,有中文注释
文章目录
程序介绍
本程序基于MATLAB构建五基站二维目标定位仿真模型,采用到达角(Angle of Arrival,AOA)定位方法,并引入距离测量信息辅助目标位置估计,实现二维平面内固定目标的定位与误差分析。
AOA定位通过多个基站测得的目标方位角确定目标位置,其定位结果受到角度测量误差及基站几何分布的影响。为分析距离观测信息的作用,程序设置纯AOA定位和AOA结合距离辅助定位两种方案,对比不同测量信息下的定位结果。
运行结果


命令行窗口输出的内容:

运行演示:
AOA+测距辅助定位\二维\5个基站
MATLAB源代码
部分代码的演示如下:
matlab
% AOA二维定位,测距仅作为辅助精度增强
% 作者 V:matlabfilter(可联系获取完整例程、个性化定制和讲解)
% 本代码本质是AOA定位,测距只作为辅助信息。
% 2026-06-10/2D:由三维空间版本重新整理为二维平面定位版本
%% 初始化
clc; clear; close all;
rng(0);
%% 参数设置
num_station = 5;
num_target = 1;
scene_name = '5个基站二维固定目标';
target_scale = 10;
station_scale = 20;
AOA_noise = 1e-2;
distance_noise = 0.1;
if num_station < 2 || mod(num_station, 1) ~= 0
error('num_station必须为不小于2的整数,二维AOA定位建议设置为2或更多。');
end
position = target_scale * randn(num_target, 2);
stations_position = station_scale * randn(num_station, 2);
estimated_positions_AOA1 = zeros(num_target, 2);
estimated_positions_AOA2 = zeros(num_target, 2);
for i1 = 1:num_target
[estimated_positions_AOA1(i1, :), estimated_positions_AOA2(i1, :)] = ...
estimateAoaRange2D(stations_position, position(i1, :), AOA_noise, distance_noise);
end
%% 误差统计
err_AOA1 = estimated_positions_AOA1 - position;
err_AOA2 = estimated_positions_AOA2 - position;
dist_err_AOA1 = vecnorm(err_AOA1, 2, 2);
dist_err_AOA2 = vecnorm(err_AOA2, 2, 2);
axis_rmse = [
sqrt(mean(err_AOA1.^2, 1));
sqrt(mean(err_AOA2.^2, 1))
];
position_stats = [
mean(dist_err_AOA1), sqrt(mean(dist_err_AOA1.^2)), max(dist_err_AOA1), std(dist_err_AOA1, 0);
mean(dist_err_AOA2), sqrt(mean(dist_err_AOA2.^2)), max(dist_err_AOA2), std(dist_err_AOA2, 0)
];
%% 颜色设置
anchor_colors = lines(num_station);
color_true = [0.00, 0.00, 0.00];
color_AOA1 = [0.00, 0.45, 0.74];
color_AOA2 = [0.85, 0.33, 0.10];
完整代码:
https://download.csdn.net/download/callmeup/93764279
如需帮助,或有导航、定位滤波相关的代码定制需求,可联系我