王艷
(1.西安歐亞學院 金融學院, 西安 710061; 2.西安交通大學 軟件學院, 西安 710061)
無線傳感器技術的快速發展,使得新的網絡結構和算法被不斷提出,分布式網絡估計通過節點間的信息共享增強了計算的魯棒性和估計的準確性,在精確農業、環境監測等實際工程中廣泛應用[1],分布式估計的性能,直接影響著能否對未知系統更加準確快速的進行估計,而將自適應濾波與無線傳感器網絡有效結合,成為分布式估計的研究熱點[2]。為此,Lopes等人[3]將擴散算法與LMS算法結合,提出了擴散LMS算法,受到廣泛關注,但其基于節點能量和數據通信是無限制的。Cattivelli等人[4]提出基于擴散式的DLMS算法,能夠有效地實現分布式估計,但在實際工程中常遇到脈沖噪聲干擾,估計性能降低;Wen等人[5]提出DLMS/F算法進行改進,盡管有效處理了脈沖干擾,但是穩定性脆弱;Ni等人[6]通過對誤差函數進行符號函數化提出DSELMS算法,算法結構簡單且在處理脈沖噪聲時性能非常優越,但其算法穩態誤差大;陳文曉等[7]提出了在擴散LMS算法中先后采用符號函數和改進的符號函數量化策略,解決網絡中數據運算量大及傳輸速率受限問題;張勇剛[8]等提出了一種SDVTNLMS算法,解決固定階數算法不能很好解決階數未知或時變參數的問題。
綜上所述,如何設計分布式自適應濾波算法,使其具備快速收斂和低穩態誤差,是目前急需解決的問題。為此設計了一種基于未知參數估計值約束的改進LMS自適應濾波算法,通過相鄰迭代的參數估計值約束迭代步長,保證算法的快速收斂和低穩態誤差,仿真實驗結果驗證了算法的有效性。
圖1所示為空間分布的由K個傳感器組成的強連接網絡,其中第k個傳感器在時刻i測量值為dk(i),dk(i)∈dk(i),其相應的1×M維回歸向量為Xk(i),Xk(i)與dk(i)都是零均值的隨機過程,則自適應濾波的目標為通過{Xk(i),dk(i)}估計分布式網絡中每個節點的參數向量W0∈CM×1,則第k個節點的輸出信號測量值為:
(1)
圖1 K個傳感器組成的分布式網絡
則圖中節點的參數向量W0∈CM×1可以通過式(2)傳統LMS算法所示的全局最優代價函數計算。
(2)
式中E(·)表示計算數據期望。擴散LMS算法[3]將當前時刻節點k的鄰居節點參數估計值Wj(i-1),j∈Nk融入到下一時刻k局部自適應濾濾器中進行W0的估計。其局部迭代方法為:
(3)
ek(i)=dk(i)-Xk(i)Φk(i-1)
(4)
Wk(i)=Φk(i-1)+μkek(i)Xk(i)
(5)
式中 常數μk>0為迭代步長;Nk為節點k的鄰居節點集合(包括k節點自身),如圖1所示,其為與節點k有直接通信鏈路關系的節點的集合,正實數ck,j為各節點的融合權值且滿足:
∑j∈Njck,j=1,ck,j=0 ifj?Nn
(6)
擴散LMS算法簡單受到廣泛關注,但其基于節點能量和數據通訊是無限制的假設,與實際不一致[9-10],為此引入未知參數估計值約束,提出基于參數估計值約束的分布式自適應濾波算法。
在擴散LMS自適應濾波基礎上,對全局最優代價函數(2)使用式(7)所示的局部最優代價函數:
(7)
式中通過將未知參數估計值約束加入到局部最優代價函數中,通過相鄰兩次迭代結果差控制迭代步進,以加快迭速率,減少計算量和節點通信量。
根據式(7)算法主要包括參數融合和自適應迭代兩部分,節點k的參數估計中間值:
(8)
式中μ0是收斂初始步長;δ是很小的正數,防止分母為0無意義;ek,i=dk(i)-Xk(i)Wk(i);φk是局部中間估計值。計算所有節點的中間值后,則節點局部參數估計值為:
(9)
式中Nk為節點k的鄰居節點集合;正實系數ck,j是融合權值,用來確定鄰居節點參數對節點k的貢獻度,且當j?Nk時,ck,j=0。
提出的分布式自適應網絡濾波算法流程如下:
初始化:對所有節點n的初始化參數都是{wk,-1=0},δ,μ。
設定非負的融合權重{ck,l}且滿足∑l∈Nkck,l=1,對每個節點都進行多次迭代。則第k個節點在第i次的迭代表達式為:
φk(i)=Wk(i-1)+
為了便于后面分析,先給出以下定義,系統參數真實值與估計值差值為:
Vk(i-1)=Wo-Wk(i-1)
(10)
Φk(i-1)=Wo-φk(i)
(11)
系統的所有系數估計值為:
W(i) = col {W1(i),W2(i),…,Wk(i)}
(12)
φ(i) = col {φ1(i),φ2(i),…,φk(i)}
(13)
由真實值與估計值差值組成的向量為:
V(i) = col {V1(i),V2(i),…,Vk(i)}
(14)
Φ(i) = col {Φ1(i),Φ2(i),…,Φk(i)}
(15)
則式(8)和(9)化簡式為:
Φ(i)=V(i-1)-ΓS(i)X(i)
(16)
V(i)=ATΦ(i)
(17)
式中?表示Kronecker乘積;
A={ck,j},A=A?Ik;
S(i)=diag(en(i)),S(i)=S(i)?Ik;
X(i) = col {X1(i),X2(i),…,Xk(i)};
Γ(i) =
結合式(16)和(17)可得式(18)。
V(i)=ATV(i-1)-ATΓS(i)X(i)
(18)
E[V(i)]=ATE[V(i-1)]-ATΓE{S(i)X(i)}
(19)
式(18)等號兩端取數學期望后,對于第k個傳感器,當取數據期望后的式(19)收斂,則有步長μ(i)的約束區間為:
(20)
即在式(19)所給定的區間內,分析式(18)的數據期望,可得E[Vi(∞)] = 0,表明所提算法能對目標進行有效地估計。
實驗驗證文中算法的性能,實驗環境為Inter(R) Core(TM) i5-2430M CPU @ 2.40 GHz、6.00 G內存,MATLAB R2016a軟件。實驗對比算法為:DSELMS[6]、DLMS[4]、DLMS/F[5]和文中算法(記為EILMS。在脈沖干擾下進行系統識別,系統長度L=15,噪聲為基于概率p(1)=Pr的Bernoulli序列,由模型v(i)=A(i)·I(i)生成,A(i)表示零均值、方差為0.01的高斯序列。信號采樣點數為10 000,蒙特卡洛次數為50。無線傳感器網絡由20個節點組成。采用均方誤差來衡量算法性能:
(21)
如圖2所示為實驗使用的網絡連接圖,其中 圖2(a)所示為第一組實驗網絡連接圖,當兩節點連接且距離L≤0.3時,認為是相互連通鄰居節點,Pr=0.1,圖2(b)所示為第二組實驗使用的網絡連接圖,當兩節點之間的連通概率大于或等于0.2時認為是相互連通的鄰居節點,Pr=0.03。
圖2 實驗采用的分布式網絡
圖3 實驗使用的信號和噪聲的方差
圖4和圖5所示為4種算法參數估計值MSD曲線,相比于DSELMS算法,EILMS算法穩態誤差更小;而與DLMS算法和DLMS/F算法相比,EILMS算法的收斂速度有明顯優勢,從兩組實驗結果可看出所提算法在收斂速度和穩態誤差方面都取得較好的效果,主要因為在算法運行初期Wk(i)較小,算法具有較快的收斂速度,而算法后期μ(i)與μ(i-1)相差不大,保證了算法具有較小的穩態誤差。
DSELMS算法由于直接對估計誤差en(i)進行非線性約束使其等效步長在收斂初期比較大,能夠快速收斂,但是其在穩態誤差方面性能表現不夠優越。同DSELMS算法原理相似,文中算法運行初期通過較小的預設Wk(i)值,從而使算法具有較快的收斂速度,而當算法趨于穩定時,通過調整抱定代步長,相比于DSELMS算法,又可獲得更小的穩態誤差。
圖4 參數估計值隨迭代數的MSD曲線
圖5 參數估計值隨迭代數的MSD曲線
從表1實驗結果可知:相比DSELMS、DLMS和DLMS/F算法,EILMS算法在保證收斂速度的同時,在穩態誤差方面分別改進了23.4 dB、3.1 dB和0.3 dB;22.9 dB、2.2 dB和1 dB。
表1 實驗中所得穩態誤差
在進行分布式估計時,為了同時具備快的收斂速度和低的穩態誤差,同時結構簡單又能處理受脈沖干擾的系統,提出一種適用于分布式網絡的通過系數估計值的范數值調整算法迭代步長的改進自適應濾波算法,分析了其收斂發性能。實驗結果表明,相比已有算法,文中算法性能更優。