本發(fā)明涉及通信、導(dǎo)航定位
技術(shù)領(lǐng)域:
,具體地,涉及一種基于梯度下降的離線定位方法。
背景技術(shù):
:WiFi和BLE(低功耗藍(lán)牙)目前是無線網(wǎng)絡(luò)的重要組成部分。在家庭和公共場合,越來越多的WiFi熱點出現(xiàn)在人們的智能設(shè)備里。BLE雖然至今未被普及,但是憑借著其低功耗的特點,將來的發(fā)展前景同樣很好,在室內(nèi)的定位方面有著廣泛的應(yīng)用。WiFi和BLE本身并不具備定位功能,但是通過收集室內(nèi)各個WiFi和BLE的信號強(qiáng)度、傳播時間等數(shù)據(jù),理論上只需要三個接入點,通過信號的傳輸模型進(jìn)行計算,得到與對應(yīng)AP(無線訪問接入點)的相對距離,應(yīng)用傳統(tǒng)的三角定位技術(shù),就可以定位用戶的位置。但是傳統(tǒng)的離線定位算法存在兩點問題:一是傳統(tǒng)的三角定位算法,由于是采用通過得到的與AP的相對距離,再以各AP為圓心,相對距離為半徑作圓,通過三圓的交點得到定位的位置。但是三個圓的交點并不是一定存在,同時在AP數(shù)目大于3的情況下傳統(tǒng)的三點定位就不再有效。另一個不足之處在于,WiFi信號和BLE信號的傳播受到環(huán)境的影響較大,比如在傳播的路徑上有人的經(jīng)過,收到的RSSI值就會出現(xiàn)明顯的變化。同時在同一個位置上的信號強(qiáng)度呈現(xiàn)高斯分布,信號強(qiáng)度的變化就會影響相對距離的計算,導(dǎo)致定位的誤差?,F(xiàn)在的離線定位技術(shù)并沒有考慮到對于信號的波動的處理,僅僅是簡單的直接對RSSI值進(jìn)行計算,本發(fā)明對于離線定位算法進(jìn)行了改進(jìn),先通過濾波器對于獲得的RSSI值進(jìn)行處理,濾去非正常變化的值,減少環(huán)境的干擾,再對于處理過的RSSI值使用梯度下降的算法進(jìn)行定位,是一種有效的離線定位算法,有利于提高定位精度。技術(shù)實現(xiàn)要素:針對現(xiàn)有技術(shù)中的缺陷,本發(fā)明的目的是提供一種基于梯度下降的離線定位方法。本發(fā)明通過用戶持續(xù)檢測的RSSI值運(yùn)用梯度濾波算法篩除異常值,再將篩選后的RSSI值轉(zhuǎn)換為距離,運(yùn)用梯度下降算法確定用戶所在位置。根據(jù)本發(fā)明提供的一種基于梯度下降的離線定位方法,包括:步驟一,獲取已確定的AP接入點的相對位置;步驟二,針對每一個AP接入點,用戶持續(xù)測量自身所在位置處AP接入點的RSSI值,根據(jù)已測RSSI值序列得到各個時刻的RSSI預(yù)測值,將屬于異常值的RSSI預(yù)測值篩除后更新已測RSSI值序列;步驟三,將用戶新測量到的當(dāng)前時刻各個AP接入點的RSSI測量值轉(zhuǎn)換為距離向量;步驟四,根據(jù)距離向量得到定位位置。優(yōu)選地,所述步驟二包括:將偏離第k時刻最終濾波值xk的程度超過閾值的第k時刻的RSSI預(yù)測值判定為異常值;其中,假設(shè)已測RSSI值序列x為x=[x0,x1,......,xn],則第k時刻最終濾波值xk及第k時刻的RSSI預(yù)測值的計算方式如下:xk=xk-+SIGN(xk-1-xk-)·σ(xk-1,xk-)]]>xk-=(▿(xn)t×Δt)+x0]]>▿(xn)t=1nΣk=1n▿(xk)t]]>▿(xk)t=▿xk▿tk]]>σ(xk-1,xk-)=12(xk-1-xk-)2]]>SIGN(xk-1-xk-)=-1,xk-1-xk-≥01,xk-1-xk-<0]]>其中,xk表示第k時刻最終濾波值,表示第k時刻的RSSI預(yù)測值,表示將xk-1與的差值代入sign函數(shù),sign函數(shù)為符號函數(shù),xk-1表示第k時刻的前一時刻最終濾波值,表示計算xk-1與的標(biāo)準(zhǔn)差,表示已測RSSI值序列x在單位時間t內(nèi)的平均梯度,Δt表示第k時刻的RSSI預(yù)測值所在的時刻與x0所在時刻的差值,表示在單位時間t內(nèi)相鄰RSSI值之間的梯度,表示xk+1與xk的RSSI差值,表示xk+1與xk的時間差值。優(yōu)選地,閾值為30%,若則判定第k時刻的RSSI預(yù)測值偏離第k時刻最終濾波值xk的程度超過閾值。優(yōu)選地,所述步驟二中更新已測RSSI值序列的步驟包括:若第k時刻的RSSI預(yù)測值不是異常值,即第k時刻的RSSI預(yù)測值為正常值,則將第k時刻的RSSI預(yù)測值加入已測RSSI值序列x的隊列開頭位處,并將已測RSSI值序列x的隊列末尾的元素出隊;若第k時刻的RSSI預(yù)測值為異常值,則將第k時刻最終濾波值xk加入已測RSSI值序列x的隊列開頭處,并將已測RSSI值序列x的隊列末尾的元素出隊;其中,隊列末尾的元素是指已測RSSI值序列x中對應(yīng)時刻最早的元素。優(yōu)選地,所述步驟三包括:計算用戶自身所在位置與第i個AP接入點的距離ri:ri=10RSSI0i-RSSIi20·r0]]>其中,RSSI0i表示在第i個AP接入點的基準(zhǔn)距離r0處測得的基準(zhǔn)RSSI值,RSSIi表示用戶自身所在位置處測量得到的當(dāng)前時刻第i個AP接入點的RSSI測量值;i=1,2,……,m;m表示AP接入點的數(shù)量;得到距離向量r為r=[r0,r1,.....,rm]。優(yōu)選地,所述步驟四包括:根據(jù)已確定的AP接入點的相對位置,確定相對于AP接入點的相對直角坐標(biāo)系,并隨機(jī)取一點θ,θ=(θ1,θ2),則點θ與各個AP接入點的距離為:hθ(x(i))=(θ1-x1(i))2+(θ2-x2(i))2]]>其中,hθ(x(i))表示點θ與第i個AP接入點的距離,θ1表示相對直角坐標(biāo)系中點θ的橫坐標(biāo),θ2表示相對直角坐標(biāo)系中點θ的縱坐標(biāo),x1(i)表示相對直角坐標(biāo)系中第i個AP接入點的橫坐標(biāo),x2(i)表示相對直角坐標(biāo)系中第i個AP接入點的縱坐標(biāo);持續(xù)改變當(dāng)前點θ坐標(biāo)(θ1,θ2),使點θ到各個AP接入點的距離與距離向量之間誤差的平方和最小,計算公式為:J(θ)=12Σi=1m(hθ(x(i))-y(i))2minθJ(θ)]]>其中,J(θ)表示點θ到各個AP接入點的距離與距離向量r之間誤差的平方和,y(i)表示當(dāng)前時刻測得的與第i個接入點之間的距離向量;m表示AP接入點的數(shù)量;反復(fù)迭代以下公式,直到收斂或者迭代次數(shù)超過設(shè)定值后,將點θ作為定位位置:迭代后的θj等于迭代前的θj減∂∂θjJ(θ)=Σi=1m2×hθ(x(i))-y(i)hθ(x(i))×(θj-xj(i))j=1,2]]>其中,α為梯度下降的步長,θj表示相對直角坐標(biāo)系中點θ的第j維坐標(biāo),表示相對直角坐標(biāo)系中第i個AP接入點的第j維坐標(biāo)。與現(xiàn)有技術(shù)相比,本發(fā)明具有如下的有益效果:本發(fā)明通過持續(xù)測量用戶所在位置各個WiFi接入點的信號強(qiáng)度,運(yùn)用梯度濾波算法對測量的RSS進(jìn)行濾波處理,濾去非正常變化的RSSI值,再使用這些處理過的RSSI值應(yīng)用梯度下降算法得到用戶的位置,提高定位精度。附圖說明通過閱讀參照以下附圖對非限制性實施例所作的詳細(xì)描述,本發(fā)明的其它特征、目的和優(yōu)點將會變得更明顯:圖1為本發(fā)明所提供方法的步驟流程圖。圖2為本發(fā)明優(yōu)選例中的原理示意圖。具體實施方式下面結(jié)合具體實施例對本發(fā)明進(jìn)行詳細(xì)說明。以下實施例將有助于本領(lǐng)域的技術(shù)人員進(jìn)一步理解本發(fā)明,但不以任何形式限制本發(fā)明。應(yīng)當(dāng)指出的是,對本領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變化和改進(jìn)。這些都屬于本發(fā)明的保護(hù)范圍。本發(fā)明提供了一種基于梯度下降的離線定位方法,包括如下步驟:系統(tǒng)通過本地數(shù)據(jù)庫確定附近AP接入點(ACCESSPOINT)的相對位置;用戶持續(xù)檢測所在位置處各個AP接入點的RSSI(ReceivedSignalStrengthIndication接收的信號強(qiáng)度指示)值;系統(tǒng)根據(jù)梯度濾波算法篩除異常值;更新本地已測RSSI值數(shù)據(jù)庫;根據(jù)各AP一定距離處的基準(zhǔn)RSSI值,系統(tǒng)將當(dāng)前RSSI值轉(zhuǎn)換為距離向量;通過梯度下降算法確定當(dāng)前最優(yōu)位置,并將結(jié)果返回給用戶。本算法在脫離在線數(shù)據(jù)庫的情況下,通過篩除RSSI值波動帶來的異常數(shù)據(jù),利用梯度下降算法進(jìn)行最優(yōu)化處理,得到相對精確的定位效果。本實例基于梯度下降的離線定位方法,在用戶無法連接網(wǎng)絡(luò),無法利用在線數(shù)據(jù)庫的情況下,利用測量得到的RSSI值,通過一定的濾波算法來剔除其中因為波動而導(dǎo)致的異常數(shù)據(jù),通過信號衰減公式得到距離,利用梯度下降算法進(jìn)行最優(yōu)化處理,得到定位位置,進(jìn)一步減小定位誤差,得到相對精確的定位效果。根據(jù)本發(fā)明提供的一種基于梯度下降的離線定位方法,包括:步驟一,獲取已確定的AP接入點的相對位置;步驟二,針對每一個AP接入點,用戶持續(xù)測量自身所在位置處AP接入點的RSSI值,根據(jù)已測RSSI值序列得到各個時刻的RSSI預(yù)測值,將屬于異常值的RSSI預(yù)測值篩除后更新已測RSSI值序列;步驟三,將用戶新測量到的當(dāng)前時刻各個AP接入點的RSSI測量值轉(zhuǎn)換為距離向量;步驟四,根據(jù)距離向量得到定位位置。所述步驟二包括:將偏離第k時刻最終濾波值xk的程度超過閾值的第k時刻的RSSI預(yù)測值判定為異常值;其中,假設(shè)已測RSSI值序列x為x=[x0,x1,......,xn],則第k時刻最終濾波值xk及第k時刻的RSSI預(yù)測值的計算方式如下:xk=xk-+SIGN(xk-1-xk-)·σ(xk-1,xk-)]]>xk-=(▿(xn)t×Δt)+x0]]>▿(xn)t=1nΣk=1n▿(xk)t]]>▿(xk)t=▿xk▿tk]]>σ(xk-1,xk-)=12(xk-1-xk-)2]]>SIGN(xk-1-xk-)=-1,xk-1-xk-≥01,xk-1-xk-<0]]>其中,xk表示第k時刻最終濾波值,表示第k時刻的RSSI預(yù)測值,表示將xk-1與的差值代入sign函數(shù),sign函數(shù)為符號函數(shù),xk-1表示第k時刻的前一時刻最終濾波值,表示計算xk-1與的標(biāo)準(zhǔn)差,表示已測RSSI值序列x在單位時間t內(nèi)的平均梯度,Δt表示第k時刻的RSSI預(yù)測值所在的時刻與x0所在時刻的差值,表示在單位時間t內(nèi)相鄰RSSI值之間的梯度,表示xk+1與xk的RSSI差值,表示xk+1與xk的時間差值。閾值為30%,若則判定第k時刻的RSSI預(yù)測值偏離第k時刻最終濾波值xk的程度超過閾值。所述步驟二中更新已測RSSI值序列的步驟包括:若第k時刻的RSSI預(yù)測值不是異常值,即第k時刻的RSSI預(yù)測值為正常值,則將第k時刻的RSSI預(yù)測值加入已測RSSI值序列x的隊列開頭位處,并將已測RSSI值序列x的隊列末尾的元素出隊;若第k時刻的RSSI預(yù)測值為異常值,則將第k時刻最終濾波值xk加入已測RSSI值序列x的隊列開頭處,并將已測RSSI值序列x的隊列末尾的元素出隊;其中,隊列末尾的元素是指已測RSSI值序列x中對應(yīng)時刻最早的元素。例如,對于已測RSSI值序列x=[x0,x1,......,xn],則隊列末尾的元素是x0。存儲更新后的已測RSSI值序列用來判斷下一次或下一時刻RSSI測量值是否是異常值。所述步驟三包括:計算用戶自身所在位置與第i個AP接入點的距離ri:ri=10RSSI0i-RSSIi20·r0]]>其中,RSSI0i表示在第i個AP接入點的基準(zhǔn)距離r0處測得的基準(zhǔn)RSSI值,RSSIi表示用戶自身所在位置處測量得到的當(dāng)前時刻第i個AP接入點的RSSI測量值;i=1,2,……,m;m表示AP接入點的數(shù)量;得到距離向量r為r=[r0,r1,.....,rm]。所述步驟四包括:根據(jù)已確定的AP接入點的相對位置,確定相對于AP接入點的相對直角坐標(biāo)系,并隨機(jī)取一點θ,θ=(θ1,θ2),則點θ與各個AP接入點的距離為:hθ(x(i))=(θ1-x1(i))2+(θ2-x2(i))2]]>其中,hθ(x(i))表示點θ與第i個AP接入點的距離,θ1表示相對直角坐標(biāo)系中點θ的橫坐標(biāo),θ2表示相對直角坐標(biāo)系中點θ的縱坐標(biāo),x1(i)表示相對直角坐標(biāo)系中第i個AP接入點的橫坐標(biāo),x2(i)表示相對直角坐標(biāo)系中第i個AP接入點的縱坐標(biāo);持續(xù)改變點θ的位置,使點θ到各個AP接入點的距離與距離向量之間誤差的平方和最小,計算公式為:J(θ)=12Σi=1m(hθ(x(i))-y(i))2minθJ(θ)]]>其中,J(θ)表示點θ到各個AP接入點的距離與距離向量r之間誤差的平方和,y(i)表示當(dāng)前時刻測得的與第i個接入點之間的距離向量;m表示AP接入點的數(shù)量;反復(fù)迭代以下公式,直到收斂或者迭代次數(shù)超過設(shè)定值后,將點θ作為定位位置:迭代后的θj等于迭代前的θj減∂∂θjJ(θ)=Σi=1m2×hθ(x(i))-y(i)hθ(x(i))×(θj-xj(i))j=1,2]]>其中,α為梯度下降的步長,θj表示相對直角坐標(biāo)系中點θ的第j維坐標(biāo),表示相對直角坐標(biāo)系中第i個AP接入點的第j維坐標(biāo)。所述步驟一中,所述AP接入點的相對位置是在環(huán)境搭建中已經(jīng)獲得的確定的參數(shù),在之后的步驟四中需要運(yùn)用這些相對位置計算出用戶所處的位置。所述步驟二中,用戶通過手機(jī)上的軟件持續(xù)檢測各個AP接入點的信號強(qiáng)度,在固定的時間間隔(單位時間)之內(nèi)對于每個AP接入點的RSSI值進(jìn)行取樣記錄,并保存在本地中。每一次檢測到的每一個的RSSI值都會濾去異常值,所述異常值是指周圍環(huán)境變化引起的RSSI值非正常變化或者是RSS自身的波動。在一個優(yōu)選的實施例中的環(huán)境參數(shù):4m*4m的室內(nèi)環(huán)境,布置了四個BLE設(shè)備,如圖2為該定位系統(tǒng)的實驗環(huán)境。本實驗選擇的是一段連續(xù)的空間。由于BLE設(shè)備信號的覆蓋范圍在四米左右,為了保證區(qū)域內(nèi)每個點都能測得四個BLE設(shè)備的信號強(qiáng)度,同時滿足通過離線定位的要求,將BLE設(shè)備布置間隔取為4m。移動終端設(shè)備:一部Android智能手機(jī),型號為三星i9300,配置是1.4GHz三星Exynos4412cpu和1GRAM,手機(jī)的操作系統(tǒng)是android4.4。這部手機(jī)用來測試用戶實際離線定位操作。BLE設(shè)備:富士康inFocus低功耗藍(lán)牙本實施例包括如下具體步驟:步驟一、在所選定的區(qū)域中,合理布置定位所用的BLE藍(lán)牙,記錄它們的相對位置,建立合適的坐標(biāo)系。然后,對每個藍(lán)牙BLE在基準(zhǔn)點r0(本次實例時為1m)處的RSSI值(約-95dB左右,每個BLE之間存在一定的差異)進(jìn)行定標(biāo)。步驟二、RSSI值的采樣間隔為1s,在所選定的區(qū)域內(nèi),測試人員在初始位置,經(jīng)過一段時間的初始數(shù)據(jù)的積累,以常規(guī)步速沿著一定的軌跡出發(fā)移動,這樣手機(jī)終端會不停地測量各個藍(lán)牙BLE反饋來的RSSI值。步驟三、預(yù)設(shè)進(jìn)行濾波處理時存儲在本地的RSSI數(shù)組容量為20(可進(jìn)行人為調(diào)整),對步驟二測量得到的RSSI值進(jìn)行梯度濾波處理,實時更新RSSI數(shù)組。步驟三、將經(jīng)過濾波比對后的RSSI值代入衰減公式,計算出當(dāng)前位置對于每個BLE的相對距離,得到x=[x0,x1,x2,x3]步驟四、利用梯度下降算法,將預(yù)估位置進(jìn)行反復(fù)迭代,直到達(dá)到最優(yōu)解或者迭代次數(shù)到達(dá)一定的上限。步驟五、得出用戶所在位置,并將結(jié)果返回值用戶端。以上對本發(fā)明的具體實施例進(jìn)行了描述。需要理解的是,本發(fā)明并不局限于上述特定實施方式,本領(lǐng)域技術(shù)人員可以在權(quán)利要求的范圍內(nèi)做出各種變化或修改,這并不影響本發(fā)明的實質(zhì)內(nèi)容。在不沖突的情況下,本申請的實施例和實施例中的特征可以任意相互組合。當(dāng)前第1頁1 2 3