本發(fā)明屬于通信技術(shù)領(lǐng)域,特別涉及一種藍(lán)牙室內(nèi)定位方法,可用于商場、養(yǎng)老院、智慧社區(qū)及消防場所。
背景技術(shù):
隨著物聯(lián)網(wǎng)社會(huì)的迅速發(fā)展,傳感智能設(shè)備以其低功耗、自組織、布局方便等優(yōu)點(diǎn)越來越被廣泛應(yīng)用于智慧社會(huì)中,并且室內(nèi)定位已成為物聯(lián)網(wǎng)社會(huì)的重要支撐領(lǐng)域,而基于藍(lán)牙iBeacon的室內(nèi)定位技術(shù)以其獨(dú)特的優(yōu)越性將成為室內(nèi)定位的熱點(diǎn)之一。
目前基于藍(lán)牙的室內(nèi)定位算法主要有基于信號(hào)傳輸時(shí)間的算法TOA、基于信號(hào)傳輸時(shí)間差的算法TDOA、基于信號(hào)到達(dá)角度的算法AOA、基于接收信號(hào)強(qiáng)度值RSSI的算法和單質(zhì)心算法,其中:
TOA算法,由于室內(nèi)環(huán)境空間相對(duì)狹小,信號(hào)的傳播受到障礙物的干擾會(huì)帶來傳播時(shí)間的時(shí)延,并且會(huì)產(chǎn)生時(shí)延的疊加,同時(shí)此算法要求定位節(jié)點(diǎn)和參考節(jié)點(diǎn)之間的時(shí)鐘精準(zhǔn)同步,對(duì)硬件的要求很高,系統(tǒng)的復(fù)雜性和成本的投入較大,導(dǎo)致實(shí)用性較低。
TDOA算法,是TOA算法的改進(jìn),此算法不是直接利用信號(hào)到達(dá)參考節(jié)點(diǎn)的絕對(duì)時(shí)間,而是利用信號(hào)到達(dá)兩個(gè)參考節(jié)點(diǎn)的時(shí)間差來確定定位節(jié)點(diǎn)的位置,因此不需要參考節(jié)點(diǎn)和定位節(jié)點(diǎn)之間的時(shí)鐘精準(zhǔn)同步,只需要參考節(jié)點(diǎn)之間的時(shí)鐘同步即可,該算法雖然降低了時(shí)鐘同步的要求,但是精度較低。
AOA算法,此算法需要在節(jié)點(diǎn)上安裝天線矩陣來獲得角度信息,但是由于大部分節(jié)點(diǎn)的天線都是全向的,無法區(qū)分信號(hào)來自于哪個(gè)方向,并且在藍(lán)牙節(jié)點(diǎn)上安裝天線需要特殊的硬件設(shè)備,如天線陣列,導(dǎo)致藍(lán)牙節(jié)點(diǎn)在耗能、尺寸以及價(jià)格上都要超過普通的傳感節(jié)點(diǎn),與無線智能設(shè)備低成本和低功耗的特性相違背,所以實(shí)用性較差。
RSSI算法,該算法是通過獲取接收信號(hào)強(qiáng)度值RSSI和距離之間的關(guān)系,得到距離和RSSI之間的模型,從而進(jìn)行室內(nèi)定位。但是由于室內(nèi)環(huán)境下無線電信號(hào)自由衰減效應(yīng)、信號(hào)吸收效應(yīng)、非視距傳播效應(yīng)、多徑效應(yīng)、陰影效應(yīng)造成了藍(lán)牙信號(hào)的RSSI值隨著距離的變化在做著劇烈變動(dòng),導(dǎo)致傳統(tǒng)的基于接收信號(hào)強(qiáng)度值RSSI的定位算法存在的誤差范圍較大。但由于其對(duì)時(shí)鐘處理的要求低,低成本,復(fù)雜度低,所以一般的室內(nèi)定位算法都是基于RSSI展開。
單質(zhì)心算法,是通過定位節(jié)點(diǎn)接收所有在其通信范圍內(nèi)的參考節(jié)點(diǎn)的信息,并將參考節(jié)點(diǎn)的幾何質(zhì)心作為自己的估計(jì)位置來定位,但是質(zhì)心個(gè)數(shù)單一,離待定位節(jié)點(diǎn)較遠(yuǎn)處的參考節(jié)點(diǎn)的影響度較小,不能重點(diǎn)突出離待定位節(jié)點(diǎn)較遠(yuǎn)處的參考節(jié)點(diǎn)的貢獻(xiàn)度大小,帶來的誤差較大,沒有進(jìn)一步提升定位精度。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于針對(duì)以上現(xiàn)有技術(shù)的不足,提出一種基于RSSI修正值雙重定位的藍(lán)牙室內(nèi)定位方法,以提高藍(lán)牙iBeacon的室內(nèi)定位精度。
為達(dá)到以上目的,本發(fā)明的技術(shù)方案包括如下:
(1)采集室內(nèi)部署的各個(gè)iBeacon節(jié)點(diǎn)接收到的其他iBeacon節(jié)點(diǎn)的接收信號(hào)強(qiáng)度值,構(gòu)成iBeacon節(jié)點(diǎn)信號(hào)強(qiáng)度矩陣R,并利用狄克遜檢測(cè)法和高斯濾波算法對(duì)其進(jìn)行修正,得到各個(gè)iBeacon節(jié)點(diǎn)的信號(hào)強(qiáng)度修正值,構(gòu)成iBeacon節(jié)點(diǎn)信號(hào)強(qiáng)度修正矩陣R':
其中:
i、j為iBeacon節(jié)點(diǎn)編號(hào),n為iBeacon節(jié)點(diǎn)個(gè)數(shù),i∈[1,n],j∈[1,n],n>3;
Rij=[Rij1 Rij2 Rij3 ... Rij30]是1×30維矩陣,表示第i個(gè)iBeacon節(jié)點(diǎn)收到第j個(gè)iBeacon節(jié)點(diǎn)發(fā)出的30組信號(hào)值;
Rij'表示第i個(gè)iBeacon節(jié)點(diǎn)收到第j個(gè)iBeacon節(jié)點(diǎn)的信號(hào)強(qiáng)度修正值。
(2)根據(jù)iBeacon節(jié)點(diǎn)信號(hào)強(qiáng)度修正矩陣R',利用對(duì)數(shù)距離路徑損耗模型,得到iBeacon節(jié)點(diǎn)到其他iBeacon節(jié)點(diǎn)的距離值,構(gòu)成iBeacon節(jié)點(diǎn)距離矩陣D:
其中:Dij表示第i個(gè)iBeacon節(jié)點(diǎn)到第j個(gè)iBeacon節(jié)點(diǎn)的距離值,當(dāng)i=j(luò)時(shí),Dij=0。
(3)根據(jù)iBeacon節(jié)點(diǎn)距離矩陣D,采用多質(zhì)心算法,得到各iBeacon節(jié)點(diǎn)坐標(biāo)估計(jì)值Q(xi,yi),將Q(xi,yi)與各iBeacon節(jié)點(diǎn)的實(shí)際坐標(biāo)e(vi,zi)比較,得誤差點(diǎn)P(α,β);
(4)采集待定位節(jié)點(diǎn)接收iBeacon節(jié)點(diǎn)發(fā)出的接收信號(hào)強(qiáng)度值,構(gòu)成定位節(jié)點(diǎn)信號(hào)強(qiáng)度矩陣r,并利用狄克遜檢測(cè)法和高斯濾波算法對(duì)其進(jìn)行修正,得到待定位節(jié)點(diǎn)的強(qiáng)度修正值,構(gòu)成待定位節(jié)點(diǎn)信號(hào)強(qiáng)度修正矩陣r':
r=[r1 r2 r3 ... ri ... rn],r'=[r1' r2' r3' ... ri' ... rn']
其中:
ri是1×30維矩陣,表示待定位節(jié)點(diǎn)收到第i個(gè)iBeacon節(jié)點(diǎn)發(fā)出的30組信號(hào)值;
ri'表示待定位節(jié)點(diǎn)收到第i個(gè)iBeacon節(jié)點(diǎn)的信號(hào)強(qiáng)度修正值。
(5)根據(jù)待定位節(jié)點(diǎn)信號(hào)強(qiáng)度修正矩陣r',利用對(duì)數(shù)距離路徑損耗模型,得到待定位節(jié)點(diǎn)到其他iBeacon節(jié)點(diǎn)的距離值,構(gòu)成待定位節(jié)點(diǎn)距離矩陣d:
d=[d1 d2 d3 ... di ... dn]
其中:di為待定位節(jié)點(diǎn)到第i個(gè)iBeacon節(jié)點(diǎn)的距離值。
(6)根據(jù)待定位節(jié)點(diǎn)距離矩陣d,采用多質(zhì)心算法,得到待定位節(jié)點(diǎn)的坐標(biāo)估計(jì)值W(x,y);
(7)根據(jù)坐標(biāo)估計(jì)值W(x,y)和誤差點(diǎn)P(α,β),得到待定位節(jié)點(diǎn)的最終坐標(biāo)為:W(x+α,y+β)。
本發(fā)明相對(duì)現(xiàn)有技術(shù)主要優(yōu)點(diǎn)在于:
第一,與現(xiàn)有的前期預(yù)處理相比,本發(fā)明由于對(duì)前期的波動(dòng)較大的接收信號(hào)強(qiáng)度值進(jìn)行狄克遜檢測(cè)算法的處理,剔除抖動(dòng)劇烈的接收信號(hào)強(qiáng)度值,然后對(duì)保留的數(shù)據(jù)采用高斯濾波處理,最大限度地保留了抖動(dòng)較小的接收信號(hào)強(qiáng)度值。
第二,與現(xiàn)有路徑損耗模型相比,本發(fā)明由于根據(jù)大量實(shí)驗(yàn)數(shù)據(jù),給出最佳環(huán)境系數(shù)參考范圍,不僅實(shí)現(xiàn)簡單,而且選擇的系數(shù)更加適用于室內(nèi)環(huán)境。
第三,與現(xiàn)有定位算法相比,本發(fā)明由于采用雙重定位算法,分別計(jì)算出系統(tǒng)的坐標(biāo)誤差和待定位節(jié)點(diǎn)的估計(jì)坐標(biāo),故可根據(jù)坐標(biāo)誤差和待定位節(jié)點(diǎn)的估計(jì)坐標(biāo),計(jì)算出待定位節(jié)點(diǎn)的最終坐標(biāo)。
第四,與現(xiàn)有定位算法相比,本發(fā)明由于將距離待定位節(jié)點(diǎn)較遠(yuǎn)的iBeacon節(jié)點(diǎn)分組,求出其質(zhì)心后,把質(zhì)心應(yīng)用到距離待定位節(jié)點(diǎn)較近的iBeacon節(jié)點(diǎn)組內(nèi),再求取質(zhì)心,使得定位精度進(jìn)一步提高,同時(shí)可避免適應(yīng)度隨著環(huán)境中iBeacon節(jié)點(diǎn)的狀態(tài)變化而改變。
附圖說明
圖1是本發(fā)明的實(shí)現(xiàn)流程圖;
圖2是本發(fā)明與現(xiàn)有單質(zhì)心算法的定位效果對(duì)比圖。
具體實(shí)施方式
參照?qǐng)D1,本發(fā)明的基于RSSI修正值雙重定位的藍(lán)牙室內(nèi)定位方法,其具體實(shí)現(xiàn)步驟如下:
步驟1,構(gòu)建iBeacon節(jié)點(diǎn)信號(hào)強(qiáng)度矩陣R。
將室內(nèi)環(huán)境以正六邊形劃分成若干區(qū)域,在區(qū)域的各個(gè)頂點(diǎn)處放置一個(gè)iBeacon節(jié)點(diǎn),共放置n個(gè)iBeacon節(jié)點(diǎn),每個(gè)iBeacon節(jié)點(diǎn)周期性地廣播自身編號(hào)、自身坐標(biāo)和接收信號(hào)強(qiáng)度值,采集各個(gè)iBeacon節(jié)點(diǎn)接收到的其他iBeacon節(jié)點(diǎn)的接收信號(hào)強(qiáng)度值,構(gòu)成iBeacon節(jié)點(diǎn)信號(hào)強(qiáng)度矩陣R:
其中:i、j為iBeacon節(jié)點(diǎn)編號(hào),n為iBeacon節(jié)點(diǎn)個(gè)數(shù),i∈[1,n],j∈[1,n],n>3;
Rij=[Rij1 Rij2 Rij3 ... Rij30]是1×30維矩陣,表示第i個(gè)iBeacon節(jié)點(diǎn)收到第j個(gè)iBeacon節(jié)點(diǎn)發(fā)出的30組信號(hào)值。
步驟2,對(duì)iBeacon節(jié)點(diǎn)信號(hào)強(qiáng)度矩陣R進(jìn)行修正,得到iBeacon節(jié)點(diǎn)狄克遜矩陣R*。
2a)采用狄克遜檢測(cè)法剔除每個(gè)iBeacon節(jié)點(diǎn)接收到的來自其他iBeacon節(jié)點(diǎn)發(fā)來的30組信號(hào)值中變化劇烈的接收信號(hào)強(qiáng)度值,將第i個(gè)iBeacon節(jié)點(diǎn)接收到來自第j個(gè)iBeacon節(jié)點(diǎn)的30組接收信號(hào)強(qiáng)度值按從小到大的順序排列,依次為Rij1,Rij2,...,Rij30;
2b)確定異常值檢測(cè)的檢出水平為a=0.02,確定狄克遜檢驗(yàn)臨界值M(a,n);
2c)根據(jù)狄克遜檢驗(yàn)法統(tǒng)計(jì)公式,計(jì)算iBeacon節(jié)點(diǎn)最高端的異常值G和iBeacon節(jié)點(diǎn)最低端異常值G':
2d)將iBeacon節(jié)點(diǎn)最高端異常值G和iBeacon節(jié)點(diǎn)最低端異常值G'與臨界值M(a,n)進(jìn)行比較:
如果G>M(a,n)或者G'>M(a,n),則剔除該異常值相對(duì)應(yīng)的接收信號(hào)強(qiáng)度值RijN;
如果G≤M(a,n)或者G'≤M(a,n),則保留該異常值相對(duì)應(yīng)的接收信號(hào)強(qiáng)度值RijN,執(zhí)行2e),N為30組信號(hào)值的編號(hào);
2e)對(duì)保留的接收信號(hào)強(qiáng)度值重新排序,重復(fù)步驟2a)-2d),直到所有變化劇烈的接收信號(hào)強(qiáng)度值被剔除,并將最終保留的值作為狄克遜檢測(cè)算法的輸出,構(gòu)成iBeacon節(jié)點(diǎn)狄克遜矩陣R*:
其中:
R*ij=[R*ij1 R*ij2 R*ij3 ... R*ijM]是1×M維矩陣,M是30組信號(hào)值中經(jīng)過狄克遜檢測(cè)算法后保留的信號(hào)值個(gè)數(shù),R*ij表示第i個(gè)iBeacon節(jié)點(diǎn)收到第j個(gè)iBeacon節(jié)點(diǎn)發(fā)出的30組信號(hào)值中經(jīng)過狄克遜檢測(cè)算法后保留的信號(hào)值矩陣;
步驟3,對(duì)iBeacon節(jié)點(diǎn)狄克遜矩陣R*進(jìn)行修正,得到iBeacon節(jié)點(diǎn)信號(hào)強(qiáng)度修正矩陣R'。
3a)對(duì)iBeacon節(jié)點(diǎn)狄克遜矩陣R*進(jìn)行高斯濾波,得到iBeacon節(jié)點(diǎn)高斯矩陣R”;
3b)對(duì)iBeacon節(jié)點(diǎn)高斯矩陣R”的各元素矩陣取算術(shù)平均值,得到各個(gè)iBeacon節(jié)點(diǎn)的接收信號(hào)強(qiáng)度修正值,構(gòu)成iBeacon節(jié)點(diǎn)信號(hào)強(qiáng)度修正矩陣R':
其中:Rij'表示第i個(gè)iBeacon節(jié)點(diǎn)收到第j個(gè)iBeacon節(jié)點(diǎn)的信號(hào)強(qiáng)度修正值。
步驟4,構(gòu)建iBeacon節(jié)點(diǎn)距離矩陣D。
4a)建立接收信號(hào)強(qiáng)度修正值到iBeacon節(jié)點(diǎn)之間距離的路徑損耗關(guān)系式:
其中:
Rij'表示第i個(gè)iBeacon節(jié)點(diǎn)收到第j個(gè)iBeacon節(jié)點(diǎn)的信號(hào)強(qiáng)度修正值;
q0表示兩個(gè)iBeacon節(jié)點(diǎn)間距離L0=1米時(shí)的參考信號(hào)強(qiáng)度修正值;
Dij表示第i個(gè)iBeacon節(jié)點(diǎn)到第j個(gè)iBeacon節(jié)點(diǎn)的距離值,當(dāng)i=j(luò)時(shí),Dij=0;
xε和u為環(huán)境參數(shù),表示空間環(huán)境的影響程度,xε是距離iBeacon節(jié)點(diǎn)1米處接收到的平均功率的絕對(duì)值,u為路徑損耗因子,xε最佳參考范圍為41-47,u最佳參考范圍為2.15-4.3;
4b)將步驟4a)的路徑損耗關(guān)系式轉(zhuǎn)換成如下形式:
4c)根據(jù)步驟4b)得出各個(gè)iBeacon節(jié)點(diǎn)到其他所有iBeacon節(jié)點(diǎn)距離矩陣D:
步驟5,計(jì)算各iBeacon節(jié)點(diǎn)的坐標(biāo)估計(jì)值Q(xi,yi)。
5a)將第i個(gè)iBeacon節(jié)點(diǎn)到第j個(gè)iBeacon節(jié)點(diǎn)的距離值Dij按從小到大的順序排序,得到距離集合:Di1,Di2,Di3,...Dij,...,Din,其中Di1<Di2<Di3<...<Dij<...<Din;
5b)用距離集合內(nèi)的每個(gè)元素減去最小值Di1,得出差值集合:
0,ΔDi1,ΔDi2,ΔDi3,...,ΔDij,...,ΔDin;
5c)計(jì)算差值集合中各元素的平均值
其中:ΔDij=Dij-Di1,表示第i個(gè)iBeacon節(jié)點(diǎn)到第j個(gè)iBeacon節(jié)點(diǎn)之間的距離值Dij與最小值Di1的差值;
5d)將iBeacon節(jié)點(diǎn)分別分成的集合A和的集合B,設(shè)在集合B內(nèi)有m個(gè)節(jié)點(diǎn),并把集合B中相差最接近的3個(gè)iBeacon節(jié)點(diǎn)分成一組,共分成m-2組,計(jì)算每組的質(zhì)心,其坐標(biāo)(xk,yk):
其中:k∈[1,m-2],(xk1,yk1)、(xk2,yk2)、(xk3,yk3)是每組中的3個(gè)iBeacon節(jié)點(diǎn)坐標(biāo);
5e)將步驟5d)得到的質(zhì)心重新視為新加入的iBeacon節(jié)點(diǎn),再將m-2個(gè)質(zhì)心點(diǎn)和集合A內(nèi)的n-m個(gè)iBeacon節(jié)點(diǎn)構(gòu)成多邊形,采用質(zhì)心算法計(jì)算這個(gè)多邊形的質(zhì)心,得到第i個(gè)iBeacon節(jié)點(diǎn)估計(jì)坐標(biāo)Q(xi,yi)。
步驟6,計(jì)算誤差點(diǎn)P(α,β)。
根據(jù)第i個(gè)iBeacon節(jié)點(diǎn)的實(shí)際坐標(biāo)e(vi,zi)和估計(jì)坐標(biāo)Q(xi,yi),計(jì)算誤差點(diǎn)P的橫坐標(biāo)和縱坐標(biāo):
得到誤差點(diǎn)
步驟7,構(gòu)建待定位節(jié)點(diǎn)信號(hào)強(qiáng)度矩陣r。
將室內(nèi)環(huán)境以正六邊形劃分成若干區(qū)域,在區(qū)域的各個(gè)頂點(diǎn)處放置一個(gè)iBeacon節(jié)點(diǎn),共放置n個(gè)iBeacon節(jié)點(diǎn),每個(gè)iBeacon節(jié)點(diǎn)周期性地廣播自身編號(hào)、自身坐標(biāo)和接收信號(hào)強(qiáng)度值,采集待定位節(jié)點(diǎn)接收iBeacon節(jié)點(diǎn)發(fā)出的接收信號(hào)強(qiáng)度值,構(gòu)成待定位節(jié)點(diǎn)信號(hào)強(qiáng)度矩陣r:
r=[r1 r2 r3 ... ri ... rn]
其中:ri是1×30維矩陣,表示待定位節(jié)點(diǎn)收到第i個(gè)iBeacon節(jié)點(diǎn)發(fā)出的30組信號(hào)值;
步驟8,對(duì)待定位節(jié)點(diǎn)信號(hào)強(qiáng)度矩陣r進(jìn)行修正,得到待定位節(jié)點(diǎn)狄克遜矩陣r*。
8a)采用狄克遜檢測(cè)法剔除待定位節(jié)點(diǎn)接收到的來自其他iBeacon節(jié)點(diǎn)發(fā)來的30組信號(hào)值中變化劇烈的接收信號(hào)強(qiáng)度值,將待定位節(jié)點(diǎn)接收到來自第i個(gè)iBeacon節(jié)點(diǎn)的30組接收信號(hào)強(qiáng)度值按從小到大的順序排列,依次為ri1,ri2,...,ri30;
8b)根據(jù)狄克遜檢驗(yàn)法統(tǒng)計(jì)公式,算出待定位節(jié)點(diǎn)最高端異常值g和待定位節(jié)點(diǎn)最低端異常值g':
8c)將待定位節(jié)點(diǎn)最高端異常值g和待定位節(jié)點(diǎn)最低端異常值g'與臨界值M(a,n)進(jìn)行比較:
如果g>M(a,n)或者g'>M(a,n),則剔除該異常值相對(duì)應(yīng)的接收信號(hào)強(qiáng)度值riN;
如果g≤M(a,n)或者g'≤M(a,n),則保留該異常值相對(duì)應(yīng)的接收信號(hào)強(qiáng)度值riN,執(zhí)行8d),N為30組信號(hào)值的編號(hào);
8d)對(duì)保留的接收信號(hào)強(qiáng)度值重新排序,重復(fù)步驟8a)-8c),直到所有變化劇烈的接收信號(hào)強(qiáng)度值被剔除,并將最終保留的值作為狄克遜檢測(cè)算法的輸出,構(gòu)成待定位節(jié)點(diǎn)狄克遜矩陣r*:
r*=[r1* r2* r3* ... ri* ... rn*]
其中:ri*=[r*i1 r*i2 r*i3 ... r*iM]是1×M維矩陣,M是30組信號(hào)值中經(jīng)過狄克遜檢測(cè)算法后保留的信號(hào)值個(gè)數(shù),ri*表示待定位節(jié)點(diǎn)收到第i個(gè)iBeacon節(jié)點(diǎn)發(fā)出的30組信號(hào)值中經(jīng)過狄克遜檢測(cè)算法后保留的信號(hào)值矩陣。
步驟9,對(duì)待定位節(jié)點(diǎn)狄克遜矩陣r*進(jìn)行修正,得到待定位節(jié)點(diǎn)信號(hào)強(qiáng)度修正矩陣r′。
9a)采用高斯濾波對(duì)待定位節(jié)點(diǎn)狄克遜矩陣r*進(jìn)行處理,得到待定位節(jié)點(diǎn)高斯矩陣r″;
9b)對(duì)待定位節(jié)點(diǎn)高斯矩陣r”的各元素矩陣取算術(shù)平均值,得到待定位節(jié)點(diǎn)的接收信號(hào)強(qiáng)度修正值,構(gòu)成待定位節(jié)點(diǎn)信號(hào)強(qiáng)度修正矩陣r':
r'=[r1' r2' r3' ... ri' ... rn']
其中:ri'表示待定位節(jié)點(diǎn)收到第i個(gè)iBeacon節(jié)點(diǎn)的信號(hào)強(qiáng)度修正值。
步驟10,構(gòu)建待定位節(jié)點(diǎn)距離矩陣d。
10a)建立接收信號(hào)強(qiáng)度修正值到待定位節(jié)點(diǎn)與第i個(gè)iBeacon節(jié)點(diǎn)距離的路徑損耗關(guān)系式:
其中:
ri'表示待定位節(jié)點(diǎn)收到第i個(gè)iBeacon節(jié)點(diǎn)的信號(hào)強(qiáng)度修正值;
q1表示待定位節(jié)點(diǎn)和iBeacon節(jié)點(diǎn)間距離L0=1米時(shí)的參考信號(hào)強(qiáng)度修正值;
di為待定位節(jié)點(diǎn)到第i個(gè)iBeacon節(jié)點(diǎn)的距離值。
10b)將步驟10a)的路徑損耗關(guān)系式轉(zhuǎn)換成如下形式:
10c)根據(jù)步驟10b)得出待定位節(jié)點(diǎn)到其他所有iBeacon節(jié)點(diǎn)距離矩陣d:
d=[d1 d2 d3 ... di ... dn]
步驟11,計(jì)算待定位節(jié)點(diǎn)的坐標(biāo)估計(jì)值W(x,y)。
11a)將待定位節(jié)點(diǎn)到第i個(gè)iBeacon節(jié)點(diǎn)的距離值di按從小到大的順序排序,得到待定位距離集合:dε={d1,d2,d3,...,di,...,dn},其中d1<d2<d3<...<di<...<dn;
11b)用待定位距離集合dε內(nèi)的每個(gè)元素減去最小值d1,得出待定位差值集合dε':
dε'={0,Δd1,Δd2,Δd3,...,Δdi,...,Δdn},
其中:Δdi=di-d1,其表示待定位節(jié)點(diǎn)到第i個(gè)iBeacon節(jié)點(diǎn)的距離值di與最小值d1的差值;
11c)計(jì)算待定位差值集合dε'中各元素的平均值
11d)將iBeacon節(jié)點(diǎn)分別分成兩個(gè)集合,即的集合C1和的集合C2,設(shè)在集合C2內(nèi)有z個(gè)節(jié)點(diǎn),把集合C2中相差最接近的3個(gè)iBeacon節(jié)點(diǎn)分成一組,共分成z-2組,計(jì)算每組的質(zhì)心,其坐標(biāo)(xL,yL)為:
其中:L∈[1,z-2],(xL1,yL1)、(xL2,yL2)、(xL3,yL3)是每組中的3個(gè)iBeacon節(jié)點(diǎn)坐標(biāo)。
11e)將步驟11d)得到的質(zhì)心重新視為新加入的iBeacon節(jié)點(diǎn),再將z-2個(gè)質(zhì)心點(diǎn)和集合C1內(nèi)的n-z個(gè)iBeacon節(jié)點(diǎn)構(gòu)成多邊形,采用質(zhì)心算法計(jì)算這個(gè)多邊形的質(zhì)心,得到待定位節(jié)點(diǎn)的估計(jì)坐標(biāo)W(x,y)。
步驟12,計(jì)算待定位節(jié)點(diǎn)的最終坐標(biāo)W(x+α,y+β)。
根據(jù)步驟11得到的待定位節(jié)點(diǎn)的估計(jì)坐標(biāo)W(x,y)和步驟6得到的誤差點(diǎn)P的橫坐標(biāo)α和縱坐標(biāo)β,計(jì)算得到待定位節(jié)點(diǎn)的最終坐標(biāo)為:
下面結(jié)合仿真實(shí)驗(yàn),對(duì)本發(fā)明的定位效果做進(jìn)一步分析。
1.實(shí)驗(yàn)條件
本實(shí)驗(yàn)在50*50米的室內(nèi)環(huán)境下布置16個(gè)iBeacon節(jié)點(diǎn),10個(gè)待定位節(jié)點(diǎn)。
2.實(shí)驗(yàn)內(nèi)容
用本發(fā)明方法和現(xiàn)有單質(zhì)心算法分別對(duì)上述10個(gè)待定位節(jié)點(diǎn)進(jìn)行測(cè)試,得到待定位節(jié)點(diǎn)的坐標(biāo)值,結(jié)果如圖2。
從圖2可見,本發(fā)明測(cè)得待定位節(jié)點(diǎn)的坐標(biāo)值與待定位節(jié)點(diǎn)的實(shí)際坐標(biāo)值對(duì)比,其定位精度誤差最大值為2.413米,最小值為0.75米,平均值為1.59米。現(xiàn)有質(zhì)心算法測(cè)得待定位節(jié)點(diǎn)的坐標(biāo)值與待定位節(jié)點(diǎn)的實(shí)際坐標(biāo)值對(duì)比,其定位精度誤差最大值為4.089米,最小值為1.56米,平均值為2.75米。
實(shí)驗(yàn)表明:本發(fā)明將定位精度提高了25%-35%,在室內(nèi)定位中具有較大的優(yōu)勢(shì)。