王 力 陳宇翔 孫 健
1(承德石油高等專科學校電氣與電子系 河北 承德 067000)2(杭州電子科技大學通信工程學院 浙江 杭州 310018)3(中國石油塔里木石油勘探開發指揮部 新疆 庫爾勒 841000)
室內定位領域中,目前應用較多的還是藍牙、超寬帶、Wi-Fi、無線電射頻識別(Radio Frequency Identificationo Devices,RFID)等技術。但一方面,由于室內環境的復雜性,接收信號不穩定,有噪聲,從而影響了基于接收信號強度的室內定位技術的準確性。另一方面,傳統的應用于室內定位的無線通信技術,由于功耗高、成本大、覆蓋范圍小等因素,推廣起來易受限制,而LoRa技術,作為LPWAN的一種典型技術,本身具有低功耗、低成本、遠距離的優點,使其逐漸成為應用于室內定位領域中的新技術[1]。
如今,國內外學者已對藍牙、Wi-Fi、ZigBee等傳統的無線通信技術作了深入的研究。但由于LoRa技術相對較新,基于LoRa的室內定位算法研究并不成熟。文獻[2]提出了一種利用LoRa接收信號強度的方法來測量參考點與目標的距離,從而利用三邊測距法實現對目標的定位。文獻[3]借助LoRa技術,對長距離室內定位方法進行了研究,同時在短距離室內定位區域中與Wi-Fi進行了比較,驗證了基于LoRa的室內定位的可行性。
常見的定位算法有:基于幾何原理的定位法(三邊定位法、三角測量法AOA)、基于RSSI測距的定位算法(傳播模型法、指紋定位算法)等[4-7]。指紋定位法不需要額外的硬件設備,也無需建立復雜的路徑損耗傳播模型,擁有成本低,便攜性等優點,為廣大用戶所接受,目前基于指紋的室內定位算法研究也已成為室內定位的研究熱點[8-9]。典型的指紋定位算法有近鄰法、核函數法、最大似然概率法、人工神經網絡法以及支持向量回歸法[10-12]。
本文結合LoRa技術,提出了一種基于LoRa指紋和改進支持向量回歸的室內定位算法。針對傳統的基于支持向量回歸的室內定位算法在離線階段訓練模型時會產生由于RSSI的穩定性差導致模型質量不高的問題。本文從兩方面進行改進:1) 在指紋特征方面,增加LoRa測距指紋,提高指紋穩定性;2) 在指紋數據庫建立和在線定位過程中,分別采用高斯濾波和中位數濾波來對指紋進行預處理,消除指紋的粗大誤差。最后開展了實際室內環境下的現場實驗,并通過實驗結果論證其優勢。
在室內的無線信號傳播過程中,由于無線電信號的波動,在同一個位置處的相同時間段采集某個錨點的RSSI值也是不斷變化的。圖1是在某幾個測試點處用LoRa裝置采集到的100組RSSI值概率分布直方圖,天線朝向均垂直向上。

圖1 某些測試點處RSSI值的概率分布直方圖
在實際室內環境中,無線信號在傳播過程中受到多徑、非視距等因素影響,因此在同一位置處RSSI值往往表現出復雜的時變特性。而在傳統的指紋定位算法中,又往往以RSSI值作為指紋信號向量,因此在離線階段訓練模型時會由于RSSI值的穩定性能差導致模型的質量較低,從而在實時定位階段預測得到的定位值較實際值誤差較大的結果。
LoRa的SX1280芯片自帶了測距引擎工作模式,該測距引擎模式的工作原理是基于TOA來計算的。即到達時間融合測距引擎,使用了time-of-flight(TOF)測距方法。SX1280的測距功能基于一對SX1280收發器之間的往返飛行時間的測量。圖2為某幾個測試點處測量得到的測距值概率分布直方圖。

圖2 某些測試點處測距值的概率分布直方圖
表1統計了在室內環境中,某些測試點處測得的RSSI值和測距值的標準差。

表1 各測試點RSSI和測距值標準差
可以看出,在室內環境中,根據多組實地測試顯示,測距值方差較RSSI值方差小。假設將RSSI值和測距值分布均看作類正態分布,將測距值加入指紋特征向量可以用來彌補單一RSSI值作為指紋特征向量的不穩定性。
本文提出的基于LoRa指紋的室內定位算法中,指紋特征向量的取法可以有三種:單一RSSI指紋、單一測距指紋、RSSI和測距值融合指紋。本文推薦使用最后一種,這種指紋特征包含了測距指紋和RSSI指紋。本文在后續實驗中會綜合比較這三種不同指紋特征的取法對定位精度的影響。
本節提出一種基于LoRa指紋的室內定位算法。該室內定位算法采用改進支持向量回歸算法,算法示意圖如圖3所示,包括離線指紋采集建模階段和在線實時定位階段。

圖3 基于LoRa指紋的室內定位算法示意圖
將待定位區域進行網格劃分,合理部署固定的LoRa錨點裝置。利用LoRa裝置和錨點裝置采集上述特殊的包含測距值和RSSI值的指紋特征。利用高斯濾波法進行初始指紋特征的數據過濾,然后將經過高斯濾波法之后的RSSI指紋和測距指紋相融合的特征樣本以及對應坐標位置存入指紋數據庫。利用支持向量回歸算法構建位置坐標與參考點指紋特征之間的離線訓練模型。
2.1.1指紋采集
首先,在待定位區域按照面積進行網格劃分,并建立直角坐標系,選取N個參考點區域和M個LoRa接入點,每個LoRa接入點固定,并安裝錨點裝置。
每一個網格即為指紋參考點區域,接著,在每個參考點區域位置處均勻地用LoRa裝置采集T次指紋向量信號特征作為1組數據。該指紋向量信號特征包括LoRa裝置采集的和周圍固定錨點裝置間的RSSI值指紋和基于LoRa測距引擎模式的測距指紋。
記第i個網格點區域的中心位置坐標為Pi=(xi,yi),記第i個網格點區域采集到的特征指紋矩陣Ri為:
(1)

2.1.2信號預處理
根據測量理論,如果測量過程中僅受到隨機加性高斯噪聲的影響,則測量值應該服從高斯正態分布。在本文的室內定位場景,由于環境變化(如行人走動)對測量結果的影響,測量值的包絡離正態分布標準的鐘形曲線還有一定距離。但是,實際測量值還是在均值附近出現的概率最高,而離均值遠的地方出現的概率低,基本符合正態分布的特性。此外,相對測量均值偏大或偏小的測量值會出現,但出現概率較小。本文認為這種情況出現概率較小,但遠離均值的測量值受到了粗大誤差的影響,比如測量過程中環境發生變化。為消除這類測量結果對指紋定位模型性能的影響,故采用高斯濾波法過濾掉此類測量值,具體方法如下:
對每個參考點采集的指紋矩陣Ri求出其各維數據的平均值μl(每一列的均值)和標準差σl(每一列的標準差),其中l=1,2,…,2M,表示維度。假設采集到的訓練集數據中的每一列數據均服從正態分布,記其概率密度函數為fl(x),則fl(x)可以表示為:
(2)
如圖4所示,根據正態分布的特性,均值μl描述了表示正態分布的集中趨勢位置,一般來說,符合正態分布的信號值在均值附近取值的概率較大;而離均值越遠取值的概率越小。因此,可以利用高斯濾波法,提高信號的質量,構建更加穩定有效的指紋數據庫。

圖4 正態分布的概率密度函數
設置一個閾值概率θ,它表示信號值分布在區間[μl-λ,μl+λl]的概率,其中λl可以通過采集到的訓練集數據和θ求得。具體地,根據式(2),假設采集到的訓練集數據中的每一列數據均服從正態分布,其概率密度函數為fl(x),則λl滿足:

(3)

2.1.3存入指紋庫
利用經過2.1.2節預處理之后的每個參考點的指紋矩陣Ri的每一行和位置坐標Pi=(xi,yi)建立指紋數據庫D,Ri∈R2M,并作為SVR算法的訓練樣本集,則樣本總數應為N×T。
2.1.4構建離線模型
利用SVR算法構建參考點的指紋向量與坐標之間的關系。在SVR中,首先通過一個非線性映射Φ:R2M→F將輸入空間R2M映射到高維的特征空間F中,然后在特征空間F中構建坐標P與指紋R的最優回歸函數:
P=WT·Φ(R)+b
(4)
式中:W為權重系數,W∈F,b為偏置系數。
接著依據結構風險化最小原則,將求解式(4)中的參數W和b的問題轉為求解如下凸二次規劃問題:
(5)
并且滿足:
(6)

式(4)的凸二次規劃問題的拉格朗日多項式為:
(7)


(8)
通過求解對偶優化問題,可得下式:
(9)
滿足:
(10)
式中:k(Ri,Rj)為核函數,核函數一般選擇高斯核函數。
(11)
式中:xi、xj表示輸入向量,σ為高斯核寬度。
由此,可以得到:
(12)
(13)
本文只考慮室內平面定位,因此最后需要輸出待定位區域的二維坐標(x,y)。通常SVR算法的輸出都是一維的,因此本文在離線階段,分別針對x和y坐標構建兩個訓練模型,通過多個單輸出模型代替多輸出模型。
利用LoRa裝置在某待定位位置處實時采集無線信號特征t次,并采用中位數濾波的數據預處理方法,即對這同一位置處的t個指紋特征采用各維度取中位數的方法,僅選擇得到唯一一個指紋特征。將這個指紋特征代入到2.1.4節所得到的離線訓練模型中,從而計算得到待定位節點的位置坐標。
2.2.1中位數濾波法
在某一待定位位置處用LoRa裝置連續采集t次指紋特征向量,得到t條記錄,記為:
(14)

(15)
2.2.2輸入離線模型
將經過數據預處理之后的Z的中位數向量代入到2.1.4節中已構建好的離線訓練模型。得到待定位節點的二維坐標(x,y),并以此坐標作為最終的位置坐標。從而估計出用戶的實際定位。
為驗證本文提出的基于LoRa指紋的室內定位算法的室內定位效果,在杭州電子科技大學第十教學樓停車場進行了實驗。實驗環境局部平面圖如圖5所示,長20 m、寬18 m,面積約為360 m2。定位區域包括車輛、障礙物,干擾復雜,因此這個環境下的數據比較有代表性。

圖5 車庫二維平面圖
實驗設備采用了LoRa裝置,且各裝置上均裝有LoRa SX1280芯片。
整個實驗區域共選擇了100個指紋點和42個測試點。指紋點在這塊區域中均勻分布,相鄰指紋點間距1 m,且在每個指紋點均可以保證接收到3個錨點裝置的RSSI值和測距值。測試點位置如圖7中紅色三角點所示。離線指紋采集階段,在1天內的不同時段進行指紋特征的采集,在每個指紋點上采集100次作為1組,每次采集間隔2 s;在線實時定位階段,在測試點上連續采集10次進行定位。
本文在離線指紋采集階段,采用了高斯濾波法對指紋特征進行信號預處理。在高斯濾波法中,通過合適的閾值概率θ,可以提高指紋特征的穩定性,過濾掉噪聲信號,降低環境噪聲對定位帶來的影響。當θ較大,趨近于1時,由于沒有對原始信號值進行過濾,定位誤差會比較大;當θ較小,趨近于0時,又會因為對樣本的過濾過于嚴格而導致大量有效信號值丟失,失去該指紋點的特征。因此,閾值概率θ應根據實際環境來選取,圖6所示為本算法的平均定位誤差隨閾值概率θ的變化情況。因此,本文選取θ=0.7。

圖6 平均定位誤差隨閾值概率θ變化情況
圖7展示了在離線指紋采集階段,高斯濾波法對各測試點定位誤差的影響。在a-j測試點中,不采用高斯濾波法,直接存入指紋數據庫,得到的定位誤差如虛線所示;采用了高斯濾波法之后再存入指紋數據庫,得到的定位誤差如實線所示。從圖中可以看出,在這10個測試點中,除了1個測試點之外,大部分經過高斯濾波之后的定位誤差較未經高斯濾波的定位誤差小,由此說明在離線指紋采集階段,采用高斯濾波法對各維度的信號值進行預處理時具有優勢,能明顯提高定位精度。

圖7 高斯濾波法對各測試點定位誤差的影響
定位誤差分析實驗中,在42個測試點處,比較了以下五種實驗情況:
1) 采用改進支持向量回歸算法,指紋特征選取:RSSI值融合測距值。
2) 采用改進支持向量回歸算法,指紋特征選取:RSSI值。
3) 采用改進支持向量回歸算法,指紋特征選取:測距值。
4) 采用傳統的支持向量回歸算法,但無離線階段的高斯濾波處理,無實時定位階段的中位數處理,指紋特征選取:RSSI值。
5) 采用傳統的三邊定位法,所有測試點的3個距離值的取值分別為LoRa測距值取均值之后的結果。
五種實驗的定位誤差結果如表2和表3所示。

表2 五種情況平均定位誤差

續表2
可以看出,在所有測試點中,第1~3種情況,由于采用本節提出的基于LoRa的改進支持向量回歸算法,平均定位誤差和累計定位誤差明顯較第4、5種情況的一般支持向量回歸算法以及三邊測距法要小。
而在前3種情況中,第一種由于指紋特征采用了RSSI值和測距值融合,平均定位誤差為0.88、1 m以內的定位誤差的累積概率為78.5%;第二種情況下,指紋特征僅采用RSSI值,平均定位誤差為1.47、1 m以內的定位誤差的累積概率僅為57.1%;而第三種情況下,指紋特征僅采用LoRa測距值,平均定位誤差為0.96、1 m以內的定位誤差的累積概率為71.4%。

表3 五種情況定位累計誤差
本文提出了一種基于LoRa指紋和改進支持向量回歸的室內定位算法。針對傳統的基于支持向量回歸的室內定位算法在離線階段訓練模型時會產生由于RSSI的穩定性差導致模型質量不高的問題。本文從兩方面進行改進:1) 在指紋特征方面,增加LoRa測距指紋,提高指紋穩定性;2) 在指紋數據庫建立和在線定位過程中,分別采用高斯濾波和中位數濾波來對指紋進行預處理,消除指紋的粗大誤差。結果表明,在改進的第一個方面,增加LoRa測距指紋之后定位精度相比之前提高了40%;在改進的第二個方面,增加了高斯濾波與中位數濾波預處理后定位精度較傳統的支持向量回歸算法提高了38%。在這兩個方面進行改進之后定位精度總體提高了63%,證明了本算法的兩個改進是有效的。