王曉甜, 毛永毅
(西安郵電大學 電子工程學院, 西安 710121)
室內定位系統(tǒng)在日常生活、工業(yè)生產、科學研究、醫(yī)療保障等領域應用十分廣泛[1-3]。由于在室內環(huán)境下藍牙信號存在著多徑效應、信號易衰減、穿透能力弱等問題會造成定位精度大大下降。
目前藍牙測距、行人航位推算(pedestrian dead reckoning, PDR)等方法是常用的室內定位方法。
目前圍繞藍牙測距方法有很多研究成果。如基于卡爾曼濾波器的室內定位算法[4-6],但是該類算法更適用于線性模型,在噪聲較低的情況下定位效果較好,而在非視距(non-line of sight, NLOS)情況下,定位精度和穩(wěn)定性均受到一定的影響。基于藍牙網關的接收信號強度指示(received signal strength indication,RSSI)實時校正方法[7],利用定位終端收集藍牙節(jié)點的RSSI,通過存儲在服務器上的RSSI波動信息實時調整RSSI;文獻[8-10]分析了路徑衰減指數對定位精度的影響,在一定程度上實現了對環(huán)境噪聲和的NLOS誤差的補償,但是定位精度和穩(wěn)定性仍需進一步提高。
經典行人航位推算(pedestrian dead reckoning, PDR)定位方法利用慣性傳感器獲取的信息來推算行人的位置和運動軌跡,但是在推算過程中,由于存在著步長和航向角估計誤差,會導致誤差累積現象[11]。對PDR定位方法改進的研究中,文獻[12]通過對矢量域劃分校正手機航向角,削弱線性矢量域的累積誤差,在保證了PDR的實時性、短時定位高精度性的同時,大幅度削弱了PDR的累計誤差從而提高了系統(tǒng)整體的精度、可靠性。文獻[13]通過群搜索優(yōu)化算法(group search optimizer, GSO)算法自動調整正則化權重,以獲得更準確的定位結果,并對環(huán)境的變化具有一定的適應性。但是,上述定位算法未能完全解決PDR累計誤差的問題。
本文擬提出一種融合藍牙測距與PDR測角的室內定位系統(tǒng)。采用極值-留數消噪算法消除RSSI中的噪聲以提高測距精度,利用三次最小二乘算法對藍牙測距數據和PDR測角數據進行融合確定行人位置。
針對RSSI信號提出了一種基于極值-留數的信號分解降噪方法,提取RSSI信號中固有信息的極值和留數,根據這些信息進行重構,以期達到降噪目的。
首先對信號進行Prony分解得到一系列極值和留數,每個極值和對應的留數代表RSSI信號中的1個成分。設t時刻接收到的RSSI信號為y(t),將其分解成n階復指數形式[14],其表達式為
(1)
λn=-αn+jωn,γn=Anejθn。
式中:n=1,2,…,p為分解階次;λn為第n階極值;系數γn為第n階留數,它與λn成對出現,為實數或共軛復數;αn為第n階阻尼系數;ωn為第n階角頻率;An為第n階各個成分的幅值;θn為第n階對應相位。
與y(t)對應的等間隔Δt采樣的第k=0,1,…,N-1個離散信號為yk,其復指數分解形式[14]的表達式為
(2)
zn=eλnΔt。
為了求解式(1)中的極值和留數,引入高階微分方程
(3)
(4)
式(1)為式(3)的通解,其中λn為式(3)對應的特征方程式(4)的根。
對于等間隔采樣的離散數據yk,式(3)高階微分方程可變?yōu)椴罘址匠?/p>
(5)
式中bn為常系數。令bn=1,對應的特征方程為
(6)
求解極值和留數步驟如下:
步驟1將式 (5) 寫成矩陣形式
Yb=-y′,
(7)
由于Y和y′已知, 可求出向量b。
步驟2將向量b中的元素bk代入式(6)中,求得特征值zk(k=1,2,…,p)
步驟3將特征值zk代入式(2)中,即可求得對應的留數γk。
RSSI實測信號y(t)可以看作由2部分組成
y(t)==ys(t)+yn(t)。
(8)
式中:ys(t)為RSSI中不含噪的信號;yn(t)為RSSI中的噪聲信號。
對y(t)進行極值-留數分解,得到極值和留數向量,分別表示為
λ=[λs1,λs2,…,λsm,λn1,λn2,…,λnl],
(9)
γ=[γs1,γs2,…,γsm,γn1,γn2,…,γnl]。
(10)
去除噪聲對應的極值和留數后,得到不含噪信號的極值和留數向量分別為
λ=[λs1,λs2,…,λsm]
(11)
γ=[γs1,γs2,…,γsm]。
(12)
利用式(2)重構響應信號,得到消除噪聲后信號可以表示為
(13)
極值-留數分解降噪算法步驟如下。
步驟1對RSSI信號y(t)進行傅里葉變換,得到信號的對應頻譜。
步驟2根據頻譜找到峰值對應的頻率,以此頻率作為中心頻率設置頻率窗口。
步驟3對RSSI信號y(t)進行極值-留數分解,對極值取絕對值,將復頻率轉化為實頻率,選出頻率窗口中的實頻率對應的極值和留數,這部分極值和留數可認為是不含噪聲的信號對應的極值和留數,通過式(1)將這部分極值和留數重構成時域信號,完成降噪過程。
基于PDR定位方法通過加速度計、陀螺儀和磁力計等傳感器采集行人運動數據。利用測得的加速度數據推算出行人的步頻、步長信息,利用測得的磁力計和陀螺儀數據推算出運動的方位角信息,然后根據前一時刻行人的位置推算出當前時刻行人的位置,PDR定位原理可以表示為
(14)
其中:行人t時刻的位置坐標為(xt,yt),t+1時刻的位置坐標為(xt+1,yt+1);t至t+1時刻行人行走距離為rt+1,行走方向與x坐標軸的夾角為方位角φt+1。
利用有限沖擊響應濾波器(finite impulse respond filter, FIR)對測量得到的加速度數據進行濾波以消除噪聲。令行人在單步之內的航向角不變,行人在行走時加速度會呈現周期性變化,可以利用峰值檢測法測量行人的步頻[15]。不同行人的步長存在著一定的差異,利用步長與加速度之間的非線性關系,建立非線性步長估計模型計算步長。令t時刻行人一步內的最大加速度為a1,最小加速度為a2,則步長可以表示為
(15)
其中k1、k2分別為可實時調整的參數,可根據定位的結果自動調整,以適應不同的行人個體。
k1、k2調整方法為:設定k1、k2的初始值并代入到步長公式中,進行定位;經4次定位計算后采用最小二乘法對k1、k2擬合。若擬合后k1、k2的變化值σ≥0.01,則重復上述過程;若k1、k2的變化值σ<0.01,則調整完畢。
方位角可通過計算磁力計參數和陀螺儀參數獲得。利用手機內置數字磁羅盤測量磁場信息(Mx,My,Mz),可計算出磁場的水平分量Xh與Yh。則磁航向角可以表示為
(16)
測量φM0后,查表可得其對應的磁偏角,修正后可得行人的航向角φ。
設參與定位的藍牙基站Bi(i=1,2,…,M)的位置坐標為(xi,yi),其中,B1為主基站。首先采用極值-留數對RSSI信號進行降噪,設RSSI信號服從對數衰減模型,行人與第i個基站之間的信號強度值為pi,行人與第i個基站之間距離為di,pi與di的關系[16]可以表示為
pi=p0-10βlogdi+εi。
(17)
式中:εi為行人與基站Bi間的噪聲信號強度值;p0為發(fā)射信號功率;β為路徑衰減指數。
藍牙測距和PDR測角示意,如圖1所示。
圖1 藍牙測距和PDR測角示意
這里M(xt,yt))為行人t時刻的坐標,M(xt+1,yt+1)為行人t+1時刻的坐標。B1、B2、B3為基站。d1、2、d3分別為行人到基站B1、B2、B3的距離。φt+1為航向角。rt+1為t時刻到t+1時刻的行走距離。
為了推導方便,設主基站B1位于坐標原點。根據di可建立距離方程
(18)
令xi,1=xi-x1,yi,1=yi-y1,di,1=di-d1,則式(18)可改寫為
(19)
如此得到行人t+1時刻的位置坐標(xt+1,yt+1)為需要測定的行人位置坐標(x,y),行人與坐標軸橫軸的夾角為α1,α2滿足
(20)
令za=[x,y,d1]T為未知量,建立方程
(21)
可將存在的測距誤差和角度測量誤差表示為誤差矢量
(22)
噪聲的協(xié)方差矩陣可以表示為
當測距誤差和測角誤差較小時,誤差矢量
ψ=BQB,
其中
使用加權最小二乘法(weighted least squares estimation, WLS)進行第一次求解得
(23)
如此,利用za的值可得到新的矩陣B,再進行一次WLS計算可得到改進的行人估計位置。
由于d1與行人位置坐標(x,y)相關,利用這一關系可以進行更為準確的行人位置估計,其步驟如下。
分別計算Δza及za的協(xié)方差矩陣
(24)
(25)
ψ′的協(xié)方差矩陣為
(26)
依次類推,用第二次WLS計算結果近似代替,則可以得到za′的第三次WLS估計結果
za′=(Ga′TΨ′-1Ga′)-1Ga′TΨ′-1h′。
(27)
最終確定行人的定位結果為
(28)
利用基站的先驗信息可以消除式(28)中存在二值解,得到當前的行人位置坐標。
實驗在長12.2 m,寬8.6 m的實驗室內進行。融合藍牙測距與PDR測角的室內定位系統(tǒng)由系統(tǒng)主控制器、藍牙定位基站和定位目標構成,如圖2所示。
圖2 融合藍牙測距與PDR測角的室內定位系統(tǒng)構成
基站個數對基于本文極值-留數降噪定位算法、經典測距定位算法[17]、高斯降噪[18]的定位算法、小波降噪[19]的定位算法的定位誤差的影響情況如圖3所示。
圖3 基站個數對平均誤差的影響
可以看出,由于多個基站參與定位,定位信息的冗余有效減小了定位誤差,隨著定位基站數量的增加,四種算法定位的均方根誤差(root mean square error, RMSE)隨之減小。本文算法的定位精度明顯優(yōu)于其它定位算法,這是由于采用基于極值-留數的消噪比較有效的消除了室內復雜環(huán)境造成的測距誤差的影響,因而提高了定位精度。本文算法的RMSE最低可達到0.45 m。
為了驗證不同強度噪聲對定位算法的影響,在實驗室內放置白噪聲信號發(fā)生器用做干擾源,對不同信噪比情況下的定位精度進行研究。不同信噪比情況下不同算法的平均誤差仿真結果如圖4所示。
可以看出,隨著信噪比的提高,各種定位方法的均方根誤差隨之減小,其原因是噪聲的減小有效的降低了定位誤差。信噪比變化對本文算法的定位精度影響較小,表明了經過極值-留數降噪可有效適應環(huán)境噪聲的變化。
圖4 信噪比對平均誤差的影響
4種定位方法的定位誤差累計分布函數(cumulative distribution function, CDF)如圖5所示。
圖5 4種定位方法的定位誤差累計分布函數
可以看出,文獻[17]定位算法只有25%的定位誤差達到1 m以內,文獻[18]定位算法有28%的定位誤差達到1 m以內,文獻[19]定位算法有55%的定位誤差達到1 m以內,本文算法可達到68%。文獻[17]定位算法只有56%的定位誤差達到2 m以內,文獻[18]定位算法有68%的定位誤差達到2 m以內,文獻[19]定位算法有78%的定位誤差達到2 m以內,而本文算法可達到91%。說明本文算法比其他3種算法有更高可靠性。
為驗證融合算法的性能,令行人初始位置位于實驗室左上角,行人在實驗室內逆時針行走一圈,利用手機以30 Hz的頻率采集并保存加速度計、陀螺儀及磁力計的原始數據并上傳給上位機。此外,令藍牙基站測得的RSSI數據也同步上傳至上位機,由上位機進行處理和計算得出定位結果。
對經典PDR算法[11]、經典測距算法[17]、本文算法3種算法得到的運動軌跡進行了對比。3種算法的軌跡對比如圖6所示。
圖6 3種算法的軌跡對比
圖6中矩形實線表示真實軌跡,左上角為起點,逆時針勻速行走一周。虛線為經典PDR定位方法繪制的軌跡。經典PDR定位算法在短時間內定位精度比較高,但隨著時間的增加誤差不斷積累導致后面的定位結果遠遠偏離真實軌跡。點劃線為經典測距算法繪制的軌跡,由于沒有充分利用歷史信息,定位結果會出現定位結果圍繞真實軌跡隨機跳變的現象。實線是本文算法繪制出的軌跡,比較接近真實軌跡,說明了本文算法有效的減小PDR定位方法存在的誤差累積現象和經典測距算法的位置跳變現象,獲得了較好的定位與跟蹤效果。本文算法在獲得測距信息的同時獲得了測角信息,最少利用兩個基站即可獲得行人的位置,這樣就可以減少所需定位基站的數量,從而可以有效降低硬件系統(tǒng)成本。
由于室內信道環(huán)境復雜,非視距傳播等因素對定位精度影響較大,單獨的定位算法的精度受到很大的影響。本文首先利用極值-留數方法對藍牙信號進行降噪,然后采用三次最小二乘算法融合降噪后的RSSI數據和PDR數據進行定位計算。實驗結果表明,基于極值-留數降噪的藍牙定位算法的定位精度、可靠性和抗噪性能明顯優(yōu)于文獻[17]、文獻[18]和文獻[19]定位算法,本文算法的RSME最低可達到0.45 m;本文算法最少可以利用兩個基站即可完成位置的確定,可以有效的降低系統(tǒng)成本,并且克服了單獨采用藍牙定位出現的定位結果圍繞真實軌跡隨機跳變的現象和單獨采用PDR定位出現的誤差積累現象,從而獲得較好的定位跟蹤效果。