matlab练习程序(TOA算法)

TOA全称time of arrival,根据测量移动台和基站之间的信号到达时间,再转换为距离从而进行定位的方法。

类似的技术还有TDOA和AOA,真实的应用场景就是GNSS和UWB了。

定位原理可以用下图表示:

如上图三个基站可列三个方程,就能解出定位点,但一般基站通常更多,因此需要用到最小二乘的方法解方程组。

设MS坐标为(x,y),BS坐标为(xi,yi),则有方程组: 

展开得:

 

 

 

 

 

 

 

 

到这里就能用最小二乘来求解了。 

matlab代码如下:

clear all;
close all;
clc;

num = 6;                                %可以认为是基站或卫星数,随机做6个

loc = [20,30]                           %实际坐标位置
sat = 100*rand(num,2);                  %基站或卫星二维坐标

dist = loc - sat + 0.2*rand(num,2);     %加20厘米测距误差
dist = dist(:,1).^2 + dist(:,2).^2;
r = sat(:,1).^2 + sat(:,2).^2;

X = [-2*sat ones(length(sat),1)];
Y = dist - r;

C = inv(X'*X)*X'*Y;

C(1:2)                                  %计算结果

结果如下:

设定的位置和最终计算得到的位置基本一致。

posted @ 2020-08-09 16:27  Dsp Tian  阅读(3505)  评论(0编辑  收藏  举报