摘 要:定位技術(shù)是無線通信的熱點研究問題之一,而三邊測量方法是構(gòu)建復(fù)雜定位技術(shù)的基礎(chǔ)。本文基于無線通訊基站室內(nèi)的二維定位問題,針對三邊測量方法,利用Matlab軟件對三邊測量方法進行程序設(shè)計,并采用四組二維數(shù)據(jù)驗證了程序的可行性。
1引言
Matlab是一款結(jié)合了數(shù)值和符號計算引擎、圖形系統(tǒng)和編程語言的數(shù)學(xué)軟件,可用于處理較為復(fù)雜的計算或者是圖像問題。Matlab的應(yīng)用非常廣泛,包括通信、控制系統(tǒng)設(shè)計、測試和測量、信號和圖像處理等眾多領(lǐng)域[1-3]。
目前,定位技術(shù)是無線通信的熱點研究問題之一[4-7],針對無限通訊基站的室內(nèi)三維定位問題,文獻[8、9]分別分析了三邊測量法和四邊測量法的原理,并做了簡單分析,但是并沒有側(cè)重于Matlab的程序設(shè)計研究,而本文主要研究基于線通訊基站室內(nèi)的二維定位問題,針對三邊測量方法,利用Matlab軟件對三邊測量方法進行程序設(shè)計,并采用二維數(shù)據(jù)驗證了程序的可行性。
2三邊測量法
設(shè)待測終端的坐標(biāo)為X(x,y),3個基站的坐標(biāo)為A1(a1,b1),A2(a2,b2),A3(a3,b3),X到A1,A2,A3的距離分別為d1,d2,d3,則根據(jù)二維空間兩點間距離公式可得到方程組:
可解得X坐標(biāo)為:
下面針對三邊測量法,利用Matlab軟件進行程序設(shè)計。
3基于三邊測量法的程序設(shè)計
%讀數(shù)據(jù)
LOS=xlsread('case021_input','LOS')
base=xlsread('case021_input','base')
%讀取參考基站的坐標(biāo)[cx,cy]
cx=base(:,1)
cy=base(:,2)
figure(1)
plot(cx,cy,'k^');%畫參考基站圖
hold on
grid on
%移動位置數(shù)mlen
mlen=length(LOS);%移動位置數(shù)mlen
x=[]
y=[]
for p=1:30%對每個移動位置
for i=1:100
w=LOS(p,:)
disp('次數(shù)')
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)%計算定位坐標(biāo)
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(調(diào)用函數(shù)) function [da,db,dc,t1,t2,t3]=find_three_p(w) %從TOA數(shù)據(jù)中隨機選出不同的三個值 %依次每一個移動位置到相應(yīng)基站的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是標(biāo)記 %取第二個 while(1) t=fix(len*rand(1,1))+1 if(t~=ma) mb=t db=w(t) break end end t2=t;%t2是標(biāo)記 %取第三個 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是標(biāo)記 %函數(shù)調(diào)用triposition.m% function [locx,locy]=triposition(B1,da,B2,db,B3,dc) %三邊定位法% %輸入:1.參考節(jié)點B1,B2,B3;2.移動位置坐標(biāo)D(locx,locy)到這三點的距離分別為da,db,dc
%locx,locy為計算的移動位置坐標(biāo)D點的位置坐標(biāo)
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); %解關(guān)于x,y的符號方程組,得到解的符號表示,并存入xx,yy
px=eval(xx);%解的數(shù)值px(1),px(2)
py=eval(yy);%解的數(shù)值py(1),py(2)
locx=px
locy=py
4 實驗仿真
利用以上程序,結(jié)合實際二維數(shù)據(jù),對三邊測量法進行仿真。圖1對應(yīng)二維數(shù)據(jù)的移動終端的30個位置變
化圖。
由圖可知,采用實際數(shù)據(jù)對程序進行仿真,觀察發(fā)現(xiàn)終端運行軌跡圖比較符合實際情況,說明三邊測量法能夠較準確的確定終端位置,且設(shè)計的基于三邊測量法的程序是有效的。
5結(jié)語
基于無線通訊基站室內(nèi)的二維定位問題,針對三邊測量方法,利用Matlab軟件進行程序設(shè)計。采用實際數(shù)據(jù)對程序進行仿真,觀察發(fā)現(xiàn)終端運行軌跡圖比較符合實際情況,說明三邊測量法能夠較準確的確定終端位置,且設(shè)計的基于三邊測量法的程序是有效的。但是因為測量誤差的存在,以及程序自身的缺陷,有些點的位置表現(xiàn)出了異常,在后續(xù)工作中應(yīng)該重視并加以改進?,F(xiàn)出了異常,在后續(xù)工作中應(yīng)該重視并加以改進。
參考文獻:
[1] 叢爽. 面向 MATLAB 工具箱的神經(jīng)網(wǎng)絡(luò)理論與應(yīng)用[M]. 中國科學(xué)技術(shù)大學(xué)出版社, 1998.
[2] 聞新, 周露, 李翔, 等. MATLAB 神經(jīng)網(wǎng)絡(luò)仿真與應(yīng)用[J]. 2003.
[3] 程銘東, 詹亮. 多傳感器網(wǎng)絡(luò)目標(biāo)定位的一種算法及其實現(xiàn)[J]. 計算機工程與應(yīng)用, 2008, 44(7): 231-233.
[4] 宋俊鵬. 基于 Matlab 全球定位系統(tǒng)空間部分仿真[J]. 電子測量技術(shù), 2004 (4): 13-14.
[5] 費揚, 杜慶治. 基于 Matlab 的 WiFi 室內(nèi)定位分析系統(tǒng)設(shè)計與實現(xiàn)[J]. 軟件導(dǎo)刊, 2018, 17(3): 117-120.
[6] 呂振, 趙鵬飛. 一種改進的無線傳感器網(wǎng)絡(luò)加權(quán)質(zhì)心定位算法[J]. 計算機測量與控制, 2013, 21(4): 1102-1104.
[7] 彭燕. 無線傳感器網(wǎng)絡(luò)定位優(yōu)化算法及其仿真[J]. 計算機與數(shù)字工程, 2011, 39(3): 9-11.
[8] 葛文濤, 陳俊杰出. 基于三邊定位的WSN錨節(jié)點加權(quán)補償算法[J]. 測控技術(shù), 2010,29(9): 92-95.
[9] 王行甫, 戴福泉, 苗付友. 基于 TOA 的三維無線傳感器網(wǎng)絡(luò)節(jié)點定位算法[J]. 自動化與儀表, 2008,23(12): 1-4.
作者簡介:李明(1981.3—)男,漢,四川,研究生,工程師,研究方向:機場工程,單位:中國民用航空局第二研究所。