李 林
(天津商業(yè)大學(xué) 信息工程學(xué)院,天津 300134)
在無線傳感器網(wǎng)絡(luò)(wireless sensor networks,WSNs)用于目標(biāo)定位與追蹤、頻譜感知、自動(dòng)雷達(dá)、導(dǎo)航及機(jī)器視覺等領(lǐng)域時(shí),常常需要節(jié)點(diǎn)協(xié)同估計(jì)同一個(gè)未知參數(shù)。WSNs中的每個(gè)節(jié)點(diǎn)用一組輸入觀測(cè)未知參數(shù),由于環(huán)境復(fù)雜這些觀測(cè)值是未知目標(biāo)參數(shù)受多元噪聲如環(huán)境或測(cè)量噪聲干擾后的觀測(cè)值,由這些觀測(cè)數(shù)據(jù)所得到的參數(shù)與原始目標(biāo)參數(shù)相去甚遠(yuǎn)。所以,如何從噪聲干擾中精確地估計(jì)出原始目標(biāo)參數(shù)是一個(gè)重要的問題[1]。參數(shù)估計(jì)算法已經(jīng)有了大量的研究,通常會(huì)選用一些自適應(yīng)算法作為參數(shù)估計(jì)算法,如線性預(yù)測(cè)算法、最速下降算法、遞歸最小二乘算法、平方根自適應(yīng)算法和最小均方(least mean square,LMS)自適應(yīng)等。
近些年來,解決WSNs中的參數(shù)估計(jì)問題一般有兩種不同類型的算法:一種是集中式的參數(shù)估計(jì)算法,另一種是分布式的參數(shù)估計(jì)算法。集中式估計(jì)算法是每一輪所有節(jié)點(diǎn)將自己的本地估計(jì)值傳輸給網(wǎng)關(guān),網(wǎng)關(guān)收集網(wǎng)絡(luò)的全部信息后計(jì)算出全局的估計(jì)值,再發(fā)還給傳感器節(jié)點(diǎn)。由于每一輪的估計(jì)都獲取了網(wǎng)絡(luò)的全局信息,這種方法做出的參數(shù)估計(jì)非常精確。但是WSNs中節(jié)點(diǎn)的能量有限,這類算法用于WSNs中,每一輪估計(jì)時(shí)網(wǎng)關(guān)都需要與節(jié)點(diǎn)進(jìn)行信息交互。特別地,當(dāng)網(wǎng)絡(luò)是多跳網(wǎng)絡(luò)時(shí),能量消耗巨大,網(wǎng)絡(luò)的生存時(shí)間堪憂,無法在實(shí)際中應(yīng)用。分布式估計(jì)算法中每個(gè)節(jié)點(diǎn)對(duì)參數(shù)的估計(jì)無需網(wǎng)關(guān)參與,節(jié)點(diǎn)僅與部分其他節(jié)點(diǎn)交換自己計(jì)算出的本地估計(jì)信息,大大地降低了通信量,WSNs更適合分布式估計(jì)算法。
常見的分布式估計(jì)算法分為分布式增量[2,3]、擴(kuò)散[4~6]和共識(shí)三種類型。分布式增量算法中,每個(gè)節(jié)點(diǎn)接收前一個(gè)節(jié)點(diǎn)的估計(jì)與自己的信息結(jié)合來進(jìn)行下一時(shí)刻的估計(jì),隨后再將自身的估計(jì)發(fā)送給下一節(jié)點(diǎn)。這種算法在節(jié)點(diǎn)數(shù)目較多和拓?fù)鋸?fù)雜時(shí)魯棒性較差。分布分布式共識(shí)和擴(kuò)散算法中,節(jié)點(diǎn)每輪僅與其鄰居節(jié)點(diǎn)交換信息,將這些信息融合后,通過參數(shù)估計(jì)算法遞歸計(jì)算下一時(shí)刻的估計(jì)值[4]。分布式共識(shí)估計(jì)算法在于增加了一個(gè)強(qiáng)制鄰居節(jié)點(diǎn)合作的過程。文獻(xiàn)[7]指出,采用分布式擴(kuò)散算法的網(wǎng)絡(luò)其估計(jì)性能優(yōu)于分布式共識(shí)算法,收斂速度更快而且均方偏差(mean square deviation,MSD)更小。與其他算法相比,分布式擴(kuò)散算法有著更好的估計(jì)性能、更好的可擴(kuò)展性和魯棒性。
為降低WSNs用于參數(shù)估計(jì)時(shí)的整體通信負(fù)載,本文提出了一種間歇型LMS參數(shù)估計(jì)算法。算法中,節(jié)點(diǎn)是否傳輸自身的估計(jì)值取決于一個(gè)交替參數(shù),節(jié)點(diǎn)僅僅被間歇參數(shù)選中的時(shí)刻與鄰居節(jié)點(diǎn)交換估計(jì)值。有信息交換時(shí),節(jié)點(diǎn)通過鄰居節(jié)點(diǎn)和自身的估計(jì)值加權(quán)做和,作為下一時(shí)刻估計(jì)值的更新依據(jù);無信息交換時(shí),節(jié)點(diǎn)僅用自身的本地估計(jì)值作為下一時(shí)刻估計(jì)值的更新依據(jù)。最后節(jié)點(diǎn)根據(jù)得到的自適應(yīng)歸一化步長,計(jì)算出下一時(shí)刻的估計(jì)值。通過該算法,可在損失少許估計(jì)性能的情況下大大降低網(wǎng)絡(luò)通信負(fù)載。
本文所考慮的問題是一個(gè)有N個(gè)節(jié)點(diǎn)的WSNs,典型的N=10的用于參數(shù)估計(jì)的WSNs如圖1所示。
圖1 N=0的用于參數(shù)估計(jì)的WSNs模型
其中,圓圈表示節(jié)點(diǎn),箭頭表示節(jié)點(diǎn)之間的通信鏈路,WSNs參數(shù)估計(jì)的線性回歸模型可表示為
(1)
集中式LMS算法中,網(wǎng)關(guān)需要收集整個(gè)WSNs的全局信息,集中地處理這些信息。傳感器節(jié)點(diǎn)需要每輪將信息發(fā)送或者轉(zhuǎn)發(fā)給Sink節(jié)點(diǎn),每輪的估計(jì)都會(huì)產(chǎn)生很大的通信負(fù)載[8]。在WSNs中,節(jié)點(diǎn)通常由電池供電,能量非常寶貴,而節(jié)點(diǎn)的能量大部分由通信模塊消耗。由于通信量太大,集中式LMS算法很難用于實(shí)際的WSNs。當(dāng)網(wǎng)絡(luò)拓?fù)渥兓蛘咄ㄐ沛溌犯淖儠r(shí),集中式LMS算法的估計(jì)性能也會(huì)變得很差。為了克服集中式LMS算法的缺陷,本文采用分布式LMS擴(kuò)散算法。
在分布式共識(shí)和擴(kuò)散LMS算法中,每個(gè)節(jié)點(diǎn)只需要與鄰居節(jié)點(diǎn)交換估計(jì)信息來獲取估計(jì)值,如圖2所示。
如果兩個(gè)節(jié)點(diǎn)可以直接通信,則定義這兩個(gè)節(jié)點(diǎn)互為鄰居節(jié)點(diǎn)[9]。例如,節(jié)點(diǎn)7的鄰居節(jié)點(diǎn)定義為Ω7,其中,Ω7包含節(jié)點(diǎn)7本身。每個(gè)節(jié)點(diǎn)需要計(jì)算其本地估計(jì)值,并從鄰居節(jié)點(diǎn)中獲取鄰居節(jié)點(diǎn)的本地估計(jì)。如圖2中,箭頭表示節(jié)點(diǎn)之間的通信鏈路,節(jié)點(diǎn)7的鄰居節(jié)點(diǎn)集合Ω7為節(jié)點(diǎn)3,5,6,7,8。這些節(jié)點(diǎn)可以與節(jié)點(diǎn)7直接通信。由于網(wǎng)絡(luò)采用分布式共識(shí)和擴(kuò)散算法,當(dāng)網(wǎng)絡(luò)中一些節(jié)點(diǎn)無法正常通信,整個(gè)網(wǎng)絡(luò)仍能繼續(xù)工作。
圖2 分布式LMS擴(kuò)散算法中用于參數(shù)估計(jì)的WSNs模型
分布式擴(kuò)散LMS參數(shù)估計(jì)算法可以分為3個(gè)階段,分別是信息交換階段、適應(yīng)階段和融合階段。根據(jù)網(wǎng)絡(luò)的拓?fù)洌?jié)點(diǎn)i賦予不同的融合系數(shù)來融合每個(gè)鄰居的估計(jì)值
(2)
式中γii為節(jié)點(diǎn)i自身估計(jì)值的融合系數(shù),γij為其鄰居節(jié)點(diǎn)j在節(jié)點(diǎn)i的融合階段的融合系數(shù),融合系數(shù)需要滿足式(2)。融合系數(shù)的計(jì)算多種規(guī)則,如Metropolis,Laplacian和最大度規(guī)則,本文中選用的Metropolis規(guī)則如式(3)所示
(3)
分布式共識(shí)算法與擴(kuò)散LMS算法的主要區(qū)別是,共識(shí)算法在適應(yīng)階段用加權(quán)融合后的估計(jì)值和本地估計(jì)值結(jié)合用來計(jì)算下一時(shí)刻的估計(jì)值,擴(kuò)散算法在數(shù)據(jù)融合后,適應(yīng)階段僅用融合后的估計(jì)值計(jì)算下一時(shí)刻估計(jì)值。文獻(xiàn)[3]指出,分布式擴(kuò)散算法的網(wǎng)絡(luò)估計(jì)性能都優(yōu)于分布式共識(shí)算法,收斂速度更快而且MSD更小。這里選用分布式擴(kuò)散LMS算法,并給出推導(dǎo)過程。
分布式擴(kuò)散LMS算法中,節(jié)點(diǎn)需要從自身以及鄰居節(jié)點(diǎn)的估計(jì)值中尋求對(duì)未知參數(shù)wo的估計(jì)。在每個(gè)t時(shí)刻,節(jié)點(diǎn)i對(duì)的估計(jì)值為wi(t),則下一時(shí)刻t+1的估計(jì)值的更新方程的遞歸表達(dá)式為
(4)
式中μi為節(jié)點(diǎn)i的LMS算法步長。
(wi-wj(t))+o‖wi‖2
(5)
同樣的,可以將其在wi(t)處也用泰勒級(jí)數(shù)展開,可得
(wi-wj(t))+o‖wi‖2
(6)
隨后,將式(5)和式(6)都代入式(4)中,因?yàn)槿诤舷禂?shù)滿足式(2),則式(4)可以轉(zhuǎn)換為式(7)
(7)
式中 大括號(hào)內(nèi)部的式子是一個(gè)關(guān)于wi的函數(shù)f(wi)。為了得到wi(t+1),則需要求出使得f(wi)最小的wi
f′(wi)=0
(8)
則求解關(guān)于wi的方程(8),可得出wi(t+1)的分布式更新函數(shù)為
(9)
(10)
式(9)為適應(yīng)階段,式(10)為融合階段,分布式擴(kuò)散LMS算法可表示為圖3。
圖3 分布式擴(kuò)散LMS算法架構(gòu)
對(duì)于WSNs,第2章中的標(biāo)準(zhǔn)分布式擴(kuò)散LMS的網(wǎng)絡(luò)負(fù)載依然很高。而如果節(jié)點(diǎn)僅僅用自身估計(jì)值而不與鄰居節(jié)點(diǎn)合作,計(jì)算出的下一時(shí)刻估計(jì)值精確度不夠,整體網(wǎng)絡(luò)估計(jì)性能較差,很難滿足需求。本文提出的一種用于WSNs參數(shù)估計(jì)的分布式間歇型參數(shù)估計(jì)算法,該算法可根據(jù)網(wǎng)絡(luò)的估計(jì)精度需求,降低網(wǎng)絡(luò)整體通信負(fù)載。
為進(jìn)一步降低通信負(fù)載進(jìn)而降低網(wǎng)絡(luò)的能量消耗,間歇型參數(shù)估計(jì)算法中節(jié)點(diǎn)不需要在每個(gè)時(shí)刻t都進(jìn)行信息交換。間歇型參數(shù)估計(jì)中引入了一個(gè)間歇參數(shù)P來決定節(jié)點(diǎn)是否在此時(shí)刻發(fā)送自身的本地估計(jì)值。網(wǎng)絡(luò)正常工作時(shí)P個(gè)單位時(shí)刻作為一個(gè)單位循環(huán)。在一個(gè)循環(huán)中,前P-1個(gè)時(shí)刻節(jié)點(diǎn)只有適應(yīng)過程,僅用自身估計(jì)值更新下一時(shí)刻的估計(jì)值,最后一個(gè)時(shí)刻與鄰居之間交換信息,觸發(fā)融合階段,用融合后的估計(jì)值用來更新。
簡單的說,節(jié)點(diǎn)僅僅在時(shí)刻“tmodP=0”時(shí)為選中狀態(tài),與鄰居節(jié)點(diǎn)交換自身的估計(jì)信息。通過間歇型參數(shù)估計(jì)算法,通信負(fù)載降低至標(biāo)準(zhǔn)擴(kuò)散算法的1/P。為了提高網(wǎng)絡(luò)的估計(jì)性能,這里提出的間歇型參數(shù)估計(jì)算法將步長μ歸一化處理,用μ′代替標(biāo)準(zhǔn)擴(kuò)散算法中μ,μ′用式(11)計(jì)算
(11)
算法步驟如算法1。
算法1間歇式參數(shù)估計(jì)算法
Initialize:
Set the alternative parameter P;
Foreach node iWi(0)=0 for whereWiisMx 1 estimation vector
end
Running:
Foreach time instant t=1,2,...,T
Foreach node i=1,2,…,N
IftmodP=0
Combination:
elseφi(t+1)=wi(t)
end
Adaptation:
end
end
為了與標(biāo)準(zhǔn)LMS算法對(duì)比,考慮網(wǎng)絡(luò)拓?fù)漭^為復(fù)雜的情況,仿真中采用的WSNs有N=50個(gè)節(jié)點(diǎn),拓?fù)錇殡S機(jī)生成,具體圖4所示。
圖4 仿真拓?fù)鋱D
圖4中,端點(diǎn)表示傳感器節(jié)點(diǎn),線段表示節(jié)點(diǎn)之間的通信鏈路。在仿真中,輸入回歸向量為AR-1[10]過程ui(t)=xi(t)+ρiui(t-1)的一個(gè)采樣ui(t)=[ui(t)ui(t-1)…ui(t-M+1)]T,相關(guān)系數(shù)ρi=0.5,xi(t)是一個(gè)σx,i=1的白噪聲過程。參數(shù)M=10,則回歸輸入向量ui(t)為10×1的向量。仿真中時(shí)間t=1,2,...,T,其中,T=2 000。每個(gè)節(jié)點(diǎn)的噪聲vi(t)是一個(gè)0均值的高斯過程。設(shè)每個(gè)節(jié)點(diǎn)的輸入回歸向量和噪聲都在時(shí)間和空間上相互獨(dú)立。
圖5 網(wǎng)絡(luò)平均MSD對(duì)比
圖5中可以看出,在時(shí)間t大于300時(shí),幾種算法的MSD均可達(dá)到穩(wěn)定狀態(tài)。三種算法對(duì)比,本文提出的間歇型參數(shù)估計(jì)算法和NDLMS低于-40 dB,無合作NLMS算法低于-40 dB。仿真中,可以看出,NDLMS有最好的MSD性能,當(dāng)P=2時(shí),間歇型參數(shù)估計(jì)的性能接近于NDLMS。隨著P的增大,MSD上升,節(jié)點(diǎn)平均估計(jì)性能降低。三種算法的收斂速度幾乎相同。
為評(píng)估穩(wěn)定狀態(tài)的估計(jì)性能,取后500個(gè)時(shí)刻的數(shù)據(jù)描述穩(wěn)定狀態(tài),將這500個(gè)時(shí)刻的瞬時(shí)值求平均。定義節(jié)點(diǎn)i的穩(wěn)定狀態(tài)MSDi為:MSDi(dB)=20log(E‖w-wi(t)‖2)。圖6可以看出間歇型參數(shù)估計(jì)算法的穩(wěn)定狀態(tài)的MSD在P=2,5,8時(shí),約在-50,-46,-44 dB。NDLMS約在-53 dB,無合作NLMS在-36 dB。三種算法的平均數(shù)值比較如表2所示,當(dāng)P=2,5,8時(shí),間歇型參數(shù)估計(jì)算法可達(dá)到NDLMS算法MSD穩(wěn)定狀態(tài)估計(jì)性能的94.3 %,84.4 %和82 %。
圖6 各節(jié)點(diǎn)穩(wěn)定狀態(tài)的MSD性能對(duì)比
圖5、圖6和表1可以看出:交替系數(shù)P較小時(shí)的間歇型參數(shù)估計(jì)算法的收斂速度和MSD性能較好,可接近于NDLMS。表2為平均單位時(shí)刻傳輸?shù)臄?shù)據(jù)包數(shù)量對(duì)比,其中,NDLMS算法的數(shù)量為25 000。無合作NLMS中節(jié)點(diǎn)不與其他節(jié)點(diǎn)通信不作考慮。由于間歇型參數(shù)估計(jì)不是每時(shí)每刻都需要在鄰居節(jié)點(diǎn)之間交換估計(jì)值,其所需傳輸?shù)臄?shù)據(jù)包數(shù)量在P=2,5,8時(shí)分別為12 500,5 000,3 125。
表1 穩(wěn)定狀態(tài)下的平均MSD/dB對(duì)比
表2 平均通信負(fù)載對(duì)比
WSNs中NDLMS算法的通信負(fù)載較大,而無合作NLMS算法的性能又很難滿足估計(jì)性能要求,這里提出的間歇型參數(shù)估計(jì)算法在大大降低通信負(fù)載的同時(shí),網(wǎng)絡(luò)估計(jì)性能接近于NDLMS。表2是仿真中NDLMS和間歇型參數(shù)估計(jì)的平均通信負(fù)載對(duì)比。通過間歇型參數(shù)估計(jì),通過對(duì)特定網(wǎng)絡(luò)設(shè)置合適的交替參數(shù),可以在網(wǎng)絡(luò)的估計(jì)性能和通信負(fù)載二者中找到平衡。
本文首先介紹了參數(shù)估計(jì)的背景,給出了WSNs參數(shù)估計(jì)問題的數(shù)學(xué)模型。隨后,深入地介紹了集中式LMS的算法和分布式LMS算法的優(yōu)劣,指出WSNs中更適用與分布式算法。為進(jìn)一步降低網(wǎng)絡(luò)的通信負(fù)載,提出了間歇型參數(shù)估計(jì)算法,并給出間歇型參數(shù)估計(jì)算法的運(yùn)行步驟。最后,仿真表明,間歇型參數(shù)估計(jì)算法對(duì)一般的參數(shù)估計(jì)可在損失少許網(wǎng)絡(luò)估計(jì)性能的情況下大大降低網(wǎng)絡(luò)通信負(fù)載。