陳 凰,陳 睿,鄺祝芳,黃華軍
(1.中南林業科技大學 計算機與信息工程學院,長沙 410004;2.湖南財政經濟學院 信息技術與管理學院,長沙 410205)
分布式網絡上的自適應信號處理十分重要,其涉及到分布式噪聲消除、自適應控制、目標檢測、環境監測等[1-3]多個應用領域,這些應用領域需要通過分散的實時數據處理。自適應濾波器能夠在未知環境中有效工作,跟蹤輸入信號的時變特征,采取特定算法自動地調整濾波器系數,使其達到最佳的濾波效果。自適應濾波被認為是分布式網絡上數據處理和數據估計的有效方法,將自適應濾波與分布式網絡有效結合,是當前分布式估計研究的熱點。
最小均方(Least Mean Square,LMS)自適應濾波算法具有結構簡單、易于實現、計算復雜度低和穩定性好等優點,可應用于系統辨識、噪聲消除、自適應均衡、線性預測等很多領域。國內外學者對LMS算法進 行深入研究,提 出NLMS 算 法[4-5]、去相關PNLMS 算法[6]、改進變步長LMS 算法[7-8]、變步長頻域LMS 算法[9]等諸多經典算法。運用分布式的方式實施LMS 算法,可以有效地估計分布式網絡上的目標參數,文獻[10-12]提出將擴散策略與LMS 相結合的擴散LMS(Diffusion LMS,DLMS)算法,其結構簡單穩健,受到廣泛關注。在分布式估計中存在的噪聲會導致數據估計和信號處理不準確,因此研究分布式估計噪聲處理的方法具有很好的應用價值和重要研究意義。文獻[13]提出改進的分布式擴散符號LMS 算法,先后采用符號函數和改進的符號函數量化策略,實現對誤差和估計信號的量化,從而可解決網絡中數據運算量大和傳輸速率受限的問題,但當噪聲環境變得復雜時,運算量也會隨之增加。文獻[14]對DLMS 算法進行歸一化,提出DNLMS 算法,在消除噪聲干擾的同時適當提高算法的收斂速度。為提高DNLMS 算法對高度相關信號的收斂速度,文獻[15]提出擴散結合權重約束去相關NLMS算法。針對含有噪聲的回歸向量,文獻[16]提出用偏差消除的擴散方法來消除噪聲。此外,多數學者還致力于噪聲環境下的特定節點[17]和多任務網絡[18]擴散LMS 算法的研究,例如偏差補償和平均估計偏差補償算法[17-19],但算法的全局均方偏差還可以再進一步優化。
由于上述擴散算法在處理噪聲估計未知系統脈沖響應時,是結合觀測數據本身進行抽頭系數的自適應更新,計算復雜度較高,本文結合文獻[20]基于相關函數處理的方法,提出一種頻率域相關性分布式擴散最小均方(FCDLMS)算法。通過輸入信號的自相關函數和輸入信號與期望信號的互相關函數代替觀測數據本身,消除期望信號中的噪聲干擾,在此基礎上提出相關性分布式擴散LMS(CDLMS)算法,并將算法擴展至頻率域,在頻率域中使用乘法運算對抽頭系數進行更新,以減少計算復雜度。
本文考慮由N個節點組成的無線傳感器網絡(WSN)[21]監測區域,如圖1 所示。其中WSN 用于測量監測區域內的未知系統脈沖響應向量w。

圖1 N 個節點組成的WSNFig.1 WSN composed of N nodes
在分布式網絡中,節點k在時刻n的觀測數據為{xk(n),dk(n)},假設系統模型為:

其中:k∈[1,N];dk(n)表示期望信號;xk(n)表示輸入信號,且xk(n)=[xk(n),xk(n+1),…,xk(n+M-1)]T(M是自適應濾波器的抽頭數,(·)T表示轉置運算符);νk(n)是方差為的加性噪聲;w是大小為M×1 的待估計的未知系統脈沖響應向量。
假設自適應濾波器的抽頭系數向量為h,h=[h0(n),h1(n),…,hM-1(n)],則自適應濾波器的輸出信號yk(n)表示為:

那么,誤差信號ek(n)為:

DLMS 算法有先適應后融合(ATC)和先融合后適應(CTA)兩種擴散策略。與CTA-DLMS 算法相比,ATC-DLMS 具有更低的穩態誤差和更快的收斂速度。因此,本文算法主要基于ATC 實現。
DLMS 算法的ATC 擴散策 略[22]如 圖2 所 示。ATC-DLMS 算法由適應、交換、融合3 個階段組成。首先,每個節點利用其在時刻n的觀測數據信息,適應其當前的抽頭系數估計以獲得中間估計向量;其次,每個節點與其相鄰節點交換中間估計向量;最后,每個節點結合中間估計向量以獲得新的抽頭系數估計。

圖2 DLMS 算法的ATC 擴散策略Fig.2 ATC diffusion strategy of DLMS algorithm
ATC-DLMS 算法[22]的抽頭更新公式如下:

其中:‖·‖2表示歐幾里得范數;μk是用于抽頭系數更新的恒定步長值,且滿足0 <μk<1;φk(n)是節點k在n時刻的抽頭系數的中間估計;Nk是節點k包括它本身的鄰居節點數;ck,1是非負的融合系數,且要滿足
分布式估計的目標是通過分布式傳感器獲得的觀測值,找到監測區域內未知系統脈沖響應參數。
針對DLMS 算法在估計未知系統脈沖響應時易受噪聲干擾的問題,本文提出一種CDLMS 算法。該算法建立在輸入信號和噪聲信號不相關的基礎上,利用不相關信號間的相關性趨于零的特性消除期望信號中的噪聲干擾。CDLMS 算法結構如圖3 所示,觀測數據{xk(n),dk(n)}本身由輸入信號的相關函數{Rxxk,Rdxk}代替,Rxxk表示輸入信號本身的自相關函數,Rdxk表示輸入信號與期望信號之間的互相關函數。

圖3 CDLMS 算法流程Fig.3 Procedure of CDLMS algorithm
自相關函數和互相關函數的表達式如下:

結合式(1)、式(2)、式(6)和式(7),且xk(n)與νk(n)之間沒有相關性,Rvx,k(n,i)≈0,則互相關函數Rdx 也可表示為:

根據自適應濾波器輸入信號的自相關值估算Rdx,為了算法能更快收斂,對M個延時都進行估計。因此,自適應濾波器的輸出估計值被定義為:

所以誤差信號ek(n,i)被計算為:

定義CDLMS 算法的代價函數為互相關函數Rdxk與其估計值之間的滯后誤差的平方之和:

最小均方誤差(MSE)的負梯度向量為:

其中:

是自相關函數的Toeplitz 矩陣。
因此,最陡梯度算法為:

對式(13)進行標準化以保證足夠的收斂性,因此:

其中:Tr(·)表示矩陣的跡。
為降低CDLMS 算法的計算復雜度,將CDLMS算法擴展到頻率域,本文FCDLMS 算法流程如圖4所示。在頻域中抽頭更新使用乘法運算而不是傳統卷積運算,能極大地減少計算量。

圖4 FCDLMS 算法流程Fig.4 Procedure of FCDLMS algorithm
對式(6)和式(7)進行M維的快速傅里葉變換(FFT),得到:

其中:s是FFT 的頻域變量;W是復指數Fxx,k(n,s)是Rxxk(n,i)的FFT;Fdx,k(n,s)是Rdxk(n,i)的FFT。
與2.1 節類似,互相關函數FFT 的Fdx,k(n,s)可以表示為:

其中:Hs是未知系統脈沖響應向量w的FFT 的第s個元素。

定義抽頭系數更新的代價函數為:


所以FCDLMS 算法的最陡梯度算法可以表示為:


其中:ψk(n)是抽頭系數中間估計φk(n)在頻率域的表示。
將式(22)歸一化,得到式(25):

FCDLMS 算法過程如算法1 所示。
算法1FCDLMS 算法
初始化:所有節點k的初始化參數都是h0=0,μk。
任意節點k,k=1,2,…,N,任意時刻n,根據觀測值{xk(n),dk(n)},重復操作:
1)計算輸入信號的自相關函數和互相關函數:

2)對相關函數進行快速傅里葉變換(FFT):

3)估計自適應濾波器頻率域的輸出值:

4)計算誤差信號:

5)適應本地估計。更新脈沖響應向量的中間估計:

6)融合本地估計。獲得脈沖響應向量最終估計:

其中:μk是節點k的恒定步長值,且μk∈(0,1);ck,1是非負的融合系數,且要滿足
從CDLMS 和FCDLMS 算法的結構可以看出,FCDLMS 算法與CDLMS 算法類似,只是FCDLMS算法是CDLMS 算法在頻域中的實現。而且,與卷積CDLMS 算法相比,FCDLMS 算法采用乘法運算,降低了計算復雜度。
FCDLMS 算法在節點k的計算量包括以下6 個步驟:
1)計算相關函數:需要2M次乘法和2M-2 次加法。
2)對自相關函數和互相關函數進行M維FFT:需要次乘法和2×(MlbM)次加法。
3)估計自適應濾波器頻率域的輸出值:需要M次乘法和0 次加法。
4)計算誤差信號向量:需要0 次乘法和1 次加法。
5)適應本地估計,更新脈沖響應向量的中間估計:需要3M+2 次乘法和2M次加法。
6)融合本地估計:
(1)M維快速 傅里葉 反變換(IFFT):需要次乘法和(MlbM)次加法。
(2)更新獲得脈沖響應向量最終估計:需要|Nk|M次乘法和(|Nk|-1)M次加法。
表1 所示為FCDLMS 算法的總的計算復雜度與CDLMS 和DLMS 算法的計算復雜度比較,可以看出,FCDLMS 算法的計算復雜度明顯低于CDLMS算法。

表1 節點k 處DLMS、CDLMS 和FCDLMS 算法每次迭代的計算復雜度比較Table 1 Comparison of the computational complexity of DLMS,CDLMS and FCDLMS algorithms at node k in each iteration
本文使用MATLAB 進行模擬來驗證所提算法的性能。假設由N=20 節點組成的分布式網絡如圖5 所示,輸入信號xk(n)是一個隨機信號,背景噪聲能量∈(0.005,0.02),如圖6 所 示。實驗的主要條件如下:

圖5 由20 個節點組成的分布式網絡拓撲Fig.5 Distributed network topology composed of 20 nodes

圖6 各個節點的背景噪聲能量Fig.6 Background noise energy of each node
1)自適應濾波器的抽頭系數權重向量初始值為全零。
2)濾波器抽頭數M=4。
3)步長值μk=0.03。

6)所有模擬曲線都是通過10 次MATLAB 運行結果平均生成的。
不同情況下各算法性能比較如下:
1)無噪聲情況下DLMS、CDLMS、FCDLMS 算法的性能比較
在沒有噪聲的情況下,本文測試了所提算法的性能,圖7 所示為MSD 收斂曲線。可以看出,在無噪聲時,CDLMS 和FCDLMS 算法的穩態MSD 和收斂速度相似,收斂到-110 dB 左右。與CDLMS 和FCDLMS 算法相比,DLMS 算法實現了較低的穩態MSD,大約為-295 dB。

圖7 DLMS、CDLMS、FCDLMS 算法在無噪聲情況下的性能比較Fig.7 Performance comparison of DLMS,CDLMS and FCDLMS algorithms in noise-free environments
2)噪聲情況下DLMS、CDLMS、FCDLMS 算法的性能比較
在噪聲環境中評估本文所提出算法的性能,圖8所示為MSD 仿真結果。可以看出,在噪聲存在的情況下,CDLMS 和FCDLMS 算法的收斂速度比DLMS 算法略快。而且,所提出的兩種算法都產生較低的穩態MSD,可以收斂至-70 dB,而DLMS 算法的穩態MSD 只能達到-43 dB 左右。基于第2 節的理論分析,仿真結果進一步證實了兩種算法的收斂和穩態性能優于DLMS 算法。相對于CDLMS 算法,FCDLMS 算法極大地降低了計算復雜度,為實際應用提供了可能性。

圖8 DLMS、CDLMS、FCDLMS 算法在噪聲情況下的性能比較Fig.8 Performance comparison of DLMS,CDLMS and FCDLMS algorithms in noisy environments
3)FCDLMS算法在不同濾波器抽頭數下的性能比較
當自適應濾波器抽頭數M分別為4、16、32 和64時,觀察FCDLMS 算法的性能。FCDLMS 算法在不同抽頭數下的MSD 收斂曲線如圖9 所示,當M=4時,穩態MSD 收斂至-70 dB;當M=64 時,穩態MSD收斂至-43 dB,仿真實驗數據說明,本文算法能夠較好地工作于多抽頭的復雜環境中。

圖9 FCDLMS 算法在不同濾波器抽頭數下的性能比較Fig.9 Performance comparison of FCDLMS algorithm with different filter taps
4)FCDLMS 算法在不同節點數下的性能比較
將FCDLMS 算法應用在不同節點數的網絡中進行比較,當N分別為20、40、60 和80 時,FCDLMS算法在不同節點數下的性能比較如圖10 所示。可以看出,隨著節點數量的增加,穩態MSD 變低,可以收斂到-70 dB~-78 dB 范圍內,表明FCDLMS 算法能夠適應節點數量較多的網絡。

圖10 FCDLMS 算法在不同節點數下的性能比較Fig.10 Performance comparison of FCDLMS algorithm with different number of nodes
5)FCDLMS 算法在不同噪聲能量范圍下的性能比較


圖11 FCDLMS 算法在不同噪聲能量范圍下的性能比較Fig.11 Performance comparison of FCDLMS algorithm with different ranges of noise energy
針對噪聲環境下分布式自適應網絡的系統脈沖響應參數估計問題,本文提出一種頻率域相關性分布式擴散最小均方(FCDLMS)算法。將DLMS 算法中輸入-輸入信號的自相關函數和輸入-期望信號的互相關函數作為新的輸入信號和期望信號,消除期望信號中的噪聲干擾,在此基礎上,提出CDLMS 算法,并在頻率域中應用該算法,通過使用乘法運算來自適應地更新抽頭系數,從而減少計算復雜度。實驗結果表明,與DLMS 算法相比,FCDLMS 算法在噪聲環境下性能較好,對未知參數的估計精度更高,同時也能較好地適應多抽頭數、多節點數、強噪聲的復雜環境。后續將對變步長算法進行研究,加快FCDLMS 算法的收斂速度,同時降低穩態誤差。