本發(fā)明屬于無線通信技術(shù)領(lǐng)域的室內(nèi)定位技術(shù),具體是一種基于位置指紋的高效室內(nèi)定位方法。
背景技術(shù):
基于位置指紋的室內(nèi)定位是一種采用接收信號強度值(RSS)作為場景分析數(shù)據(jù)的室內(nèi)定位技術(shù),與傳統(tǒng)的室內(nèi)定位方法相比,位置指紋法具有眾多優(yōu)點:(1)易于采用智能優(yōu)化算法進行分析;(2)信號處理方式靈活;(3)受室內(nèi)環(huán)境的影響較小;(4)不需要額外的定位設(shè)備,實現(xiàn)簡單;(5)具有較高的定位精度。
基于位置指紋的室內(nèi)定位系統(tǒng),由于其存在成本低、精度高、系統(tǒng)復雜度低以及環(huán)境適應性強等特點,極度受到人們青睞并被廣泛運用到眾多領(lǐng)域。目前RSS指紋定位方法包括離線階段和定位階段。離線階段需要收集RSS數(shù)據(jù),然后在定位段將未知節(jié)點的RSS和離線階段的RSS進行匹配比較。然而,實現(xiàn)具有較高的定位精度的定位系統(tǒng),室內(nèi)位置指紋采樣間距需要滿足一定條件,也就是需要較高的采樣密度,這就使得構(gòu)建RSS指紋庫的工作量變得巨大。而且大量的指紋庫使得傳統(tǒng)的定位算法匹配效率低下,傳統(tǒng)算法的定位精度也變得很差。因此,針對目前位置指紋法存在的收集指紋庫的工作量大、匹配效率低和定位算法精度低的問題,提高基于位置指紋的室內(nèi)定位的有效性成為本發(fā)明研究的重點內(nèi)容。
針對離線階段收集RSS數(shù)據(jù)工作量大的情況,研究了一種基于低秩理論重構(gòu)RSS矩陣的方法。離線階段采樣少許的指紋數(shù)據(jù),利用稀疏秩矩陣奇異值分解(SRSVD)算法重構(gòu)出整個指紋庫,該方法的重構(gòu)誤差較小。傳統(tǒng)定位都是利用未知節(jié)點的RSS向量同指紋庫中所有RSS向量逐一匹配,針對該方法會增加計算復雜度的缺點,利用基于模糊聚類的方法對指紋庫數(shù)據(jù)進行分類,模糊c均值聚類(FCM)算法具有較高的定位精度和較低的運算復雜度。針對傳統(tǒng)定位算法僅僅利用K個節(jié)點定位從而誤差較大的問題,研究了基于反向傳播(BP)神經(jīng)網(wǎng)絡(luò)的算法,利用該方法對RSS和其對應的坐標進行擬合,該方法的擬合 性能較好且具有較高的定位精度。
以上這些優(yōu)化算法,不能同時滿足較低的離線階段的工作量、較高的在線匹配效率和實時定位精度。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于提供一種高效的定位方法,能夠降低離線階段采樣指紋數(shù)據(jù)的工作量,且具有較高的定位精度和較低的運算復雜度。
實現(xiàn)本發(fā)明目的的技術(shù)解決方案為:一種基于位置指紋的高效室內(nèi)定位方法,首先在定位區(qū)域內(nèi)固定位置采樣指紋數(shù)據(jù),通過SRSVD算法重構(gòu)出整個指紋庫,然后利用FCM算法對重構(gòu)出的指紋庫進行模糊分類,接下來對每一類的RSS值和其對應的位置坐標利用BP神經(jīng)網(wǎng)絡(luò)進行擬合,最后在定位階段,將未知目標的RSS向量同每一類的中心矢量進行匹配,然后將它歸屬為相似度最高的某一類,再利用擬合好的BP神經(jīng)網(wǎng)絡(luò)計算輸出位置坐標。
本發(fā)明與單獨使用矩陣重構(gòu)、模糊聚類和神經(jīng)網(wǎng)絡(luò)算法相比,優(yōu)點體現(xiàn)在:(1)能夠在復雜的室內(nèi)環(huán)境下工作;(2)離線階段收集指紋庫的工作量低;(3)運算復雜度低;(4)具有較高的定位精度。
附圖說明
圖1為SRSVD算法的處理流程圖。
圖2為FCM算法的處理流程圖。
圖3為BP神經(jīng)網(wǎng)絡(luò)算法的處理流程圖。
圖4為在采樣率取20%、聚類數(shù)目取6、隱含層節(jié)點數(shù)取80的條件下,本發(fā)明MR-FCBP同SRSVD,F(xiàn)CM,BP,SRSVD+FCM,SRSVD+BP,F(xiàn)CM+BP這六種算法的CDF分布。
具體實施方式
本發(fā)明采用基于一種基于矩陣重構(gòu)、模糊聚類和BP神經(jīng)網(wǎng)絡(luò)(MR-FCBP)的混合定位算法,能夠同時滿足較低的離線階段的工作量、較高的在線匹配效率和實時定位精度等條件,具有較低的運算復雜度和較高的定位精度。
下面結(jié)合附圖對本發(fā)明作進一步詳細描述。
本發(fā)明首先將定位區(qū)域按照一定間距分成N個采樣點,隨機選取M個點并采集其RSS數(shù)據(jù),X表示指紋數(shù)據(jù)庫矩陣,B表示測量矩陣,我們利用SRSVD算法重構(gòu)X,重構(gòu)過程等價于下列模型:
其中X就是需要重構(gòu)的矩陣,該問題可以等效描述為:
接著針對傳統(tǒng)定位算法中RSS指紋庫的匹配效率低的問題,本發(fā)明研究一種基于模糊聚類的方法,該方法對RSS指紋庫進行分類,可以提高指紋的匹配效率。
模糊聚類是在某種準則下類中樣本相似度最大、類間樣本相似度最小,是一種無監(jiān)督的過程。其目標函數(shù)定義如下:
W=[wij]c×n表示隸屬度矩陣,vi表示第i類的聚類中心向量,(1≤i≤k),vi=(vi1,vi2,...,vis)∈Rk,其目標函數(shù)可表達成:
其中dij為樣本xi和聚類中心vi之間的距離,n表示為模糊加權(quán)指數(shù),模糊效果隨著n的增大而顯著,本發(fā)明中n取2。
最后針對傳統(tǒng)定位算法只是采用K個近鄰的節(jié)點,而未考慮到整個指紋庫各個節(jié)點之間的潛在聯(lián)系,本發(fā)明采用了一種BP神經(jīng)網(wǎng)絡(luò)的算法,利用該方法將RSS值和位置坐標非線性擬合。
本發(fā)明采用的BP神經(jīng)網(wǎng)絡(luò)是一個包含輸入層、隱含層和輸出層的三層網(wǎng)絡(luò)結(jié)構(gòu)。BP算法的目的是通過不斷地優(yōu)化權(quán)系數(shù)和閥值使得誤差函數(shù)E(k)最小,E(k)是神經(jīng)元輸出層的均方誤差和,其定義為:
式中d1,k和d2,k分別是定位區(qū)域內(nèi)第k個訓練采樣點的x方向上的期望的坐標值和y方向上的期望的坐標值。和分別是定位區(qū)域內(nèi)第k個訓練樣點的x方向上的實際的坐標值和y方向上的實際的坐標值。表示為第k個訓練采樣點的第l層上第j個神經(jīng)元,下式為計算公式。
式中,表示第k個訓練采樣點的從第(l-1)層上的第i個神經(jīng)元到第l層上的第j個神經(jīng)元的輸入數(shù)據(jù)。表示從第(l-1)層上的第i個神經(jīng)元到第l層上的第j個神經(jīng)元的權(quán)系數(shù)。表示第l層上的第j個神經(jīng)元的閥值。N、L和2分別表示輸入層、隱含層、和輸出層的數(shù)目。f(g)表示激活函數(shù)。
神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)中所有的權(quán)系數(shù)和閥值按照式更新。
式中η和γ分別是權(quán)系數(shù)和閥值的學習速率。為了保持網(wǎng)絡(luò)的穩(wěn)定,學習速率通常設(shè)定為0.01到0.1之間,除了運用到平衡訓練時間和性能,方法的學習速率是可調(diào)整的。
圖1給出了SRSVD算法的處理流程。需要滿足目標函數(shù)
式中L=UD1/2,R=VD1/2,矩陣L和R具有相同的維數(shù)和秩。求解一個低秩矩陣的秩可以近似計算其核范數(shù),將X通過奇異值分解得到L和R,尋找L和R的最小F范數(shù)和。
圖2給出了FCM算法的處理流程。需要滿足目標函數(shù)
W=[wij]c×n表示隸屬度矩陣,vi表示第i類的聚類中心向量,(1≤i≤k),vi=(vi1,vi2,...,vis)∈Rk,其中dij為樣本xi和聚類中心vi之間的距離,式中n表示為模糊加權(quán)指數(shù)。
圖3給出了BP神經(jīng)網(wǎng)絡(luò)算法的處理流程。需要滿足目標函數(shù)
式中d1,k和d2,k分別是第k個采樣點的x方向上的期望的坐標值和y方向上的期望的坐標值。和分別是第k個采樣點的x方向上的實際的坐標值和y方向上的實際的坐標值。
圖4為在采樣率取20%、聚類數(shù)目取6、隱含層節(jié)點數(shù)取80的條件下,本發(fā)明MR-FCBP同SRSVD,F(xiàn)CM,BP,SRSVD+FCM,SRSVD+BP,F(xiàn)CM+BP這六種算法的CDF分布。
表1給出了本發(fā)明同其它算法的定位誤差和運行時間。
表1不同算法的定位誤差
表2不同算法的運行時間
可以看出,MR-FCBP的定位性能均優(yōu)越于FCM、BP和SRSVD。MR-FCBP 算法結(jié)合了其它方法的優(yōu)點,具有較高的匹配效率和定位精度。單獨采用SRSVD、FCM和BP算法的運行時間總和要遠大于本發(fā)明的運行時間。由于SRSVD算法降低離線階段采樣指紋的時間要遠大于其算法本身運行的時間,而FCM算法能夠使指紋匹配計算量降低6倍,進而使得BP算法的訓練時間也大大降低,所以本發(fā)明能夠充分發(fā)揮每一種算法的優(yōu)勢,使得算法運行效率較高。