張小康, 肖本賢, 肖獻強,2, 方紫劍
(1.合肥工業大學 電氣與自動化工程學院,安徽 合肥 230009; 2.合肥壹恒智能機械人有限公司,安徽 合肥 230000;3.合肥搬易通科技發展有限公司,安徽 合肥 230012)
隨著無線通信技術的進步以及無線傳感器網絡(wireless sensor network,WSN)的廣泛應用,精確定位、減小通信開銷以及降低節點的能量損耗等成為信號處理領域研究的熱點問題。區域的目標精確定位作為無線傳感器網絡中一個重要研究分支,在軍工、航天、石化和建材等領域的室內定位[1]、水體污染定位[2]、位置追蹤等諸多場景中得到充分應用,因此提高其定位精度對工業生產和人們日常生活具有重要的實際意義。
近年來,壓縮感知(compressive sensing, CS)技術的興起為目標定位提供了新思路。通過對目標區域進行網格離散化,使得目標位置向量具有天然的稀疏性[3],只需少量的測量信息,便可以通過測量矩陣和測量向量恢復出稀疏信號從而完成網格中多目標的定位。文獻[4]將節點之間的連通度作為觀測值,通過l1最優化方法從觀測向量中重構出目標位置,提高定位精度,但是算法計算量較大;文獻[5]利用回溯多分辨率的思想對目標不在網格中心的情況進行網格細分,提高定位精度,但是隨著迭代次數的增加計算量大大增加;文獻[6]通過LANDMARC結合壓縮感知進行室內定位,先利用該算法鎖定定位區域,然后利用模擬退火改進的正交匹配追蹤算法進行目標位置的定位,兼顧了定位效率和定位精度。通常基于CS的定位方法采用固定的網格劃分監測區域[7-9],為了提高定位精度,網格劃分寬度應盡量縮小,使得測量矩陣維數急劇上升,壓縮感知算法的運算量大大增加。
基于上述問題,本文提出一種優化壓縮感知算法,引入bounding-box方法減小未知節點的定位區域,降低測量矩陣維數,從而減小后一階段壓縮感知算法的計算量。利用卡爾曼濾波對同一傳感器節點采集到的多個接收信號強度值進行處理,保證觀測向量y的準確性,解決了測量向量受噪聲干擾導致壓縮感知重構精度低的問題。另外針對壓縮采樣匹配追蹤算法(compressive sampling matching pursuit,CoSaMP)候選集冗余度大的缺點提出基于原子相關度閾值的回溯匹配追蹤算法,將候選集中的2K個原子相關度的平方平均值作為閾值對候選集進一步篩選,找出相關度較大的原子,避免過多無關原子進入支撐集增加裁剪負擔,并在支撐集保留系數較大的原子使得算法以更高的概率獲得真正的支撐集,提升重建精度。
基于CS的目標定位模型如圖1所示,在無線傳感器網絡待定位的區域內部署K個可以發出無線電位置未知的目標節點、M個位置已知的傳感器。將待定位的區域劃分為數量為N的大小均勻的網格,目標位置便離散在這些網格中,這樣就將目標的定位問題轉化為基于網格的定位問題,通過傳感器接收到的信號強度確定目標節點所在的網格位置。

圖1 基于CS的目標定位模型
定位區域內M個傳感器通過接收信號強度衰減模型獲得的觀測矩陣P=(Pij)M×N,其中Pij表示第i(1≤i≤M)個傳感器到第j(1≤j≤N)個網格的接收信號強度值。傳感器接收到目標的信號強度值模型[10]如下:
(1)
其中:d0為參考距離,一般取1 m;P0為在參考距離d0處的接收信號強度;n1為路徑衰減指數,一般取2~5;d為傳感器到目標的距離;Xσ為高斯噪聲變量。
M個位置已知的傳感器節點獲得K個未知節點的接收信號強度總和得到觀測向量y=Pμ,然后將其傳送到數據融合中心的sink節點,sink由觀測向量y和觀測矩陣P重構出稀疏信號μ,信號中系數不為零元素的位置對應著網格中目標所在的位置。
基于優化壓縮感知算法目標定位的流程圖如圖2所示,整個過程主要由如下3個步驟組成:① 利用bounding-box算法進行區域鎖定并獲取測量矩陣;② 對傳感器節點接收到的接收信號強度值進行卡爾曼濾波處理,構建觀測向量;③ 根據獲得的測量向量和測量矩陣,采用基于原子相關度閾值的回溯匹配追蹤算法進行位置估計。

圖2 定位流程圖
觀測向量y是傳感器節點接收到的未知節點的接收信號強度,決定壓縮感知算法的重建精度。在實際測量中因受環境因素的影響,傳感器節點的接收信號強度測量值包含數量較小,幅值較大的測量誤差。為了保證測量向量的準確性,本文采用卡爾曼濾波對來自同一未知節點多組接收信號強度值進行處理,過濾較大的噪聲,使優化后的接收信號強度值更加接近真實值。
卡爾曼濾波是基于線性最小均方誤差預測和線性遞歸更新的優化算法[11]。卡爾曼濾波主要分為預測和更新2個階段。
(1)預測階段。t時刻狀態預測方程為:
X(t|t-1)=AX(t-1|t-1)+BU(t)
(2)
其中:X(t|t-1)為t時刻的接收信號強度狀態預測值;X(t-1|t-1)為t-1時刻的接收信號強度狀態值;A為狀態轉移矩陣;B為控制矩陣;U(t)為狀態控制量。在理想狀態下,來自同一未知節點的接收信號強度是相同的,因此在實驗中A取1,控制量BU(t)取0。
協方差預測方程為:
P(t|t-1)=AP(t-1|t-1)AT+Q
(3)
其中:P(t|t-1)為對應X(t|t-1)的系統誤差協方差;P(t-1|t-1)為對應X(t-1|t-1)的系統誤差協方差;Q為狀態噪聲協方差,在實驗中,認為預測模型很可靠,因此Q設為1×10-6。
卡爾曼增益為:
K(t)=P(t|t-1)HT(HP(t|t-1)HT+R)-1
(4)
(2)更新階段。t時刻狀態更新方程為:
X(t|t)=X(t|t-1)+
K(t)(Z(t)-HX(t|t-1))
(5)
協方差更新方程為:
P(t|t)=(I-K(t)H)P(t|t-1)
(6)
其中:R為測量噪聲協方差;K(t)為t時刻的卡爾曼增益;Z(t)為t時刻的接收信號強度測量值;H為觀測狀態轉移矩陣,傳感器節點實際測量的接收信號強度與理想的接收信號強度應該是相同的,因此H取1。
假設待定位目標T通信范圍內有3個傳感器節點S1、S2、S3,坐標分別為(x1,y1)、(x2,y2)、(x3,y3)。bounding-box算法以及網格劃分示意圖如圖3所示。根據節點通信范圍可以獲得3個正方形區域,目標就落在這3個矩形的重疊區域,目標T通過通信范圍內錨節點獲得的定位區域如圖3中陰影所示。定位區域的數學表達式為:

圖3 bounding-box算法以及網格劃分示意圖
(7)
其中:xl、xr、yu、yd分別為重疊區域的左邊界、右邊界、上邊界和下邊界;R為節點的通信半徑。

將未知節點通信范圍內的錨節點作為傳感器,根據傳感器接收到定位區域內各網格中心的信號強度建立測量矩陣,即
(8)
其中:Pij為第i(1≤i≤M)個傳感器節點到第j(1≤j≤N)個網格中心的信號強度由(1)式計算;M為未知節點通信范圍內的傳感器節點數目;N為網格劃分數量。文獻[12]表明測量矩陣應當滿足:
M≥O(Klg(N/K))
(9)
其中,K為1。因此可以得到:
M≥ClgN
(10)
由此可以推出:
N≤10M/C
(11)
其中:C為測量常數,當網格數N滿足(11)式時,壓縮感知算法能夠精確重建稀疏信號。
在網格定位中感知矩陣列之間相關性較強,無法滿足RIP性質[13],需要對測量矩陣P進行預處理才能保證壓縮感知算法精確重構。本文采用基于LU分解[14]的方法將原子字典分解為P=LU,然后對觀測值y進行下面的變換得到新的觀測值y′為:
y′=(L)+y==L+LUμ=Uμ=Φμ′
(12)
其中:L+為L的偽逆;Φ由U列單位化得到,是一個部分正交矩陣,完全滿足RIP性質。
經過bounding-box算法的區域鎖定,目標定位問題轉化為1稀疏度的向量的重建問題。稀疏向量重建模型為:
yk=Φμk′
(13)
其中:yk為第k(k≤K)個目標的M×1維觀測向量;Φ為經過LU分解的測量矩陣;μk為第k個目標的位置向量,不為0的位置代表可能存在目標的網格。

(14)

(15)
進一步有:
(16)
利用加權質心算法求解待定位目標位置如下:
(17)

定義原子相關度如下:
u=|ΦTr|
(18)
其中:ΦM×N為測量矩陣;rN×1為殘差;u為N×1維的向量,向量中的系數代表ΦM×N中的列和殘差r的內積,稱為原子相關度。

(19)
其中:ui(1≤i≤2K)為原子相關度,由(19)式計算得到。然后根據Υ確定篩選后的候選集λt為:
λt={i||ui|≥Υ}
(20)
每次迭代中,原子相關度閾值Υ隨著原子相關度向量u的變化而變化,但總能保留相關度較大的原子,這樣既能保證候選原子的可靠性,又能為最終原子集的確定節省時間。

算法的具體步驟如下。
輸入:M維測量向量y,M×N維傳感矩陣Φ,目標數K,迭代停止閾值Δ。
(1)初始化選取迭代次數t=1,初始支撐集大小為I=K,殘差r0=y,迭代停止閾值Δ,初始支撐集F0=?,支撐集大小Q=δ。
(2)通過u=|ΦTrt-1|計算相關系數u,并從u中取出2K個最大值對應的索引值構成集合T。
(3)在集合T中的2K個原子中求滿足|ΦTrt-1|>Υ的原子腳標集合,即
λt=|〈rt-1,Φj〉|>Υ,j=1,2,…,2K。
(4)將挑選出來的原子加入支撐集。計算公式為:
Ft=Ft-1∪λt,Φt=Φt-1∪Φλt。



在48 m×48 m的待定位區域內,每隔6 m的間隔均勻布置傳感器節點,共形成81個錨節點,K個未知節點隨機分布在區域中的任意位置。M為未知節點通信范圍內的傳感器數量,取決于通信半徑R,未知節點根據通信范圍內的傳感器節點利用bounding-box算法確定定位區域,網格數量N由網格步長r確定。根據已有經驗[15-16],并結合本文仿真場景,測量常數C取7,網格劃分步長r取2 m,節點通信半徑R取20 m,迭代停止閾值Δ設為1×10-6,重構稀疏度δ取4。在仿真實驗中加入高斯白噪聲來模擬實際環境中的噪聲。為了驗證本文算法的定位性能,將本文算法與正交匹配追蹤算法(orthogonal matching pursuit,OMP)、貪婪匹配追蹤算法(greedy matching pursuit,GMP)以及壓縮采樣匹配追蹤算法進行比較。采取傳統壓縮感知算法定位將整個定位區域劃分為20×20的網格,每隔6 m布置傳感器節點,共81個傳感器節點,未知節點隨機分布在網格區域內。為了避免實驗受到隨機性的影響,每次實驗均仿真300次取其平均值使結果穩定。
為了評估定位性能,設第i次定位誤差為:
(21)
總的平均誤差為:
(22)

平均定位時間設為:
(23)
其中:K為目標數;Ti為第i次的定位時間。
定義定位成功率為:
(24)

仿真參數見表1所列。

表1 仿真參數
4種算法在K=8、RSN=25 dB時的定位結果對比如圖4所示。從圖4中可以看出,OMP算法定位效果最差,大多數重建位置距離原始位置較遠,定位誤差達到2 m以上;CoSaMP算法和GMP算法定位效果優于OMP算法,定位誤差分別為1.3、1.5 m;本文算法定位效果最好,重建位置與原始位置幾乎重合,平均定位誤差為0.71 m,遠小于對比算法。

圖4 4種算法定位結果對比
4種算法在K=8時不同信噪比下的定位成功率如圖5所示。隨著信噪比的上升,節點接收到的信號強度準確性顯著上升,4種算法的定位成功率均呈上升的趨勢,當信噪比達到一定程度時,定位成功率趨于穩定。在噪聲為5 dB時,OMP算法、GMP算法以及CoSaMP算法定位成功率分別為0.15、0.24、0.42,大多數目標無法正確定位,本文算法的定位成功率為0.61,相比OMP算法、GMP算法以及CoSaMP算法,相應提高3倍、1.5倍以及45%,在噪聲較大的條件下依然能夠保持較高的定位成功率,表明本文算法抗噪性能較好,魯棒性較強。

圖5 4種算法在不同信噪比下的定位成功率對比
當K=8時,4種算法的定位誤差隨信噪比的變化如圖6所示。在信噪比為5 dB時, OMP算法、GMP算法、CoSaMP算法定位誤差分別為6.02、5.13、4.37 m,本文算法的定位誤差為2.31 m,遠小于對比算法。隨著信噪比的增加,4種算法的定位誤差逐漸減小,當信噪比達到20 dB之后4種算法的定位誤差減小趨勢較緩,當信噪比為40 dB時,本文算法的定位誤差為0.66 m左右,OMP算法、GMP算法和CoSaMP算法定位誤差分別為1.72、1.24、1.04 m。由此看出,在相同噪聲的條件下,本文算法的抗噪性能要優于對比算法,魯棒性較強。

圖6 4種算法在不同信噪比下的定位誤差對比
當RSN=25 dB時,4種算法的定位誤差隨著目標數目變化情況如圖7所示。從圖7可以看出,隨著目標數的增多,4種算法定位誤差增大,這是由于壓縮感知算法的重建性能隨著稀疏度的增加而下降。在相同目標數下,本文算法的定位誤差始終小于其他算法。從圖7中還可以看出,本文算法隨著目標數的增加定位誤差上升較慢,其他算法誤差增長較快。當目標數為20時,本文算法定位誤差為1.05 m,對比3種算法誤差均超過2 m,進一步表明本文算法受目標數影響較小,適應性更強。

圖7 4種算法在不同目標數目的定位誤差對比
4種算法在K=8時在不同信噪比下的定位時間如圖8所示。在RSN=25 dB時,OMP算法、CoSaMP算法、GMP算法以及本文算法的平均定位時間分別為0.002 71、0.034 50、0.042 60、0.030 90 s。OMP算法定位時間短,但定位精度遠遠小于其他算法。GMP算法每次迭代需要遍歷所有的網格找到使殘差衰減最大的網格位置作為目標位置,計算量較大,定位時間較長。本文算法引入bounding-box算法減小定位區域有效地降低測量矩陣的維數,相較于GMP算法以及CoSaMP算法,本文算法的運算量分別減少29.6%、18.7%,因此具有更低的定位時延。

圖8 4種算法在不同信噪比下的定位時間對比
為驗證算法的定位性能,在空曠的操場設置相應的物理實驗。實驗區域大小為6 m×6 m,使用CC2530芯片作為無線信號發射節點,CC2530芯片的發射頻率為2 405.0~2 583.5 MHz,節點功率為-25 dBm,利用安捷倫頻譜儀E440測量接受信號強度。在中心放置CC2530芯片,每隔0.5 m使用安捷倫頻譜儀測量接收信號強度,每個點測量20次進行卡爾曼濾波處理,過濾數量小、幅度大的噪聲,由此可以近似獲得(1)式所示的接受信號強度模型的參數,其中P0≈-31 dBm,n≈2.1。將CC2530芯片放置在定位區域內,在定位區域內設立9個觀測點,利用安捷倫頻譜儀測出觀測點的接收信號強度,每個位置測量20次進行卡爾曼濾波處理從而得到測量向量。將接受信號強度小于-40 dBm視為節點的通信范圍之外,由此得到通信半徑。利用接收信號強度大于-40 dBm的觀測點計算出估計區域,劃分網格,根據接收信號強度模型構建測量矩陣,然后利用本文算法進行壓縮感知位置估計。傳統壓縮感知算法將網格劃分為6×6的網格,即網格步長為1 m,同樣用安捷倫頻譜儀測得9個觀測點的接收信號強度值獲取測量向量,然后根據信號接受強度模型獲得基于接收信號強度模型的觀測字典,利用GMP算法、CoSaMP算法、OMP算法進行定位。改變CC2530芯片的位置,重復上述實驗得到3個未知節點的定位數據,見表2所列。

表2 定位實驗結果對比
對3個節點的誤差取平均值可以得到OMP算法、GMP算法、CoSaMP算法以及本文算法的平均定位誤差分別為1.13、1.07、0.88、0.65 m,本文算法定位精度最高,相較OMP算法、GMP算法、CoSaMP算法分別提升了41.7%、39.3%、26.14%。實際定位中受到環境因素的干擾,接收信號強度測量不準確,影響壓縮感知重構精度,本文對接收信號強度進行卡爾曼濾波能夠有效過濾掉噪聲從而提高壓縮感知重建精度,進而減小定位誤差。
本文在分析已有壓縮感知算法不足的基礎上,提出了一種優化壓縮感知算法。首先利用卡爾曼濾波對傳感器節點采集的接收信號強度值過濾噪聲信號提高測量精度;然后引入bounding-box算法進行區域鎖定,有效減小定位區域從而降低壓縮感知測量矩陣的維數,減小運算量。針對壓縮采樣匹配追蹤算法候選集原子冗余度大,支撐集選擇精度低的問題,本文采取原子相關度閾值的控制策略對候選集中的原子進行二次篩選,并在支撐集保留相關系數較大的原子,提高壓縮感知重建精度。實驗表明,本文算法的定位速度較傳統的GMP算法以及CoSaMP算法有所提升,在不同的目標數以及不同噪聲下的定位精度均優于對比算法,具有更好的抗噪性和魯棒性。