摘 要:定位技术是无线通信的热点研究问题之一,而三边测量方法是构建复杂定位技术的基础。本文基于无线通讯基站室内的二维定位问题,针对三边测量方法,利用Matlab软件对三边测量方法进行程序设计,并采用四组二维数据验证了程序的可行性。
1引言
Matlab是一款结合了数值和符号计算引擎、图形系统和编程语言的数学软件,可用于处理较为复杂的计算或者是图像问题。Matlab的应用非常广泛,包括通信、控制系统设计、测试和测量、信号和图像处理等众多领域[1-3]。
目前,定位技术是无线通信的热点研究问题之一[4-7],针对无限通讯基站的室内三维定位问题,文献[8、9]分别分析了三边测量法和四边测量法的原理,并做了简单分析,但是并没有侧重于Matlab的程序设计研究,而本文主要研究基于线通讯基站室内的二维定位问题,针对三边测量方法,利用Matlab软件对三边测量方法进行程序设计,并采用二维数据验证了程序的可行性。
2三边测量法
设待测终端的坐标为X(x,y),3个基站的坐标为A1(a1,b1),A2(a2,b2),A3(a3,b3),X到A1,A2,A3的距离分别为d1,d2,d3,则根据二维空间两点间距离公式可得到方程组:
可解得X坐标为:
下面针对三边测量法,利用Matlab软件进行程序设计。
3基于三边测量法的程序设计
%读数据
LOS=xlsread('case021_input','LOS')
base=xlsread('case021_input','base')
%读取参考基站的坐标[cx,cy]
cx=base(:,1)
cy=base(:,2)
figure(1)
plot(cx,cy,'k^');%画参考基站图
hold on
grid on
%移动位置数mlen
mlen=length(LOS);%移动位置数mlen
x=[]
y=[]
for p=1:30%对每个移动位置
for i=1:100
w=LOS(p,:)
disp('次数')
p
[da,db,dc,t1,t2,t3]=find_three_p(w)%从每个移动位置TOA中任意选出三值
base1=base(t1,:)
base2=base(t2,:)
base3=base(t3,:)
[locx,locy]=triposition(base1,da,base2,db,base3,dc)%计算定位坐标
if (-500 x(p)=locx y(p)=locy break else continue end end end plot(x,y,'r>-') for j=1:110 text(x(j),y(j),[' ' num2str(j)]) end xlabel('x') ylabel('y') legend('参考基站','移动轨迹','Location','SouthEast') title('三点测量法的移动轨迹') grid on %find_three_p(调用函数) function [da,db,dc,t1,t2,t3]=find_three_p(w) %从TOA数据中随机选出不同的三个值 %依次每一个移动位置到相应基站的LOS距离w %输出:任意选出da,db,dc三个LOS距离 %da,db,dc为选出的任意三个LOS距离 len=length(w) % 取一个 t=fix(len*rand(1,1))+1 ma=t da=w(t) t1=t; %t1是标记 %取第二个 while(1) t=fix(len*rand(1,1))+1 if(t~=ma) mb=t db=w(t) break end end t2=t;%t2是标记 %取第三个 while(1) t=fix(len*rand(1,1))+1 if(t~=ma)&&(t~=mb) mc=t dc=w(t) break end end t3=t;%t3是標记 %函数调用triposition.m% function [locx,locy]=triposition(B1,da,B2,db,B3,dc) %三边定位法% %输入:1.参考节点B1,B2,B3;2.移动位置坐标D(locx,locy)到这三点的距离分别为da,db,dc
%locx,locy为计算的移动位置坐标D点的位置坐标
syms x y%f符号变量
%求解方程组
f1='2*x*(B1(1)-B3(1))+B3(1)^2-B1(1)^2+2*y*(B1(2)-B3(2))+B3(2)^2-B1(2)^2=dc^2-da^2'
f2='2*x*(B2(1)-B3(1))+B3(1)^2-B2(1)^2+2*y*(B2(1)-B3(2))+B3(2)^2-B2(2)=dc^2-db^2'
[xx,yy]=solve(f1,f2,x,y); %解关于x,y的符号方程组,得到解的符号表示,并存入xx,yy
px=eval(xx);%解的数值px(1),px(2)
py=eval(yy);%解的数值py(1),py(2)
locx=px
locy=py
4 实验仿真
利用以上程序,结合实际二维数据,对三边测量法进行仿真。图1对应二维数据的移动终端的30个位置变
化图。
由图可知,采用实际数据对程序进行仿真,观察发现终端运行轨迹图比较符合实际情况,说明三边测量法能够较准确的确定终端位置,且设计的基于三边测量法的程序是有效的。
5结语
基于无线通讯基站室内的二维定位问题,针对三边测量方法,利用Matlab软件进行程序设计。采用实际数据对程序进行仿真,观察发现终端运行轨迹图比较符合实际情况,说明三边测量法能够较准确的确定终端位置,且设计的基于三边测量法的程序是有效的。但是因为测量误差的存在,以及程序自身的缺陷,有些点的位置表现出了异常,在后续工作中应该重视并加以改进。现出了异常,在后续工作中应该重视并加以改进。
参考文献:
[1] 丛爽. 面向 MATLAB 工具箱的神经网络理论与应用[M]. 中国科学技术大学出版社, 1998.
[2] 闻新, 周露, 李翔, 等. MATLAB 神经网络仿真与应用[J]. 2003.
[3] 程铭东, 詹亮. 多传感器网络目标定位的一种算法及其实现[J]. 计算机工程与应用, 2008, 44(7): 231-233.
[4] 宋俊鹏. 基于 Matlab 全球定位系统空间部分仿真[J]. 电子测量技术, 2004 (4): 13-14.
[5] 費扬, 杜庆治. 基于 Matlab 的 WiFi 室内定位分析系统设计与实现[J]. 软件导刊, 2018, 17(3): 117-120.
[6] 吕振, 赵鹏飞. 一种改进的无线传感器网络加权质心定位算法[J]. 计算机测量与控制, 2013, 21(4): 1102-1104.
[7] 彭燕. 无线传感器网络定位优化算法及其仿真[J]. 计算机与数字工程, 2011, 39(3): 9-11.
[8] 葛文涛, 陈俊杰出. 基于三边定位的WSN锚节点加权补偿算法[J]. 测控技术, 2010,29(9): 92-95.
[9] 王行甫, 戴福泉, 苗付友. 基于 TOA 的三维无线传感器网络节点定位算法[J]. 自动化与仪表, 2008,23(12): 1-4.
作者简介:李明(1981.3—)男,汉,四川,研究生,工程师,研究方向:机场工程,单位:中国民用航空局第二研究所。