杜 鵬,包曉安,胡逸飛,陳迪榮
(浙江理工大學 信息學院,浙江 杭州 310018)
隨著物聯網技術研究的不斷深入,信息的獲取愈發(fā)便捷,數據傳輸量也不斷增加。但現階段通過無線傳感網絡獲取到的原始信息因為信息形式和內容不統(tǒng)一、信息時空關系不一致、信息精度差異、網絡傳輸不穩(wěn)定等原因而具有顯著的不確定性[1]。此外,由于無線傳感網絡節(jié)點布置相對密集,數據采集頻率相對頻繁,采集到的數據在時間上與空間上具有相似性,也會造成大量數據冗余[2],而將相似和異常數據進行剔除并進行融合處理可提高數據的精確度和穩(wěn)定性,降低數據傳輸頻率和數量。
目前已有一系列針對無線傳感網絡數據融合相關問題的研究。文獻[3]利用歸一化方法進行預處理,分析建模后通過最近鄰點拓撲目標,選擇最佳數據進行初始化,根據其它數據記錄實現數據融合。該方法效果較好,但建模期間需要不斷以大量數據進行調整,無法直接使用。文獻[4]通過貝葉斯算法實現測量數據的數據融合,結合卡爾曼濾波器的貝葉斯融合算法有效解決了數據不確定性和不一致性的問題。文獻[5]提出一種具有預處理的改進型分批估計自適應加權數據融合算法,根據格羅貝斯準則對單個傳感器測量數據序列進行一致性檢驗,隨后使用改進的分批估計算法對單個傳感器計算最優(yōu)監(jiān)測值,最后使用自適應加權進行數據融合。該方法使用格羅貝斯準則進行判斷雖然可以較好地實現異常數據剔除,但格羅貝斯準則判據是一個遞歸算法,每次只能剔除一個可疑值,效率不高。文獻[6]提出采用自適應加權平均法及BP神經網絡結合的技術實現環(huán)境監(jiān)測數據融合。該方法使用BP神經網絡,較好地提高了數據準確度,但是會造成網絡內信息冗余,增加傳輸壓力。文獻[7]提出一種3層架構的數據融合系統(tǒng),底層采集原始數據,中間層通過動態(tài)貝葉斯網絡處理異構數據,上層自適應系統(tǒng)動態(tài)調整傳感器采集。該方法融合結果較好,數據上傳不會造成冗余,但網關層節(jié)點需要大量數據集進行訓練,節(jié)點運算資源消耗較大,不適合長期使用。
考慮到無線傳感網絡節(jié)點功耗、運算能力的限制,以及數據采集時處理實時性的要求和數據融合的準確性需求,本文結合時空融合模型提出了一種基于卡爾曼濾波的時空數據融合方法。該方法將數據融合分為兩次,第1次對原始采集到的數據進行預處理,在時間序列上進行卡爾曼濾波融合;第2次在網關層進行數據處理,將空間信息加權融合?;跁r間序列的處理可以對數據未來的趨勢進行預判和分析;基于空間的處理則增強了對數據的真實性與可靠性。時間信息融合中,本研究使用卡爾曼濾波算法處理了動態(tài)噪聲,對無線傳感器節(jié)點的環(huán)境噪聲做到了實時動態(tài)計算和補償。空間信息融合中,針對不同區(qū)域誤差分布不均勻的特點,提出了依據時間數據融合結果對空間融合的權重進行自適應調整的策略。
無線傳感網節(jié)點采集到的數據具有時間和空間兩種屬性,每個獨立的傳感器節(jié)點在時間序列上進行數據采集,每個路由器節(jié)點或協調器節(jié)點在空間序列上進行數據匯總上傳[8]。本研究針對無線傳感網絡節(jié)點分布特性,提出了分別在終端節(jié)點和網關層進行融合的雙層數據融合架構。針對數據采集的特點,本文將數據融合分為基于時間序列的時間數據融合和依據空間分布特點的空間數據融合兩個步驟。圖1所示為基于時空數據融合和卡爾曼濾波的無線傳感網絡的數據算法結構。該算法的數據融合過程分為兩個階段:第1階段在終端層進行處理基于時間的數據融合,采用卡爾曼濾波算法實現單個無線傳感器數據采集,按時間序列進行融合估計,消除單個傳感器節(jié)點測量中的不確定性,提高測量的準確性,降低數據的重復性,得到更準確的實時測量數據;第2階段基于空間的數據融合由網關層節(jié)點進行處理,采用多傳感器加權自適應估計融合算法,在總均方誤差最小的情況下,以時間融合后的傳感器數據為基礎自適應尋找對應的最優(yōu)加權因子,獲得最優(yōu)的估計融合值[9]。
現有的數據融合處理大多是對數據進行簡單的剔除處理,對偏離的數據進行過濾后會影響數據的真實性。采用時空數據融合方法將剔除后的數據再次根據空間分布進行處理,由于多個傳感器共同對目標進行檢測,彌補了數據真實性的缺失。將目前的研究數據剔除后,并沒有進行相應的補償,雖然對數據影響不大,但考慮到無線傳感網絡數據實時性較高且數據采集量較大,每次融合后的數據都產生了一定的偏離,最終結果會產生較大的偏差。采用時空數據融合方法在剔除較大誤差后,空間上多個傳感器對數據進行補充,使得數據的真實性得以提高。
卡爾曼濾波算法相較于其他融合算法實時性較強,可及時處理大量數據,避免數據存儲帶來的資源消耗。在數據處理時,卡爾曼濾波融合算法分為3個步驟:首先,通過已有數據進行預測,根據上一輪的估計值預測下一刻的值,成為先驗估計,同時預測出下一時刻的誤差作為先驗誤差,在時間序列上數據實現了趨勢預測和估計的目的;然后,計算出卡爾曼增益,用以權衡先驗估計和測量值的權重。通過采集的真實數據對預測的數據進行修正,以此提高數據精確度和準確性;最后,將上一輪修正后的數據放入到下一個預測和更新方程中使算法不斷迭代。相較于目前的研究,該方法實時性更好,對時間序列內數據的更新迭代提高了數據的精確度和準確度。
以空間數據為基礎的自適應加權算法,雖然多個傳感器處于同一區(qū)域檢測同一目標,但是因為空間區(qū)域不同必然會有些許的不同。對此,自適應加權方法是一個較好的解決方案。但是實際使用過程中,復雜環(huán)境因素的影響是多變的,可能存在均方差偏大的檢驗數據,因此本文引入環(huán)境因子來克服該誤差,選擇性地去除一定比例的最大最小值來提高數據的準確性。相較于傳統(tǒng)的加權方法,該方法結合了空間特性,考慮了空間數據的不穩(wěn)定結果,降低了空間數據本身因干擾造成的影響。
圖1 數據融合算法結構模型Figure 1. Structure model of data fusion algorithm
無線數據的采集取決于布置的無線傳感器節(jié)點。無線傳感器節(jié)點間歇地進行數據采集,但無線傳感器節(jié)點無論布置在室內還是室外,由于環(huán)境干擾和節(jié)點自身精度限制,采集到的數據會不可避免地產生誤差。這些誤差數據在數據融合過程中會使結果出現較大偏差甚至造成結果無效。為了減小異常數據的影響,本文采用卡爾曼濾波法進行誤差數據的修正??柭鼮V波是基于狀態(tài)變量線性最小方差的遞歸估計算法[10],也被稱作最優(yōu)自回歸數據處理算法。系統(tǒng)如果具有線性動力學模型,且系統(tǒng)與傳感器的誤差符合高斯白噪聲模型,則卡爾曼濾波將為融合數據提供唯一統(tǒng)計意義下的最優(yōu)估計[11]。無線傳感器在實際測量中由于外界環(huán)境的變化,噪聲頻率也會發(fā)生變化,卡爾曼濾波可以更好地控制噪聲對真實數據的干擾,降低采集數據過程中因傳感器節(jié)點自身的精度及使用后期部件老化產生的隨機測量誤差,降低傳感器受其他環(huán)境因素例如溫濕度、大氣壓、風速、光照變化等的影響[12]。
卡爾曼濾波操作主要包括兩個步驟:首先在預估階段,算法根據上一時刻的估計結果預測下一時刻的值,成為先驗估計;然后是校正階段,這時首先計算卡爾曼增益,利用前一時刻的先驗估計計算后驗估計并更新先驗誤差到后驗誤差。
卡爾曼濾波算法預測值的狀態(tài)估計式為
X(k|k-1)=A×X(k-1|k-1)+B×U(k)
(1)
式中,X(k|k-1)為利用上一狀態(tài)預測得到的結果;X(k-1|k-1)為上一狀態(tài)最優(yōu)結果;B為輸入控制項矩陣;U(k)為現在狀態(tài)的控制量。
更新預測結果與實際值誤差的協方差,預測值的協方差矩陣估計式為
P(k|k-1)=A×P(k-1|k-1)×AT+Q
(2)
式中,P(k|k-1)為X(k|k-1)對應的協方差;P(k-1|k-1)為X(k-1|k-1)對應的協方差;Q為系統(tǒng)噪聲的協方差。
卡爾曼濾波器更新值的狀態(tài)估計式為
X(k|k)=
X(k|k-1)+G(k)×[Z(k)-H×X(k|k-1)]
(3)
式中,X(k|k)為當前最優(yōu)估計值;Z(k)為當前傳感器的觀測值;H為測量矩陣;G為卡爾曼增益,其計算為
(4)
其中,R是測量噪聲協方差。
協方差更新值的狀態(tài)估計式為
P(k|k)=[I-G(k)×H]P(k|k-1)
(5)
式中,P(k|k)為當前最優(yōu)估計值的協方差;I為單位矩陣。
在檢測區(qū)域內,數量眾多的無線傳感網節(jié)點分布相對均勻。區(qū)域內的無線傳感網節(jié)點被分為多組,每組傳感網絡內會分配一個節(jié)點作為協調器進行數據收集和上傳,因此空間融合主要在路由器、協調器節(jié)點為主的網關層進行。加權數據融合方法僅依靠傳感器采集的測量數據即可完成較高精度的融合,無需系統(tǒng)先驗知識,且計算方法簡便。考慮到傳感器網絡的運算能力及數據融合的需求,本文選擇使用加權融合估計方法進行空間數據融合[13]。
每個傳感器采集的數據經過卡爾曼濾波處理后,得到單個傳感器測量值的最優(yōu)融合估計[14]。假設監(jiān)測區(qū)域分布著n個某一種傳感器節(jié)點進行獨立測量,某一時刻時間信息融合后得到了n個最優(yōu)融合估計數據x1,x2,…,xn。
根據加權融合估計計算式可得空間信息融合結果為
(6)
式中,Wi為加權因子,根據每輪空間匯聚數據自適應加權運算得出。
(7)
因為x1,x2,…,xn相互獨立互不影響,并且為真值x的無偏估計,所以有
E(x-xi)(x-xj)=0,
i=1,2,...,n;j=1,2,...,n;i≠j
(8)
故總均方誤差σ2可寫作
(9)
當均方差最小時總方差最小,此時第i個節(jié)點的權值為
(10)
將式(10)代入式(6),依據式(1)~式(6)可得到最終數據融合結果。單一的自適應加權融合對于原始采集的數據中偏離較大的值無法較好地處理,影響精確度。僅靠卡爾曼濾波算法也無法對區(qū)域內匯聚的數據進行處理,易產生冗余情況。將兩者結合,依據無線傳感網絡時間和空間的特性,可以有效地處理無線傳感節(jié)點數據。
為了驗證該時空融合算法的有效性,選用對無線傳感網仿真的方式進行測試[17]。實驗以Windows10下MATLAB R2018b環(huán)境進行仿真。這里以溫度傳感器舉例,共仿真室外分布100個節(jié)點進行數據采集。本文取某一時間節(jié)點分別對比算數平均法和基礎的自適應加權算法,并對結果進行分析。
時間信息融合是單個傳感器節(jié)點在某一段時間內采集到的數據依據時間序列進行的融合?,F實生活中的噪聲屬于加性噪聲,由傳感器內部噪聲和環(huán)境干擾等多種相對獨立因素產生的測量噪聲為相互獨立的白噪聲。利用概率知識,多個相互獨立的隨機變量相加的和接近正態(tài)分布,因此測量噪聲的分布規(guī)律也是正態(tài)分布的。添加均值大于真實值的正態(tài)分布作為噪聲波動,Q為噪聲方差設為4×10-4,該數據可根據環(huán)境情況進行調整。
在數據采集時間內溫度被認為是不變的,因此A=1。系統(tǒng)不存在控制量,因此U(k)=0。假設選用溫濕度度測量傳感器DHT11進行測量,其開發(fā)文檔對應方差為0.25,即R=0.25。
卡爾曼濾波是先驗估計,需要初始值,因為隨著卡爾曼濾波算法運行,X會逐漸收斂,不影響結果,因此在零時刻X(0|0)和P(0|0)分別為20.5和1。
利用k-1時刻溫度預計第k時刻的溫度,預計偏差為P(k|k-1)=P(k-1)+Q=0.2,計算卡爾曼增益G為0.800 063,據此可得卡爾曼估計值X(k)=20.833。更新k時刻的偏側,對下一時刻數據更新處理。迭代運行100 min后卡爾曼濾波數據如圖2所示。
圖2 溫度傳感器測量值與卡爾曼濾波值Figure 2. Temperature sensor measurement values and Kalman filter values
圖2中通過測量結果與卡爾曼濾波后的結果進行對比,可發(fā)現卡爾曼濾波器較好地抑制了噪聲誤差,并且隨著采樣時間的積累,卡爾曼濾波算法處理的數據會逐漸趨于穩(wěn)定和精確,誤差值也較小,這表明卡爾曼濾波融合可以滿足時間信息融合的需求。
基于空間的數據融合是在時間數據融合的基礎上進行的。綜合考慮能耗及采集精度,設置每個節(jié)點定時喚醒采集傳感數據60 min,每個獨立的傳感器節(jié)點在完成采集并進行卡爾曼濾波融合后便得到了最優(yōu)融合估計數據。將這些數據匯聚在網關,由協調器進行空間上的數據融合。真實值為15.5 ℃、17.2 ℃、20.8 ℃、25.5 ℃、30.5 ℃ 的溫度數據加入高斯噪聲后,由卡爾曼濾波仿真。將10組、20組、50組、100組數據進行自適應加權融合后,得到結果如表1和圖3所示。把實驗數據值轉化為相對偏差可以更直觀地看到,在經過基于時間的數據融合后,節(jié)點較少時即可得到相對偏差較小的數據融合結果。隨著節(jié)點的增多,結果逐漸趨于真值。
表1 空間數據融合結果
圖3 各溫度仿真相對偏差折線圖Figure 3. Line graph of relative deviation of each temperature simulation
分別對比本研究算法、算數平均法和改進的分批估計自適應加權數據融合方法對實驗數據的處理結果,如表2和圖4所示。通過圖表可以看出,相對于算術平均法和改進的分批估計自適應加權融合算法,本文提出的數據融合算法的融合結果更接近數據真值,算法誤差明顯小于算術平均法。這是由于算術平均法中具有無法避免的外界干擾以及傳感器誤差。分批估計自適應加權融合算法相對于算術平均算法數據穩(wěn)定性好,但融合誤差仍然比本文提出的算法大,這是數據處理實時性不高造成的。雖然對原始數據進行了預處理,但格羅貝斯判斷準則判據需要階段運行,且每次只剔除一個可疑值。當數據不嚴格服從正態(tài)分布時,該方法的準確性易受到干擾。通過計算,算數平均法均方差約為1.85,分批估計自適應加權算法均方差為1.32,基于卡爾曼濾波的時空數據融合方法均方差為1.21,本文算法對比分批估計自適應加權算法的均方根誤差減少約7.9%,精度提高了2.1%。綜上所述,本文的基于卡爾曼濾波的無線傳感網時空數據融合算法在不同節(jié)點數量、不同環(huán)境的情況下都有較低的融合誤差。
表2 3種算法數據融合值與真值比較
圖4 3種算法融合值與真值相對偏差折線圖Figure 4. Line graph of the relative deviation between the fusion value of the three algorithms and the true value
基于物聯網思想,結合當前無線傳感網絡的架構及現階段應用中信息存在的不確定性、冗余等問題,本文提出了基于卡爾曼濾波的無線傳感網時空數據融合算法。首先對每個傳感器節(jié)點在時間上進行基于卡爾曼濾波的數據融合,再對全部部署的無線傳感網中的節(jié)點在空間上進行基于自適應加權法的數據融合。仿真結果表明,卡爾曼濾波融合可以較好地處理無線傳感器節(jié)點工作過程中的動態(tài)噪聲問題,動態(tài)補償測量誤差,實現時間序列下的數據融合。相較于其他的數據融合方法,本文方法融合后數據更接近真值,隨著傳感器數量增加,融合結果越接近真值且對比圖中折線更平緩。實驗證明本方法可以降低環(huán)境和傳感器自身靈敏度等帶來的誤差,有效提高無線傳感網絡測量的精確度和準確度。后續(xù)將重點研究該方法對傳感器網絡數據傳輸頻率、數量及數據傳輸壓力的影響,以期降低無線傳感網整體能耗。