zoukankan      html  css  js  c++  java
  • 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)                                  %计算结果

    结果如下:

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

  • 相关阅读:
    一天进步一点点
    Flask
    Sqlalchemy 设置表编码及引擎
    threading.local
    xshell配置密码公钥登录
    linux 系统优化+定时任务
    linux命令
    xshell连接及优化
    linux前奏
    Vue Devtools--vue调式工具
  • 原文地址:https://www.cnblogs.com/tiandsp/p/13463201.html
Copyright © 2011-2022 走看看