趙季紅,謝志勇,曲 樺,王明欣,劉 熙
(1. 西安郵電大學(xué) 通信與信息工程學(xué)院,陜西 西安 710121;2. 西安交通大學(xué) 電子與信息工程學(xué)院,陜西 西安 710049)
無線傳感網(wǎng)絡(luò)是一種由大量隨機(jī)布散的傳感器和地面數(shù)據(jù)處理中心組成的網(wǎng)絡(luò),具有快速展開、魯棒性強(qiáng)、容錯性高等特點,可實現(xiàn)對目標(biāo)的數(shù)據(jù)采集、處理和傳輸.在實際的工程應(yīng)用中,由于地形的差異(山川、礦井等)及所處環(huán)境(樓層、海洋、空中等)的不同,傳感器被隨機(jī)地分布在三維區(qū)域,并隨著海洋的洋流運(yùn)動或空氣的氣流而發(fā)生移動.因此,解決節(jié)點三維狀態(tài)估計的問題,對國防、衛(wèi)星通信、飛機(jī)通信、車載網(wǎng)、工業(yè)控制、環(huán)境監(jiān)測、健康護(hù)理等應(yīng)用具有深遠(yuǎn)的意義[1-3].
傳感網(wǎng)絡(luò)中節(jié)點位置信息對觀測數(shù)據(jù)的影響使得傳感網(wǎng)節(jié)點狀態(tài)估計成為目前研究的熱點之一.其主要借助信標(biāo)節(jié)點來實現(xiàn)傳感節(jié)點的狀態(tài)估計,通常選用的信標(biāo)節(jié)點分為靜態(tài)信標(biāo)和動態(tài)信標(biāo).靜態(tài)信標(biāo)估計性能較好,但需大量部署,成本較高,所以一般采用移動信標(biāo)節(jié)點來實現(xiàn)傳感網(wǎng)節(jié)點估計.常用的幾種觀測方法[4]有:到達(dá)角(Angle Of Arrival,AOA)、到達(dá)時間(Time Of Arrival,TOA)、到達(dá)時間差(Time Difference Of Arrival,DTOA)、接收的信號強(qiáng)度(Received Signal Strength Indicator,RSSI)以及一些混合的方法.
由于三維空間網(wǎng)絡(luò)環(huán)境復(fù)雜,通常采用接收的信號強(qiáng)度進(jìn)行觀測距離的測量.雖然其可以降低傳感器的硬件成本和損耗,但在信號傳輸過程中易受到環(huán)境噪聲的影響.在這種情況下,傳統(tǒng)的加權(quán)最小二乘節(jié)點定位[5]和加權(quán)質(zhì)心定位方法[6]的估計精度較低,通常需要利用濾波器對噪聲進(jìn)行處理,來進(jìn)一步提高節(jié)點估計的精度.由于接收的信號強(qiáng)度的測量方程通常是非線性的,文獻(xiàn)[5]利用拓展卡爾曼濾波器(Extended Kalman Filter,EKF)對噪聲進(jìn)行了處理,但拓展卡爾曼濾波器忽略了高階項來處理非線性問題,導(dǎo)致估計誤差較大.為了更好地解決非線性的問題,文獻(xiàn)[7]提出一種無跡卡爾曼濾波器(Unscented Kalman Filter,UKF),它通過確定性采樣得到一系列的樣本點,并經(jīng)過非線性方程進(jìn)行傳遞,得到了更高階的精度.文獻(xiàn)[8]采用無跡卡爾曼濾波器提高了節(jié)點估計的效果.但以上方法只對理想的高斯噪聲有較好的性能,而實際傳感網(wǎng)絡(luò)中由于受到系統(tǒng)自身的誤操作、人為指令的影響,使得到的測量值通常帶有重尾的非高斯干擾,因此針對非高斯噪聲影響下的節(jié)點估計已成為一個亟待解決的問題.文獻(xiàn)[9]提出了一種魯棒的方法——互相關(guān)熵,其不僅可以獲得二階統(tǒng)計量,還可以獲得更高階的統(tǒng)計量.基于它的準(zhǔn)則被稱為最大互相關(guān)熵準(zhǔn)則(Maximum Correntropy Criterion,MCC),這種方法在一些領(lǐng)域已得到了廣泛的應(yīng)用[9-10].特別是針對觀測噪聲呈現(xiàn)重尾的非高斯?fàn)顩r,文獻(xiàn)[11]提出了一種將最大互相關(guān)熵準(zhǔn)則與無跡卡爾曼濾波器結(jié)合的最大互相關(guān)熵?zé)o跡卡爾曼濾波(Maximum Correntropy Unscented Kalman Filter,MCUKF)算法,其采用基于最大互相關(guān)熵準(zhǔn)則的非線性回歸方法重新構(gòu)建觀測信息,提高了無跡卡爾曼濾波器的魯棒性.
針對上述非高斯噪聲干擾下的節(jié)點狀態(tài)估計問題,筆者將最大互相關(guān)熵?zé)o跡卡爾曼濾波算法引入到傳感網(wǎng)中,并對其簡化,提出一種加權(quán)質(zhì)心定位算法和簡化最大互相關(guān)熵?zé)o跡卡爾曼濾波算法結(jié)合的節(jié)點三維估計方法.該方法首先利用加權(quán)質(zhì)心定位算法對傳感節(jié)點信息進(jìn)行預(yù)處理,得到近似的估計值,再通過簡化最大互相關(guān)熵?zé)o跡卡爾曼濾波進(jìn)行魯棒性濾波處理來提高節(jié)點狀態(tài)估計的性能.
(1) 狀態(tài)方程模型.其為
xk+1=f(k,xk)+qk=F·xk+qk,
(1)
其中,xk+1=[xk+1,yk+1,zk+1]T,表示未知節(jié)點在第k+1時刻的狀態(tài)向量;f(k,xk)表示k時刻關(guān)于xk的一個函數(shù);qk為過程高斯白噪聲,其協(xié)方差矩陣為Qk;F為狀態(tài)轉(zhuǎn)移矩陣,F(xiàn)是單位矩陣.
(2) 觀測方程模型.
根據(jù)文獻(xiàn)[5],選用自由空間傳播模型和對數(shù)-常態(tài)分布模型作為傳播路徑損耗模型,則觀測方程為
其中,yk+1表示未知節(jié)點接收虛擬移動信標(biāo)節(jié)點位置信號時接收的信號強(qiáng)度值;作為傳感網(wǎng)絡(luò)的觀測向量,h(·)表示觀測的非線性函數(shù),并且假設(shè)h(·)是連續(xù)可微的;rk+1為觀測白噪聲,其協(xié)方差矩陣為Rk+1;P表示發(fā)射功率;G表示天線的接收增益;(xbk+1,ybk+1,zbk+1)表示第k+1 時刻的信標(biāo)節(jié)點的坐標(biāo);Ld0表示信號傳播距離d0的路徑損耗;d表示未知節(jié)點到信標(biāo)節(jié)點的距離;n0表示路徑衰減因子;f表示信號頻率.
針對非線性的問題,無跡卡爾曼濾波器是一種有效的處理方法.它利用無跡變換在估計點附近確定采樣點(Sigma點集),并用這些Sigma點集表示的高斯密度去近似表示狀態(tài)的概率密度函數(shù).通常無跡卡爾曼濾波器在狀態(tài)更新和觀測更新時都要進(jìn)行Sigma點集的計算.
從1.1節(jié)的節(jié)點估計模型中可知,狀態(tài)方程(1)為線性方程,觀測方程(2)是由信標(biāo)節(jié)點收發(fā)的信號強(qiáng)度建立的非線性方程.對于線性方程,為了節(jié)約計算周期和提高濾波精度,可以選用理論上最優(yōu)的卡爾曼濾波器進(jìn)行濾波,不必再利用無跡變換產(chǎn)生Sigma點集來近似; 對于非線性觀測方程,使用無跡卡爾曼濾波器進(jìn)行濾波.基于這一思想,結(jié)合最大互相關(guān)熵準(zhǔn)則對非高斯噪聲的強(qiáng)魯棒性,得到一種簡化最大互相關(guān)熵?zé)o跡卡爾曼濾波算法.
簡化最大互相關(guān)熵?zé)o跡卡爾曼濾波算法的步驟如下.
(8)
其中,ωm和ωc表示算法點集的權(quán)值.
(5) 計算增益矩陣Kk+1:
(12)
(7) 當(dāng)k等于預(yù)先設(shè)定的時間步長時,算法結(jié)束;否則,k=k+1,返回步驟(2).
首先由方程(1)和(2)得到以下的非線性模型:
(15)
其中,η(xk+1)表示xk+1|k與xk+1的差值.
對算法第(2)步得到的協(xié)方差矩陣Pk+1|k和Rk+1的聯(lián)合矩陣ψk+1進(jìn)行楚列斯基分解:
(16)
Dk+1=g(xk+1)+ek+1,
(17)
(18)
由文獻(xiàn)[11],得到修改后的協(xié)方差為
(19)
通常選取核寬度為σ的高斯核函數(shù)為
節(jié)點估計算法將加權(quán)質(zhì)心定位和簡化最大互相關(guān)熵?zé)o跡卡爾曼濾波算法相結(jié)合,算法的過程概括如下.
(1) 部署虛擬信標(biāo)節(jié)點的運(yùn)動狀態(tài),并以固定頻率發(fā)送帶有虛擬信標(biāo)節(jié)點位置狀態(tài)信息的數(shù)據(jù)包.
(2) 未知節(jié)點接收虛擬信標(biāo)節(jié)點的數(shù)據(jù)包,并只保存前s個最大接收的信號強(qiáng)度值和虛擬信標(biāo)節(jié)點的數(shù)據(jù)包.
(3) 對未知節(jié)點接收到的信號值接收的信號強(qiáng)度進(jìn)行由大到小的排序,并得到以下3個數(shù)據(jù)集合.
a. 未知節(jié)點接收到的信標(biāo)節(jié)點接收的信號強(qiáng)度值A(chǔ)={I1,I2,…,Is},I1≥I2≥…≥Is;
b. 未知節(jié)點和接收的信號強(qiáng)度值對應(yīng)的信標(biāo)節(jié)點的距離B={d1,d2,…,ds};
c. 信標(biāo)節(jié)點的虛擬位置信息集合C={(xb1,yb1,zb1),(xb2,yb2,zb2),…,(xbs,ybs,zbs)}.
(4) 利用觀測距離集合B,計算得到相應(yīng)的s個權(quán)值W={W1,W2,…,Ws},其中Wi= 1/di, 1≤i≤s.
(5) 采用加權(quán)質(zhì)心定位算法計算未知節(jié)點的近似位置信息(xi,yi,zi):
(22)
圖1 信標(biāo)節(jié)點移動路徑
在10 km×10 km×10 km的三維空間區(qū)域隨機(jī)部署100個傳感節(jié)點.空中的傳感節(jié)點用帶有傳感器的無人機(jī)等進(jìn)行乘載,在空間中進(jìn)行一個微小的移動.在 0~ 10 km 的豎直高空中,每隔 250 m 虛擬信標(biāo)節(jié)點按照如圖1(一種經(jīng)典的信標(biāo)節(jié)點移動模型[12])所示的路徑進(jìn)行一次遍歷,通信半徑為 250 m.
用加權(quán)質(zhì)心定位算法、加權(quán)最小二乘算法、基于加權(quán)質(zhì)心定位和拓展卡爾曼濾波器、無跡卡爾曼濾波器、最大互相關(guān)熵?zé)o跡卡爾曼濾波、簡化最大互相關(guān)熵?zé)o跡卡爾曼濾波結(jié)合的方法進(jìn)行實驗,對空間中100個傳感節(jié)點的k時刻狀態(tài)和單個移動節(jié)點在K時間間隔內(nèi)的狀態(tài)進(jìn)行估計,以未知節(jié)點實際狀態(tài)和估計狀態(tài)之間的相對距離作為比較基準(zhǔn),具體表述形式如下:
其中,E1l與E2k表示比較基準(zhǔn),AE1與AE2表示平均誤差.L=100,為三維空間中部署的100個傳感節(jié)點;K= 60 s,表示移動節(jié)點的變化時間.
利用Matlab2015a軟件進(jìn)行仿真,無線電發(fā)射參數(shù)參照MICA2mote,發(fā)射功率和天線的接收增益之和P+G= 111 dB.由于三維的傳感網(wǎng)絡(luò)環(huán)境復(fù)雜,且路徑損耗大,故取路徑衰減因子n0= 3.2,取方差ε2= 0.4,取d0= 1 m.卡爾曼濾波算法的初始協(xié)方差矩陣P0|0= 0.6 diag(1,1,1),過程噪聲的協(xié)方差矩陣Qk=0 ,非高斯觀測噪聲為
γd~0.8N(0,ε2)+0.2N(0,100ε2) .
(27)
表1給出了對所有傳感節(jié)點在某個時刻的狀態(tài)進(jìn)行估計時,各種估計方法的平均誤差A(yù)E1.可以看出,加權(quán)質(zhì)心定位算法明顯優(yōu)于加權(quán)最小二乘算法,最大互相關(guān)熵?zé)o跡卡爾曼濾波和簡化最大互相關(guān)熵?zé)o跡卡爾曼濾波在相同的核寬度的情況下,具有相同的估計性能.特別當(dāng)σ=2 時,它們在幾種估計方法中表現(xiàn)出最小的平均誤差A(yù)E1.另外,在進(jìn)行3、15、25次濾波器迭代過程中,相同核寬度下最大互相關(guān)熵?zé)o跡卡爾曼濾波算法的運(yùn)行時間分別為 0.114 1 s、0.328 5 s、0.550 9 s,簡化最大互相關(guān)熵?zé)o跡卡爾曼濾波算法的運(yùn)行時間分別為 0.090 8 s、0.258 6 s、0.437 1 s,相對于最大互相關(guān)熵?zé)o跡卡爾曼濾波算法,簡化最大互相關(guān)熵?zé)o跡卡爾曼濾波算法在運(yùn)行時間上分別減少了20.45%、21.27%、20.67%.
表1 非高斯噪聲下不同估計方法的平均誤差A(yù)E1
圖2描述了以加權(quán)質(zhì)心定位算法的估計值作為拓展卡爾曼濾波器、無跡卡爾曼濾波器、最大互相關(guān)熵?zé)o跡卡爾曼濾波、簡化最大互相關(guān)熵?zé)o跡卡爾曼濾波的初始值時,迭代次數(shù)和算法平均估計誤差的關(guān)系.由于加權(quán)質(zhì)心定位方法不能消除測量接收的信號強(qiáng)度時噪聲的影響,隨著迭代次數(shù)的增加,拓展卡爾曼濾波器、無跡卡爾曼濾波器、最大互相關(guān)熵?zé)o跡卡爾曼濾波、簡化最大互相關(guān)熵?zé)o跡卡爾曼濾波的方法均能提高未知節(jié)點的估計精度.在迭代次數(shù)達(dá)到15次之后,平均誤差基本變化不大,且最大互相關(guān)熵?zé)o跡卡爾曼濾波和簡化最大互相關(guān)熵?zé)o跡卡爾曼濾波具有相同的估計性能.特別當(dāng)核寬度σ=2,迭代次數(shù)為15次時,最大互相關(guān)熵?zé)o跡卡爾曼濾波和簡化最大互相關(guān)熵?zé)o跡卡爾曼濾波在5種濾波算法中性能最佳.
為了降低估計算法的復(fù)雜度,以下實驗選用的迭代次數(shù)為15次.圖3描述了簡化最大互相關(guān)熵?zé)o跡卡爾曼濾波算法利用虛擬信標(biāo)節(jié)點對部署在空間的各個傳感節(jié)點在某個時刻的狀態(tài)進(jìn)行估計的性能,其中核寬度σ=2,星號節(jié)點表示部署在空間中的傳感器節(jié)點,與星號節(jié)點相連的圓圈表示通過新算法估計的節(jié)點狀態(tài).可見在處理非高斯噪聲下的節(jié)點問題時,新算法能夠?qū)ξ粗?jié)點進(jìn)行有效的估計.
圖4描述了在非高斯觀測噪聲下,多種估計方法對未知節(jié)點進(jìn)行狀態(tài)估計時的估計誤差,其中簡化最大互相關(guān)熵?zé)o跡卡爾曼濾波的核寬度σ=2.由于環(huán)境噪聲的影響,加權(quán)質(zhì)心定位估計算法的誤差明顯大于其他的估計方法的,而其他方法將加權(quán)質(zhì)心定位算法的估計狀態(tài)作為初始值,并對噪聲進(jìn)行了處理,提高了節(jié)點估計的精度.在處理基于非線性方程的問題時,由于無跡卡爾曼濾波器類型的濾波器利用更高階精度的無跡變換,因此,表現(xiàn)出比拓展卡爾曼濾波器更好的性能.另外在處理非高斯的觀測噪聲時,由于互相關(guān)熵的強(qiáng)魯棒性,簡化最大互相關(guān)熵?zé)o跡卡爾曼濾波算法在各種估計方法中得到最小的估計誤差.
圖2 卡爾曼濾波類方法的平均估計誤差曲線圖3 非高斯噪聲下簡化最大互相關(guān)熵?zé)o跡卡爾曼濾波算法的估計性能
圖4 各種節(jié)點估計方法的估計誤差圖5 各種節(jié)點估計方法對單個移動節(jié)點狀態(tài)的估計曲線
表2列出了時間間隔K=60 s內(nèi),不同方法對單個移動節(jié)點狀態(tài)估計的平均誤差.可以看到,在沒有對噪聲進(jìn)行濾波前,加權(quán)質(zhì)心定位的方法優(yōu)于加權(quán)最小二乘的方法;通過濾波器進(jìn)行濾波后,最大互相關(guān)熵?zé)o跡卡爾曼濾波和簡化最大互相關(guān)熵?zé)o跡卡爾曼濾波表現(xiàn)出相同的估計性能,并且當(dāng)σ=2 時,得到最小的平均誤差A(yù)E2.
表2 非高斯噪聲下不同估計方法對單個移動節(jié)點的平均誤差A(yù)E2
圖5描述了非高斯噪聲下不同方法對單個移動未知節(jié)點在一段時間內(nèi)的狀態(tài)估計曲線,其中簡化最大互相關(guān)熵?zé)o跡卡爾曼濾波的核寬度σ=2.這些方法首先以加權(quán)質(zhì)心定位方法得到移動節(jié)點的近似狀態(tài)信息,再利用各種濾波器對未知節(jié)點的狀態(tài)進(jìn)行估計.由圖可知,無跡卡爾曼濾波器和簡化最大互相關(guān)熵?zé)o跡卡爾曼濾波方法均比拓展卡爾曼濾波器方法表現(xiàn)出較好的估計性能,特別在處理非高斯問題時,簡化最大互相關(guān)熵?zé)o跡卡爾曼濾波比無跡卡爾曼濾波器表現(xiàn)出更好的魯棒性和性能.
筆者提出一種加權(quán)質(zhì)心定位和簡化最大互相關(guān)熵?zé)o跡卡爾曼濾波器相結(jié)合的方法,主要解決傳感網(wǎng)絡(luò)環(huán)境中受到非高斯噪聲干擾時,傳感節(jié)點三維狀態(tài)估計問題.首先利用虛擬信標(biāo)節(jié)點替代部署大量信標(biāo)節(jié)點,通過加權(quán)質(zhì)心定位的算法對傳感節(jié)點進(jìn)行近似的估計,然后結(jié)合狀態(tài)方程的估計模型,采用簡化最大互相關(guān)熵?zé)o跡卡爾曼濾波算法來解決傳統(tǒng)方法在非高斯噪聲環(huán)境下估計精度較低的缺陷,并節(jié)約了一般最大互相關(guān)熵?zé)o跡卡爾曼濾波算法的時間成本.與4種典型的節(jié)點估計方法相比,新算法在具有非高斯噪聲的傳感網(wǎng)絡(luò)中表現(xiàn)出了更好的性能.