大型室內(nèi)空間中的多熱點(diǎn)信號(hào)指紋地圖的存儲(chǔ)和匹配方法
【專利摘要】本發(fā)明涉及大型室內(nèi)空間中的多熱點(diǎn)信號(hào)指紋地圖的存儲(chǔ)和匹配方法。傳統(tǒng)的二維鏈表結(jié)構(gòu)適合進(jìn)行稀疏矩陣的存儲(chǔ),但是不適合進(jìn)行信號(hào)強(qiáng)度矢量的快速匹配。本發(fā)明方法包括建立指紋地圖的內(nèi)存數(shù)據(jù)結(jié)構(gòu)和信號(hào)強(qiáng)度矢量在指紋地圖的匹配方法兩部分。指紋地圖的內(nèi)存數(shù)據(jù)結(jié)構(gòu)主體為二維稀疏鏈表,兩個(gè)維度均采用哈希表,分別為AP哈希表和測(cè)量點(diǎn)哈希表。指紋地圖內(nèi)存數(shù)據(jù)結(jié)構(gòu)建立之后,開始定位,將測(cè)量到的信號(hào)強(qiáng)度矢量在指紋地圖中進(jìn)行匹配,計(jì)算信號(hào)強(qiáng)度矢量與某一測(cè)量點(diǎn)的信號(hào)強(qiáng)度矢量之間的矢量距離,根據(jù)該矢量距離進(jìn)行匹配。本發(fā)明方法提高了匹配計(jì)算的速度,解決了在大型室內(nèi)空間中的多熱點(diǎn)信號(hào)指紋地圖匹配引起的定位延遲問題。
【專利說明】大型室內(nèi)空間中的多熱點(diǎn)信號(hào)指紋地圖的存儲(chǔ)和匹配方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于無線通信【技術(shù)領(lǐng)域】,具體涉及一種大型室內(nèi)空間中的多熱點(diǎn)信號(hào)指紋地圖的存儲(chǔ)和匹配方法。
【背景技術(shù)】
[0002]隨著無線網(wǎng)絡(luò)技術(shù)的飛速發(fā)展和人們對(duì)定位服務(wù)需求的日益增多,無線定位技術(shù)得到越來越多的關(guān)注。GPS(Global Posit1n System,全球定位系統(tǒng))是20世紀(jì)70年代由美國研制的以為陸、海、空三大領(lǐng)域提供實(shí)時(shí)、全天候和全球性的導(dǎo)航服務(wù)為目的的空間衛(wèi)星導(dǎo)航定位系統(tǒng)。對(duì)于信號(hào)到達(dá)較為容易的開闊的室外環(huán)境,GPS可以提供高精度的定位信息。而對(duì)于室內(nèi)環(huán)境,由于建筑物本身的遮擋以及建筑物內(nèi)部結(jié)構(gòu)包括墻壁、門窗、各種擺設(shè)和實(shí)時(shí)變化的人員走動(dòng),使得在室內(nèi)環(huán)境中接收到的GPS信號(hào)極其微弱,無法從中獲得定位所需的有效信息,因此需要考慮建立一種室內(nèi)的定位系統(tǒng),為日益增長(zhǎng)的室內(nèi)定位需求提供可靠的定位信息。
[0003]目前,業(yè)界大多是在現(xiàn)有的無線通信網(wǎng)絡(luò)設(shè)施的基礎(chǔ)之上構(gòu)建無線定位技術(shù)。室內(nèi)的無線通信網(wǎng)絡(luò)設(shè)施主要是WLAN,WLAN通過WiFi信號(hào)進(jìn)行通信,AP (Access Point,無線接入點(diǎn))即WiFi熱點(diǎn),是WLAN的核心設(shè)備,它負(fù)責(zé)無線網(wǎng)絡(luò)的管理,通告自己的存在以及當(dāng)前無線網(wǎng)絡(luò)信息,讓終端用戶經(jīng)過掃描匹配后能夠與之關(guān)聯(lián),并控制通信過程。WLAN的廣泛應(yīng)用源于它的眾多優(yōu)點(diǎn)=WLAN的網(wǎng)絡(luò)布局簡(jiǎn)單,并具有較高的通信速度,符合現(xiàn)代社會(huì)對(duì)于移動(dòng)通信、移動(dòng)辦公以及移動(dòng)娛樂等要求。并且無線局域網(wǎng)的容量大、用戶多、覆蓋廣等特點(diǎn)使得其應(yīng)用更加廣泛。WLAN主要的應(yīng)用環(huán)境是室內(nèi)環(huán)境和人們活動(dòng)的熱點(diǎn)地區(qū)。
[0004]WLAN中AP所發(fā)出的WiFi信號(hào)也可以用作定位?;赪iFi的室內(nèi)定位原理如圖1所示。在室內(nèi)空間內(nèi)部署無線接入點(diǎn)A和B之后,在測(cè)量點(diǎn)I的位置可以測(cè)量到A的信號(hào)強(qiáng)度為-69,B的信號(hào)強(qiáng)度為-82。同樣,在測(cè)量點(diǎn)2的位置分別測(cè)量到A和B的強(qiáng)度為-74和-72。對(duì)圖中所有的測(cè)量點(diǎn)上對(duì)A和B的信號(hào)強(qiáng)度進(jìn)行測(cè)量,便生成了該區(qū)域的信號(hào)指紋地圖。用戶所持手機(jī)在當(dāng)前位置測(cè)到的A和B的信號(hào)強(qiáng)度分別為-73和-75,設(shè)sqr O為開平方函數(shù),則根據(jù)矢量距離計(jì)算公式得到其與A點(diǎn)的信號(hào)矢量距離為:
[0005]S(測(cè)量點(diǎn) I) = sqr ((-73+74)2+(-75+72)2) = 3.16
[0006]S (測(cè)量點(diǎn) 2) = sqr ((-73+69)2+ (-75+82)2) = 8.06
[0007]由此可知,用戶當(dāng)前所在的位置更接近于測(cè)量點(diǎn)I。由此可知,在定位時(shí)將實(shí)際測(cè)量得到的信號(hào)強(qiáng)度與整個(gè)指紋地圖進(jìn)行匹配,找到與之最為相似的測(cè)量點(diǎn),即為當(dāng)前所在的近似位置。
[0008]將當(dāng)前位置的信號(hào)強(qiáng)度矢量和指紋地圖的匹配,是室內(nèi)定位的關(guān)鍵技術(shù)之一。其涉及的主要問題包括:
[0009]1.指紋地圖的存儲(chǔ)空間。在一個(gè)大型的室內(nèi)空間內(nèi),AP的部署量可以達(dá)到幾百甚至上千個(gè),而測(cè)量點(diǎn)的數(shù)量可以達(dá)到數(shù)萬個(gè),一些高精度的指紋地圖中,測(cè)量點(diǎn)的數(shù)量甚至可以達(dá)到數(shù)十萬。在這種情況下,指紋地圖在定位系統(tǒng)運(yùn)行時(shí)所占用的存儲(chǔ)空間較大,其空間復(fù)雜度為O (mXη),其中m為AP的個(gè)數(shù),η為測(cè)量點(diǎn)數(shù)量。這使得手機(jī)等手持定位系統(tǒng)難以在內(nèi)存中保存完整的指紋地圖,而需要在實(shí)時(shí)定位時(shí)訪問磁盤或者SD卡上的數(shù)據(jù)進(jìn)行匹配,這將使定位的延遲變得非常大,無法達(dá)到實(shí)時(shí)定位的效果。
[0010]2.指紋地圖的訪問效率。簡(jiǎn)化的,定位時(shí)獲取的信號(hào)矢量與指紋地圖進(jìn)行匹配時(shí),需要計(jì)算該矢量與數(shù)萬甚至數(shù)十萬個(gè)測(cè)量點(diǎn)的信號(hào)矢量距離;在每一次計(jì)算信號(hào)矢量距離時(shí),也需要遍歷每一個(gè)ΑΡ。因此,指紋地圖匹配的時(shí)間復(fù)雜度為O(mXn)。這同樣會(huì)使定位的延遲加大。
[0011]目前室內(nèi)定位系統(tǒng)處于實(shí)驗(yàn)室成果向商業(yè)應(yīng)用過渡的階段,因此其研究的主流是如何提高定位精度和減少人工參與的指紋地圖構(gòu)建工作,而對(duì)指紋地圖的存儲(chǔ)結(jié)構(gòu)通常簡(jiǎn)單的采用數(shù)據(jù)庫或者二維線性表,匹配方法也是以數(shù)據(jù)庫或者二維線性表的遍歷為基礎(chǔ)進(jìn)行改進(jìn)。這在小面積演示或應(yīng)用時(shí)不會(huì)對(duì)定位系統(tǒng)產(chǎn)生影響,但是一旦對(duì)大型和超大型室內(nèi)空間進(jìn)行部署時(shí),測(cè)量點(diǎn)和AP數(shù)量大幅增加,這些方法就會(huì)導(dǎo)致系統(tǒng)無法正常運(yùn)行。因此設(shè)計(jì)合理的信號(hào)指紋地圖存儲(chǔ)和匹配方法,是構(gòu)造高精度的室內(nèi)定位系統(tǒng)亟待解決的重要問題。
【發(fā)明內(nèi)容】
[0012]本發(fā)明的目的就是為了解決測(cè)量點(diǎn)和無線接入點(diǎn)(AP,ACCeSS Point)數(shù)量大引起的定位延遲問題,提供一種大型室內(nèi)空間中的多熱點(diǎn)信號(hào)指紋地圖的存儲(chǔ)和匹配方法。
[0013]本發(fā)明具體方法包括:(I)建立指紋地圖的內(nèi)存數(shù)據(jù)結(jié)構(gòu);(2)信號(hào)強(qiáng)度矢量在指紋地圖的匹配。
[0014](I)建立指紋地圖的內(nèi)存數(shù)據(jù)結(jié)構(gòu):
[0015]所述的指紋地圖的內(nèi)存數(shù)據(jù)結(jié)構(gòu)主體為二維稀疏鏈表,兩個(gè)維度均采用哈希表,分別為AP哈希表和測(cè)量點(diǎn)哈希表;
[0016]所述的AP哈希表中的每一行表示某個(gè)無線接入點(diǎn)(AP, Access Point)在不同測(cè)量點(diǎn)的測(cè)量記錄,組織成鏈表的形式;AP哈希表結(jié)構(gòu)根據(jù)AP的mac地址獲得該AP的數(shù)據(jù)結(jié)構(gòu)ap,在該AP的數(shù)據(jù)結(jié)構(gòu)ap中獲得該AP的編號(hào)及該AP的所有測(cè)量記錄;每一列表示某一個(gè)測(cè)量點(diǎn)上不同AP的測(cè)量記錄,同樣組織成鏈表的形式,這一列上所有的測(cè)量記錄可以組成該測(cè)量點(diǎn)的信號(hào)強(qiáng)度矢量records ;所述的測(cè)量記錄用來記錄一個(gè)測(cè)量點(diǎn)上測(cè)得的某一 AP信號(hào)強(qiáng)度,其數(shù)據(jù)結(jié)構(gòu)表示為record。
[0017]所述的測(cè)量點(diǎn)哈希表根據(jù)測(cè)量點(diǎn)的全局編號(hào)獲得該測(cè)量點(diǎn)的數(shù)據(jù)結(jié)構(gòu)point,從point中能夠獲得該測(cè)量點(diǎn)的時(shí)間戳(timestamp)以及測(cè)量記錄鏈表;所述的時(shí)間戳(timestamp)是point用來保存這一測(cè)量點(diǎn)最后一次參與的定位計(jì)算所發(fā)生的時(shí)間,采用時(shí)鐘周期作為時(shí)間戳(timestamp)的單位。
[0018]所述的AP 數(shù)據(jù)類型為:ap {char []mac ;char [] ssid ; int ap_id ;record*records ;};
[0019]所述測(cè)量點(diǎn)的數(shù)據(jù)結(jié)構(gòu)point的數(shù)據(jù)類型為:point {int point_id ;longtimestamp ;record*records ;};
[0020]所述測(cè)量記錄的數(shù)據(jù)結(jié)構(gòu)record的數(shù)據(jù)類型為:record {int ap_id ;int point_id ;int rss ;record*left ;record*down ;}。
[0021](2)信號(hào)強(qiáng)度矢量在指紋地圖的匹配方法具體是:
[0022]指紋地圖內(nèi)存數(shù)據(jù)結(jié)構(gòu)建立之后,開始定位。定位過程首先測(cè)量到當(dāng)前位置的信號(hào)強(qiáng)度矢量V[k],然后將V[k]在指紋地圖中進(jìn)行匹配,其中k為當(dāng)前定位設(shè)備測(cè)到信號(hào)的數(shù)量,V[k]為一個(gè)數(shù)組,該數(shù)組中一個(gè)元素的結(jié)構(gòu)為:V[] {char []ap_mac ;int rss ;};
[0023]設(shè)(AP1, AP2,...APJ為定位系統(tǒng)中所有AP的集合;m > i > 1,貝丨J APi為定位系統(tǒng)中第i個(gè)AP的編號(hào)。
[0024]采用如下方法計(jì)算V[k]與某一測(cè)量點(diǎn)的信號(hào)強(qiáng)度矢量records之間的矢量距離:
[0025]
【權(quán)利要求】
1.大型室內(nèi)空間中的多熱點(diǎn)信號(hào)指紋地圖的存儲(chǔ)和匹配方法,該方法包括建立指紋地圖的內(nèi)存數(shù)據(jù)結(jié)構(gòu)和信號(hào)強(qiáng)度矢量在指紋地圖的匹配兩部分,其特征在于: (1)建立指紋地圖的內(nèi)存數(shù)據(jù)結(jié)構(gòu): 所述的指紋地圖的內(nèi)存數(shù)據(jù)結(jié)構(gòu)主體為二維稀疏鏈表,兩個(gè)維度均采用哈希表,分別為AP哈希表和測(cè)量點(diǎn)哈希表; 所述的AP哈希表中的每一行表示某個(gè)AP在不同測(cè)量點(diǎn)的測(cè)量記錄,組織成鏈表的形式,所述的AP為無線接入點(diǎn);AP哈希表結(jié)構(gòu)根據(jù)AP的mac地址獲得該AP的數(shù)據(jù)結(jié)構(gòu)ap,在該AP的數(shù)據(jù)結(jié)構(gòu)ap中獲得該AP的編號(hào)及該AP的所有測(cè)量記錄;每一列表示某一個(gè)測(cè)量點(diǎn)上不同AP的測(cè)量記錄,同樣組織成鏈表的形式,這一列上所有的測(cè)量記錄可以組成該測(cè)量點(diǎn)的信號(hào)強(qiáng)度矢量records ;所述的測(cè)量記錄用來記錄一個(gè)測(cè)量點(diǎn)上測(cè)得的某一 AP信號(hào)強(qiáng)度,其數(shù)據(jù)結(jié)構(gòu)表示為record ; 所述的測(cè)量點(diǎn)哈希表根據(jù)測(cè)量點(diǎn)的全局編號(hào)獲得該測(cè)量點(diǎn)的數(shù)據(jù)結(jié)構(gòu)point,從point中能夠獲得該測(cè)量點(diǎn)的時(shí)間戳timestamp以及測(cè)量記錄鏈表;所述的時(shí)間戳timestamp是point用來保存這一測(cè)量點(diǎn)最后一次參與的定位計(jì)算所發(fā)生的時(shí)間,采用時(shí)鐘周期作為時(shí)間戳timestamp的單位; (2)信號(hào)強(qiáng)度矢量在指紋地圖的匹配方法具體是: 指紋地圖內(nèi)存數(shù)據(jù)結(jié)構(gòu)建立之后,開始定位;定位過程首先測(cè)量到當(dāng)前位置的信號(hào)強(qiáng)度矢量V[k],然后將V[k]在指紋地圖中進(jìn)行匹配,其中k為當(dāng)前定位設(shè)備測(cè)到信號(hào)的數(shù)量,V[k]為一個(gè)數(shù)組,該數(shù)組中一個(gè)元素的結(jié)構(gòu)為:V[] {char []ap_mac ;int rss ;}; 設(shè)(AP1, AP2,...APJ為定位系統(tǒng)中所有AP的集合;m > i > 1,則APi為定位系統(tǒng)中第i個(gè)AP的編號(hào); 采用如下方法計(jì)算V[k]與某一測(cè)量點(diǎn)的信號(hào)強(qiáng)度矢量records之間的矢量距離:
-100? V 中不容在任if ¥f||ap.mac — AP1.mac._ frecord.rss,record.是德表 reccMto 中 αΡ| 1-100,records喲不容1^珥對(duì)+弦_灣量記錄 匹配方法具體包含如下步驟: .1.設(shè)與當(dāng)前位置具有最小矢量距離的測(cè)量點(diǎn)編號(hào)min_p= -l,該最小矢量距離Smin =q,其中q為矢量距離的閾值;. 2.設(shè)定time為從開機(jī)到當(dāng)前的cpu運(yùn)行的時(shí)鐘周期數(shù),用來記錄本次定位發(fā)生的時(shí)間;. 3.設(shè)定i=0,i為V[k]中元素的變量序號(hào),對(duì)V[k]進(jìn)行以下操作,: .3-1.如果i > k,則直接跳轉(zhuǎn)到步驟4 ; .3-2.根據(jù)V[i]中的ap_mac從AP哈希表中獲得ap」; 3-3.設(shè)定record為ap」的records中第一個(gè)測(cè)量記錄,執(zhí)行以下操作: 3-3-1.如果測(cè)量記錄record不存在,則跳轉(zhuǎn)到步驟3_4 ; 3-3-2.根據(jù)測(cè)量記錄record的測(cè)量點(diǎn)編號(hào)point_id,從測(cè)量點(diǎn)哈希表中獲得該測(cè)量點(diǎn) point ; 3-3-3.如果point的時(shí)間戳point, timestamp等于本次定位發(fā)生的時(shí)間time,表明這一測(cè)量點(diǎn)在本次定位中已經(jīng)計(jì)算過矢量距離,直接跳轉(zhuǎn)到步驟3-2-5 ; 3-3-4.使用公式I計(jì)算當(dāng)前位置的信號(hào)強(qiáng)度矢量V[k]和測(cè)量點(diǎn)point的信號(hào)強(qiáng)度矢量point, records之間的矢量距離S (V[k], point, records);設(shè)置測(cè)量點(diǎn)point的時(shí)間戳point, timestamp等于本次定位發(fā)生的時(shí)間time,用來標(biāo)記該測(cè)量點(diǎn)在本次匹配中已經(jīng)計(jì)算過矢量距離; 3-3-5.如果S (V [k], point, records) <Smin,表示找到了一個(gè)矢量距離更小的測(cè)量點(diǎn),設(shè)置 Smin 為 S (V [k], point, records),然后設(shè)置 min_p 為測(cè)量點(diǎn) point 的編號(hào) point.point_id ; 3-3-6.設(shè)置record為ap」的records中下一個(gè)測(cè)量記錄,并跳轉(zhuǎn)至步驟3_3_1 ; 3-4.設(shè)置i = i+1,并跳轉(zhuǎn)至步驟3-1 ;.4.輸出min_p為定位結(jié)果;如果min_p>0,則表示當(dāng)前所在的位置在編號(hào)為min_p的測(cè)量點(diǎn)附近;如果min_p〈0,則表示沒有有效的定位結(jié)果。
2.如權(quán)利要求1所述的大型室內(nèi)空間中的多熱點(diǎn)信號(hào)指紋地圖的存儲(chǔ)和匹配方法,其特征在于:
所述的 AP 數(shù)據(jù)類型為:ap {char []mac ;char [] ssid ;int ap_id ;record*records ;}; 所述測(cè)量點(diǎn)的數(shù)據(jù)結(jié)構(gòu)point的數(shù)據(jù)類型為:point{int point_id ;long timestamp ;record*records ;}; 所述測(cè)量記錄的數(shù)據(jù)結(jié)構(gòu)record的數(shù)據(jù)類型為:record{int ap_id ;int point_id ;int rss ;record*left ;record*down ;}。
【文檔編號(hào)】G06F17/30GK104202817SQ201410444577
【公開日】2014年12月10日 申請(qǐng)日期:2014年9月3日 優(yōu)先權(quán)日:2014年9月3日
【發(fā)明者】葛航, 余小益, 曹興兵, 朱旭東 申請(qǐng)人:創(chuàng)業(yè)軟件股份有限公司