路澤忠,盧小平,馬靚婷,張 航
(河南理工大學 礦山空間信息技術國家測繪地理信息局重點實驗室,河南 焦作 454003)
在智能手機飛速發展的時代,基于位置服務[1](location based service,LBS)成為了人們基本服務需求,尤其在大型的體育館、商場、停車場等室內環境中,無線保真技術(wireless fidelity,WiFi)由于部署簡單、成本低廉、布設普遍等優勢已被廣泛地應用于基于室內的位置服務中[2]。
基于WiFi的室內定位方法主要涉及到達角度(angle of arrival,AOA)、到達時間(time of arrival,TOA)、到達時間差(time difference of arrival,TDOA)及接收信號強度(received signal strength indicator,RSSI)等參數。RSSI方法定位是當前基于WiFi室內定位精度最高的定位方式[3-6]。基于WiFi的RSSI室內定位有2種形式:一種是根據信號傳播的路徑損耗模型將節點接收的強度值轉化為距離值,利用距離交會的方式實現定位;另外一種方式包括2個階段即離線階段和在線階段,首先離線階段采集各個節點之間的強度值建立離線階段的指紋數據庫,其次在線階段獲取某未知節點的強度值利用相關的匹配算法如鄰近算法(nearest neighbor,NN)、加權鄰近算法(k-nearest neighbor,KNN)等實現在線階段的空間匹配。然而這2種方式在進行定位時,能否得到穩定可靠的信號強度值是實現定位的關鍵。室內環境的復雜性導致信號衰減嚴重、RSSI值不穩定,濾波是解決該問題的重要方式之一。
基于WiFi的RSSI室內定位,根據處理對象的不同,濾波可以分為以下2類:1)對定位坐標進行濾波,如文獻[7]等利用WiFi進行定位,通過K鄰近算法對位置進行估計,接著利用濾波算法實現對位置的濾波,達到平滑去噪目的,提高定位精度;2)直接對RSSI值進行濾波:如文獻[8]等在建立RSSI指紋庫時,對采集的信號強度值進行高斯濾波,構建較為精確的指紋數據庫,顯著提高定位精度。文獻[9]等將同一位置采集RSSI值通過高斯濾波后再進行均值濾波將其作為最終定位測距值,提高了定位的精度。然而該濾波方法只能濾除小概率數據,無法濾除大概率數據對定位結果造成影響。因此,本文針對室內WiFi信號采集中,由于室內復雜環境因素的影響,采集的信號強度RSSI值存在較高的時變特性和較大的波動性,導致無法采集到精確的WiFi強度信息等問題進行研究,采用融合ROF的高斯濾波方法對采集RSSI進行濾波并對其距離值進行估計,實現在數據采集階段為WiFi定位提供精度保障。
WiFi信號工作在2.4 GHz頻段,在室內環境中多徑效應、障礙物遮擋等環境因素會導致利用所采集的強度值求解的距離結果偏差較大,因此在不同的環境下選擇不同的路徑損耗模型對實現RSSI的精確定位至關重要[10-11]。基于WiFi信號的RSSI值路徑損耗模型主要有自由空間傳播模型、對數距離路徑損耗模型、對數-常態分布模型。本文針對實際實驗應用環境,選取對數距離路徑損耗模型進行距離的量算實驗。
傳統的對數距離路徑損耗模型為
(1)
為更好地適應室內的復雜環境,文獻[12]中進一步對對數距離路徑損耗模型改進后為
(2)
式中:d0是參考距離;d是收、發天線之間的真實距離;Pr(d)表示WiFi信號傳播距離d時的RSSI值,其計量單位為dBm;Pr(d0)表示d0=1 m時的RSSI值;n表示同層測試的路徑損耗指數值;m表示附加衰減因子。
由于WiFi信號強度RSSI值自身波動性較大,且容易受到復雜環境因素的影響,如多徑效應、同頻率電子設備、人體的干擾等,若想利用WiFi的RSSI值進行室內定位,就需先對數據進行預處理[13]。

利用高斯濾波進行數據的預處理,其前提是所采集的WiFi信號強度RSSI值數據服從或近似服從正態分布。
假設在實驗區域某參考點處采集得到n個RSSI值為Xn,Xn={x1,x2,…,xn-1,xn},其對應的概率為Pn,Pn={p1,p2,...,pn-1,pn},數據濾波均值為μ;數據方差為δ2;則高斯濾波公式為
(3)
對于所測量的WiFi信號強度RSSI值而言,當在某個測量點處獲取某個AP的RSSI值,其分布密度越大,表明該值越接近真實值。利用高斯濾波方法,可有效的剔除奇異數據,將其與均值濾波方法相結合可得到較為精確RSSI值。然而該方法只是剔除了遠離真實值的小概率數據,高概率發生區的選擇仍然使最終RSSI值較實際值偏大且無法消除數據的波動性[14]。
為實現高斯濾波算法對WiFi信號強度RSSI值有效去噪及平滑輸出,解決RSSI值的時變特性和波動性問題,本文對高斯濾波算法進行改進。在對WiFi信號強度RSSI值進行預處理時,將采集到的RSSI值矩陣在高斯濾波的基礎上引入ROF(Rudin Osher Fatemi)去噪模型為
(6)
式中:u0為存在噪聲的強度值矩陣;u為去噪后的強度值矩陣;u為梯度算子;|u|為梯度算子的模;λ為約束參數,且λ≥0;
參照噪聲方差加入的保真項為
?Ω|u0-u|2dxdy
(7)
矩陣的能量函數方程為

(8)
其中,保真項的作用是實現對WiFi強度值矩陣中噪聲的去除。能量函數方程的作用是保證在進行WiFi強度值矩陣RSSI值濾波處理中不會產生過量的偏差,起到平滑的作用,也稱為正則項。λ起到平衡保真項和正則項的作用。
全變分去噪能量泛函[15]為
(9)
對能量泛函進行最小化處理,其歐拉-拉格朗日方程為
F=
(10)
式中F表示泛函E對u的梯度。為避免式(10)中|u|=0,加入正則項β,則式(10)中u變為
|
(11)
本文的算法流程如圖1所示。

圖1 算法流程
在進行WiFi信號強度RSSI測距實驗時,需采集距實驗錨節點1~10 m距離處各節點的強度值,用于構建強度值與距離之間關系的路徑損耗模型。在各節點WiFi信號強度RSSI值采集過程中,利用自編軟件每隔1 s測得一個RSSI值,測得不同距離處的待測節點信號強度RSSI值。本文以試驗場中一個特定錨節點為例,測得距該實驗錨節點的3組不同距離處RSSI源數據如圖2所示。

圖2 3組不同距離處RSSI源數據曲線
從圖2可知,所測得WiFi信號強度RSSI值數據具有一定高斯噪聲波動、有數值突變點、數值差異呈現一定的區間性。
利用本文所改進的濾波算法對采集的數據進行預處理,以d=2.5、6.5、10.0 m處數據為例,數據處理結果如圖3所示。

圖3 RSSI數據處理曲線圖
從圖3可知,采用單一高斯濾波算法,可實現對原始數據的突變點平滑輸出效果,但該方法濾波后的數據輸出整體波動性較大且無法消除允許范圍之內的大范圍波動。利用本文提出的改進高斯濾波算法,在高斯濾波基礎上進行ROF去噪模型的二次濾波平滑,能夠有效的消除數據突變點,實現對數據噪聲波動的平衡,使數據準確、平滑地輸出。
本文所測得距實驗錨節點1~10 m距離處的實測強度數據如圖4所示。

圖4 距實驗錨節點1~10 m距離處強度值
從圖4中可以看出,WiFi信號強度由于受到多徑效應、同頻率電子設備、人體遮擋等室內復雜環境因素的干擾,距離實驗AP越遠,數據波動越大,尤其在3~6 m的距離處。故在進行對數距離路徑損耗模型構建前,需對RSSI數據進行濾波處理,消除數據噪聲對測距結果的影響。
對距實驗錨節點1~10 m距離處RSSI數據分別進行高斯濾波及改進算法濾波,消除數據中存在的噪聲,得到關于實測數據、高斯濾波及改進算法濾波后的數據對比結果如圖5所示。

圖5 實測數據與濾波后數據結果對比
利用改進算法對數據進行濾波后,在濾波后數據的基礎上可以構建更為精確的對數距離路徑損耗模型。本文根據實測數據,對實驗AP在d0=1 m時,Pr(d0)=-28 dBm,得到適用于本次實驗區域的對數距離路徑損耗模型Pr(d)=-28.576-11.75lg(d),其中路徑損耗指數n=1.175,衰減因子m=-0.576。所構建的路徑損耗曲線擬合結果與實測數據、高斯濾波及改進算法濾波后關于距離d和RSSI值的對比曲線如圖6所示;基于RSSI損耗模型的距離計算結果如圖7所示。
從圖6和圖7可知,本文所提出的改進算法能更加有效的反映其在距離d處的有效強度值且改進算法相較于高斯濾波及未經處理的數據而言,其值更接近真實距離值。所得測距誤差曲線如圖8所示。

圖6 距離d和RSSI值的對比曲線

圖7 基于RSSI的距離計算結果
從圖8可以看出,未經修正前數據最大測距誤差為6.285 6,最小測距誤差為0.069 2,平均誤差為2.400 3。經高斯濾波后數據最大測距誤差為3.783 3,最小測距誤差為0.018 7,平均測距誤差為1.792 9 m。經本文改進算法濾波后數據的最大測距誤差為2.550 8,最小測距誤差為0.02,平均誤差為0.982 8 m,這明顯提高了測距精度。

圖8 測距誤差曲線
本文提出基于高斯濾波的改進算法,對采集的WiFi信號強度RSSI值源數據進行濾波平滑處理,針對實驗環境建立基于RSSI的對數距離路徑損耗模型,利用該測距模型計算AP與實驗手機之間的距離。實驗結果證明,本文所提出的改進方法能夠有效實現對RSSI值的準確、平滑輸出,可真實反映實際距離處的強度值,提高了測距精度,從而更好地為WiFi室內定位提供保障。