(東南大學 儀器科學與工程學院,江蘇 南京 210096)
在無線傳感器網絡中,通常布置有大量的傳感器節點。一方面,由于監測環境復雜多變,這些傳感器節點會不可避免地受到各種干擾,隨機噪聲對監測數據的影響不容忽略;另一方面,監控系統對節點能耗有較高要求,大量冗余數據的傳輸和處理將快速耗盡節點能量,使節點失效。因此,將數據融合技術應用在WSN中,可以增強數據的準確性(降低隨機噪聲的影響),提高系統的可靠性(當某個或某些節點因能量耗盡或受到干擾而失效時,不會影響系統的正常感知)。
數據融合是指通過建模對不同源的數據進行處理[1]。通過對這些不同源數據的充分利用和合理支配,并結合數據估計、建模、采集管理等手段,依據某種準則綜合考慮其在時間和空間上的冗余或互補信息,產生被測對象更準確的信息、更一致的解釋和描述,以獲得最大可信度的最優結果[2-3]。常用的算法有卡爾曼濾波算法和基于支持度函數的加權平均算法。
(1) 卡爾曼濾波算法。
卡爾曼濾波公式如下:
X(k|k-1)=A·X(k-1|k-1)+W(k-1)
(1)
Z(k)=H·X(k|k-1)+V(k)
(2)
P(k|k-1)=A·P(k-1|k-1)·AT+q
(3)
(4)
X(k|k)=X(k|k-1)+Kg(k)·V(k)
(5)
P(k|k)=(I-Kg(k)·H)·P(k|k-1)
(6)
式中,X(k-1|k-1)為系統上一狀態的最優估計值;X(k|k)為系統現階段的最優估計值;Z(k)為系統在現階段的測量值;W(k-1)和V(k)是零均值、方差分別為q、r的相互獨立的白噪聲;Kg(k)定義為其增益陣;P(k|k)定義為其協方差陣。
(2) 基于支持度函數的加權平均算法。
支持度函數sup(a,b)表示兩個值a,b間的相互支持程度,其必須滿足以下條件:
①sup(a,b)∈[0,1];
②sup(a,b)=sup(b,a);
③ 若|a-b|<|x-y|,則sup(a,b)>sup(x,y),a,b,x,y>0。
文獻[4]提出一種新型支持度函數進行數據融合:
(7)
式中,α∈[0,1]為支持度函數的幅度;β>0為支持度衰減因子,β越大,支持度衰減越快。兩個值越接近,它們的相互支持度越高。
通過該算法求得子系統內各節點的權值,以做加權融合運算。
本文所提出的數據融合流程如圖1所示,主要包括以下步驟:
① 通過自適應閾值函數,對各節點在一段時間內的原始數據進行異常數據剔除;
② 對各節點數據分別采用遞推最小二乘法融合,求得其在該時間段內的估計值;
③ 將系統分解成多個子系統,分批對每個子系統的待融合數據采用基于改進支持度函數的加權融合算法,從而求得此刻該子系統的環境估計值,并將此值作為下一級融合的輸入,以此類推進行融合。
在WSN中,由于環境參數(如空氣溫濕度、土壤溫濕度、光照等)變化緩慢,且有較大冗余,節點在相鄰幾個采集周期內的數據不會出現跳變現象,因此可以通過對各節點在一段時間內采集到的原始數據進行預處理來減少節點的數據傳輸量,最終達到減小能耗、延長生命周期的效果。

圖1 數據融合流程
由于環境噪聲的存在以及傳感器性能不穩定等因素,傳感器會產生異常數據。為確保數據的可靠性,本文利用自適應閾值剔除這些異常值。
將一段時間內節點i采集到的原始數據自小到大排列為Xi=[x1,x2,…,xn]。
定義中位數為
(8)
上四分位數Fu定義為xm與xn間的中位數,下四分位數Fd定義為x1與xm間的中位數。
定義閾值函數:
ρ=β×(Fu-Fd)
(9)
式中,β與傳感器節點精度相關。當測量值xj(j=1,2,…,n)滿足
|xj-xm|>ρ
(10)
時,可視其為無效數據,將其剔除。
根據式(1)~式(6),卡爾曼濾波算法的難點在于:
① 矩陣乘法甚至矩陣連乘運算的存在,導致運算復雜度增加;
② 當矩陣的階數增加時,其求逆運算的復雜度以幾何級數增加;
③ 由于卡爾曼濾波算法的核心在于迭代,即式(1)~式(6)均要進行多次的重新運算,計算量繁重。
在WSN中,各節點體積小,只能攜帶能量有限的電池,同時其低廉的價格必然造成存儲器和處理器性能不佳的問題,將卡爾曼濾波直接應用在WSN中,可能出現計算量超出系統承載能力的情況。因此,降低卡爾曼濾波的計算量成為將其應用在WSN中的關鍵。
將卡爾曼濾波的矩陣參數做降維處理,即考慮一維系統,可將其簡化為一維遞推最小二乘法。遞推最小二乘法計算過程較為簡單,精度可以保證,同時無需掌握太多的系統先驗知識,依靠測量值即可進行濾波。根據文獻[5]和文獻[6],得到其遞推關系如下:
(11)
xk=xk-1+pk(zk-xk-1)
(12)
式中,xk和xk-1分別為系統現階段與前一階段的估計值;zk為系統的當前測量值;x0與p0為系統初始值。為了提高在初期的融合精度,將前一個融合周期的融合值作為后一個融合周期的系統初值。
節點內部的數據融合會導致數據的大量丟失,為減小因傳輸過程中數據丟包等情況造成的影響,通常采用冗余傳感器部署,通過節點間的數據融合獲得最優估計值。

Nahin和Pokoski在文獻[7]中定量證明了利用增加傳感器的方法所獲得的正確分類的邊界線。通過使用N個相同的傳感器來觀測需要正確識別或分類的現象。假設每個傳感器是統計獨立的,且先驗概率相等,通過計算機仿真表明增加參與融合的傳感器數量能夠提高觀測數據的精度,但當傳感器數目N超過某臨界值(高精度傳感器數目大于7或低精度傳感器數目大于11)時,再繼續增加傳感器對觀測精度的提高不會有明顯有效的改善。
因此,將待融合的數據每7個為一個子系統,對每個子系統分別進行基于改進支持度函數的數據融合處理,并將融合結果作為下一級融合的輸入值,以此類推進行分級融合。其流程圖如圖2所示。

圖2 分批融合示意圖
由式(7)可知,新型支持度函數存在以下問題:
① 使用該函數時,參數β是人為設定的,具有較強主觀性,會影響實際融合的結果;
② 未考慮同一節點在觀測區間內采集到數據的可信度,數據融合的精確度有待提高。
為了更可靠地評估節點數據間的支持度,提出一種改進的支持度函數。
根據灰色接近度理論[8],定義節點i的自支持度si(k)為
(13)
式中,σi(k)為該節點的系統方差,其表達式為
(14)
式中,xi(k)為節點內部融合值;xik(t)為節點i在第k個采樣周期內經過異常剔除后的采樣值。

改進的支持度函數為
(15)
節點間的相互支持度矩陣為
(16)
節點i獲得其他(n-1)個節點的總支持度為
(17)
對總支持度進行歸一化處理,得到節點i的最優融合權值為
(18)
由此可得融合后該組傳感器在此采樣周期內的最優估計值為
(19)
設計了一套無線傳感器網絡,并于2016年8月在廣州白云現代農業示范基地內的一座溫室大棚進行了測試實驗。該系統包括7個無線傳感器節點。
在實驗中,節點每隔30 s采集一次數據。然后以5 min為周期,將各節點連續的10個值作為節點內融合的輸入,輸出作為各節點在該周期內的估計值發送,以進行節點間的數據融合。與融合前需要發送的數據量相比,融合后的數據傳輸次數減少了90%,這可以有效減少節點無線通信的能耗,因此可以有效地延長網絡的生命周期。
傳感器節點在某5 min內采集的溫度值如下:
a1=[36.4,34.0,34.3,34.6,34.8,34.7,37.4,35.4,36.0,36.5];
a2=[36.0,32.3,35.0,34.2,34.5,35.5,35.3,35.6,35.6,35.9];
a3=[36.2,34.9,32.5,35.0,34.1,33.8,37.5,34.9,35.4,36.2];
a4=[36.8,31.4,34.6,34.3,35.8,34.8,34.1,35.0,35.8,37.0];
a5=[35.9,32.0,33.9,34.5,36.0,35.0,34.0,35.3,35.0,36.4];
a6=[34.5,36.2,36.6,35.1,34.7,40.9,33.3,34.2,35.8,34.9];
a7=[34.9,36.9,37.9,35.4,35.1,40.5,34.8,34.6,35.3,36.5];
經過異常剔除后,得
b1=[36.4,34.0,34.3,34.6,34.8,34.7,35.4,36.0,36.5];
b2=[36.0,35.0,34.5,35.5,35.3,35.6,35.6,35.9];
b3=[36.2,34.9,35.0,34.1,33.8,34.9,35.4,36.2];
b4=[34.6,34.3,35.8,34.8,34.1,35.0,35.8];
b5=[35.9,33.9,34.5,36.0,35.0,34.0,35.3,35.0,36.4];
b6=[34.5,36.2,36.6,35.1,34.7,34.2,35.8,34.9];
b7=[34.9,36.9,35.4,35.1,34.8,34.6,35.3,36.5];
實驗顯示,溫度差值均未超過2.5 ℃,因此本文采用的自適應閾值法能夠準確有效地檢驗出數據的異常,保證后續融合數據的可靠性。
利用計算機隨機生成一系列(35±2.5)℃的隨機數據。數據共有100組,每組包含10個數值。分別利用遞推最小二乘法和算術平均法對每組數據進行融合。采用遞推最小二乘法和算術平均法融合后的均方誤差分別為0.1956和0.1958。與一階卡爾曼濾波相比,遞推最小二乘法的計算量減少46.15%。可見,遞推最小二乘法在減少運算復雜度的同時,仍然能夠保證融合結果的較高準確性。
新型支持度函數的特征曲線如圖3所示。根據本次實驗各節點內部融合值及其系統方差可知,改進支持度函數的特征曲線位于D(a,b,1,0.5)與D(a,b,1,1)之間。實驗中溫度傳感器的測量誤差在 0.5 ℃左右。由圖3可知,函數值在誤差為0~0.5 ℃范圍內時,衰減速度較緩;在誤差為0.5~2 ℃范圍內迅速衰減。這符合溫度傳感器的測量誤差以及各點溫度差值變化,因此能夠在加權融合算法中顯著地增加有效數據的權重,同時盡可能地減小誤差偏大的數據對融合結果的影響。

圖3 新型支持度函數特征曲線圖
上述7組數據的融合結果如表1所示。

表1 部分數據融合結果
在該周期內,各節點的系統方差分別為:0.7588,0.2094,0.6598,0.3898,0.6899,0.6425,0.5998。經過融合后的系統方差為0.1520。可見,所提出的算法可以獲得高精度的估計值。
在實驗中,將高精度溫度計讀數作為真值,與改進后的融合值對比,其對比圖如圖4所示,融合后的均方誤差為0.1597。可知,所提出的基于改進卡爾曼濾波和支持度的WSN數據融合算法能夠有效地反映溫度參數變化情況,且在實際應用中融合結果準確可靠。

圖4 本文算法融合值與真值對比圖
本文提出了一種基于遞推最小二乘法和改進支持度的WSN數據融合算法,并對其進行了實驗驗證。結果表明:自適應閾值函數能夠有效剔除異常數據;基于遞推最小二乘法以及改進支持度函數的數據融合算法可以有效減少數據傳輸和計算量,且融合后的數據精度能夠滿足實際應用要求。