【室内定位】采用TOA借助多个基站与终端之间距离进行目标定位matlab源码

258 阅读3分钟

 1 模型

如今,无线通信技术和移动互联网发展迅速,人们在日常生活中,对定位服务也产生了越来越多的需求.GPS(Global Position System)定位系统的首要作用是对目标进行无线导航定位,它是一种具有特定功能和结构的定位系统.但它仅适用于宽敞的室外空间环境,而在室内,城市楼房区,隧道,地下空间等区域,GPS信号覆盖不佳,需要采用室内无线定位,从而实现对移动设备的精确定位.室内无线定位的硬件载体大多存在于各种手持终端之中.作为定位技术的一个重要分支,室内定位技术是将无线传感器网络,无线终端设备运用于室内环境之下,对用户位置进行定位的技术.在众多室内定位技术中,对比二维平面定位技术,室内三维定位技术的实用价值更为突出.人们在实际的室内环境中,室内无线定位技术也可以最大程度地提供实时地理位置信息服务.当前,如蓝牙,红外线,超宽带,RFID,基站定位,Wifi等,均属于其中较为常见的室内定位技术.定位技术的实现主要是依靠基站,结合手机终端,来实现室内无线定位.但是,室内环境较为复杂,特殊,因而导致了当前室内三维定位技术面临如下相关问题:一是如何克服室内环境在非视距传播环境(NLOS)下的多径传播导致的TOA误差,进而实现定位精度的提升;二是如何在三维空间中运用二维平面定位技术,进而通过立体化定位服务的提供,使得用户需求得以满足.

2 部分代码

```matlab

clc

clear all 

close all

light_speed=3e8;

AP=[

176.40 193.11 3.28

268.95 180.50 4.62

67.49 141.23 2.02

185.29 108.62 4.04

63.26 -32.11 2.56

176.09 -278.80 3.57

246.80 -136.20 3.59

-99.60 -210.37 2.25

283.82 175.50 2.79

-42.68 -36.21 3.21

239.40 110.68 3.13

-289.90 23.23 4.02

76.72 15.08 3.00

-71.81 -282.87 4.39

-239.55 -112.95 2.17

130.93 132.87 3.68

-269.52 173.16 3.22

225.35 283.20 2.73

-226.84 167.13 2.93

-211.25 146.20 2.98];

Node_number=length(AP);              %节点数目30 

for i=1:Node_number

    Node(i).x=AP(i,1); 

    Node(i).y=AP(i,2); 

    Node(i).D=Node(i).x^2+Node(i).y^2;

end

%load TAG.mat;                        %载入终端真实坐标

load T.mat                            %载入toa

for j=1:length(T)                  %循环开始

%target=TAG(j,:);

t=T(j,:);

%Target.x=target(1) ;

%Target.y=target(2);

X=[];

Z=[];

d1=t*light_speed

Z=d1;

for i=1:Node_number

    %[d1,d2]=DIST(Node(i),Target); 

    %d1=d1+0.03*randn;

    X=[X;Node(i).x,Node(i).y];

   % Z=[Z,d1];

end

H=[];b=[];

for i=2:Node_number

    H=[H;2*(X(i,1)-X(1,1)),2*(X(i,2)-X(1,2))];

    b=[b;Z(1)^2-Z(i)^2+Node(i).D-Node(1).D];

end

Estimate=inv(H'*H)*H'*b;  

Est_Target.x=Estimate(1);Est_Target.y=Estimate(2);

EST_TARGET(j,1)=Estimate(1);EST_TARGET(j,2)=Estimate(2);            %位置估计矩阵EST_TARGET(j,1)

%[Error_Dist,d2]=DIST(Est_Target,Target);

%ERROR(j)=Error_Dist;                                                 %位置误差矩阵ERROR

end

figure

hold on;

for k=1:length(T)

%h2=plot(Target.x,Target.y,'k^','MarkerFace','b','MarkerSize',10);           %画真实位置

h3=plot(EST_TARGET(k,1),EST_TARGET(k,2),'ks','MarkerFace','r','MarkerSize',10);    %画估计位置

% line([Target.x,Est_Target.x],[Target.y,Est_Target.y],'Color','k');

% legend([h1,h2,h3],'参考节点','目标点真实位置','目标点估计位置');

end

hold on;box on;

for i=1:Node_number

    h1=plot(Node(i).x,Node(i).y,'ko','MarkerFace','g','MarkerSize',10);

    text(Node(i).x+2,Node(i).y,['Node ',num2str(i)]);

end

legend([h1,h3],'参考基站','目标点估计位置')

3 仿真结果

4 参考文献

[1]何国玺, 林默涵, 李岩松,等. 基于无线通信基站的室内三维定位问题[J]. 数学的实践与认识, 2017(14).

5 完整MATLAB代码与数据下载地址

私戳