程建民,張潤(rùn)蓮,2,秦明峰
(1.桂林電子科技大學(xué) 廣西無線寬帶通信與信號(hào)處理重點(diǎn)實(shí)驗(yàn)室,廣西 桂林 541004; 2.廣西高校云計(jì)算與復(fù)雜系統(tǒng)重點(diǎn)實(shí)驗(yàn)室,廣西 桂林 541004; 3.衛(wèi)星導(dǎo)航系統(tǒng)與裝備技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室,河北 石家莊 50081)
在傳統(tǒng)的LMS(Least Mean Square)算法[1]中,為提升算法的收斂速度,應(yīng)該盡可能選擇較大的步長(zhǎng)值;而為了減小算法的穩(wěn)態(tài)誤差,應(yīng)該盡可能選擇較小的步長(zhǎng)值。這一矛盾使得傳統(tǒng)的LMS算法必須在這二者之間進(jìn)行折中處理,導(dǎo)致算法性能不理想。
為解決該問題,研究者們?cè)诨诓介L(zhǎng)因子調(diào)整原則的基礎(chǔ)上,通過改變步長(zhǎng)因子的表現(xiàn)形式來改進(jìn)LMS算法的性能,經(jīng)典的算法有基于對(duì)數(shù)函數(shù)[2]、基于雙曲正弦函數(shù)的變步長(zhǎng)LMS算法[3]和固定步長(zhǎng)算法[4]等,但均存在步長(zhǎng)值與穩(wěn)態(tài)誤差之間的矛盾。針對(duì)該矛盾,文獻(xiàn)[4]通過結(jié)合Sigmoid函數(shù)和正弦函數(shù)對(duì)步長(zhǎng)因子進(jìn)行調(diào)節(jié)控制;文獻(xiàn)[5]通過引入反饋控制函數(shù)建立步長(zhǎng)因子與誤差信號(hào)的非線性函數(shù)模型改進(jìn)LMS算法,兼顧收斂速度和穩(wěn)態(tài)誤差性能;文獻(xiàn)[6]通過引入雙曲正切函數(shù)控制步長(zhǎng)因子,提高算法的抗噪聲能力;文獻(xiàn)[7-8]通過權(quán)系數(shù)的變化來控制步長(zhǎng)因子的變化,以保證當(dāng)系統(tǒng)達(dá)到穩(wěn)態(tài)時(shí)停止迭代;文獻(xiàn)[9]通過調(diào)整抽頭長(zhǎng)度的方式,獲取最優(yōu)維納解。上述算法在收斂速度和穩(wěn)態(tài)誤差方面有所改進(jìn),但計(jì)算量相對(duì)較高。
針對(duì)上述問題,本文給出了一種基于雙曲正弦函數(shù)形式的改進(jìn)LMS算法,該算法通過引入線性函數(shù)與步長(zhǎng)函數(shù)相乘,改變步長(zhǎng)函數(shù)特性,實(shí)現(xiàn)對(duì)步長(zhǎng)值的自適應(yīng)控制,提升收斂速度,降低算法復(fù)雜度,提高抗噪能力。
LMS算法是線性自適應(yīng)濾波器算法,是一種以最小均方誤差準(zhǔn)則(Minimum Mean Square Error,MMSE)為設(shè)計(jì)準(zhǔn)則的瞬時(shí)值估計(jì)梯度矢量的方法,使濾波器的輸出信號(hào)與期望響應(yīng)之間的均方誤差達(dá)到最小。自適應(yīng)濾波器的濾波原理如圖1所示。
圖1 自適應(yīng)陷波器基本原理
圖1中,X(n)、v(n)、d(n)、y(n)、e(n)分別為實(shí)際輸入信號(hào)、噪聲信號(hào)、期望信號(hào)、輸出信號(hào)及誤差信號(hào)。LMS算法步驟為:
① 權(quán)值系數(shù)初始化:W(0)=0;
② 濾波器的輸出:y(n)=WT(n)×X(n);
③ 濾波器n時(shí)刻的誤差:e(n)=d(n)-y(n);
④ 抽頭權(quán)向量:W(n+1)=W(n)+μ×e(n)×X(n);
⑤ 重復(fù)步驟②~④,直到W(n+1)的值趨于穩(wěn)定。
其中步長(zhǎng)因子u對(duì)LMS算法的性能起著決定性的作用,其收斂的條件是:01.2 常用的LMS算法
為了使LMS算法的收斂速度、穩(wěn)態(tài)誤差和抗噪聲能力均能取得較好的性能表現(xiàn),下面給出幾種常用的LMS算法,如基于對(duì)數(shù)函數(shù)、基于雙曲正弦函數(shù)的變步長(zhǎng)LMS算法和固定步長(zhǎng)算法,各算法的步長(zhǎng)因子和誤差信號(hào)關(guān)系曲線如圖2所示。
圖2 e(n)和u(n)關(guān)系曲線
1.2.1基于對(duì)數(shù)函數(shù)的變步長(zhǎng)LMS算法
文獻(xiàn)[2]在對(duì)數(shù)函數(shù)y=loga(x)的基礎(chǔ)上對(duì)其進(jìn)行變化調(diào)整,建立了步長(zhǎng)因子u(n)與誤差信號(hào)e(n)之間的關(guān)系表達(dá)式:
μ(n)=a×lg[b×|e(n)c|]。
(1)
由圖2可知,e(n)為時(shí)0,u(n)不為0,存在誤差;而且當(dāng)e(n)趨近于0時(shí),函數(shù)底部變化太快,這會(huì)導(dǎo)致步長(zhǎng)因子錯(cuò)過最佳值;同時(shí),該算法存在指數(shù)運(yùn)算,計(jì)算復(fù)雜度較高。
1.2.2基于雙曲正弦函數(shù)的變步長(zhǎng)LMS算法
文獻(xiàn)[3]在雙曲正弦函數(shù)y=sinh(x)=(ex-e-x)/2的基礎(chǔ)上,其進(jìn)行變換調(diào)整,建立了步長(zhǎng)因子u(n)與誤差信號(hào)e(n)之間的關(guān)系表達(dá)式:
μ(n)=a×|sinh[b×e(n)c]|。
(2)
由圖2可知,當(dāng)e(n)較大時(shí),u(n)變化較快;當(dāng)e(n)趨近于0時(shí),函數(shù)底部變化太緩慢,即誤差信號(hào)不為0時(shí)u(n)已經(jīng)為0,造成了較大的穩(wěn)態(tài)誤差;同時(shí)該算法存在指數(shù)運(yùn)算,計(jì)算復(fù)雜度較高。
1.2.3固定步長(zhǎng)LMS算法
固定步長(zhǎng)LMS算法,其步長(zhǎng)值在算法迭代過程中為一個(gè)固定值,據(jù)文獻(xiàn)[4]可知,一般取u=0.01;由圖2可知,無論當(dāng)前系統(tǒng)的誤差值如何變化,步長(zhǎng)值u一直維持不變,即固定步長(zhǎng)。
文獻(xiàn)[7]中提出了步長(zhǎng)因子u調(diào)整原則:在自適應(yīng)參數(shù)發(fā)生變化時(shí)或者算法的起步收斂階段,應(yīng)該使步長(zhǎng)值u較大,使得算法具有較快的收斂速度;而在算法達(dá)到收斂后,此時(shí)系統(tǒng)的權(quán)值矢量已接近最優(yōu)值,步長(zhǎng)值u應(yīng)該維持很小的值,以達(dá)到很小的穩(wěn)態(tài)誤差。在滿足步長(zhǎng)因子調(diào)整原則的基礎(chǔ)上,LMS算法收斂速度越快,效率越高;收斂深度越深,穩(wěn)態(tài)誤差越小。因此,收斂速度和穩(wěn)態(tài)誤差是改進(jìn)LMS算法的主要方向,也是判定算法性能的重要指標(biāo)。
基于步長(zhǎng)因子的調(diào)整原則和算法性能需求,通過圖2分析可知,基于雙曲正弦函數(shù)形式控制的步長(zhǎng)因子曲線相比其他算法更符合步長(zhǎng)因子調(diào)整原則。由文獻(xiàn)[3]可知,基于雙曲正弦函數(shù)的變步長(zhǎng)LMS算法形式簡(jiǎn)單、計(jì)算量小,當(dāng)u(n)與e(n)滿足一定函數(shù)關(guān)系時(shí),算法的收斂速度和穩(wěn)態(tài)誤差都能取得較好的表現(xiàn)。因此,本文采用雙曲正弦函數(shù)控制步長(zhǎng)因子,并對(duì)其過早達(dá)到平穩(wěn)狀態(tài)(即誤差信號(hào)e(n)不為0時(shí),u(n)已經(jīng)無限接近于0)這一缺點(diǎn)進(jìn)行改進(jìn)。
針對(duì)文獻(xiàn)[3]中算法存在的問題,本文改進(jìn)思路如下:將步長(zhǎng)值與迭代過程中的某種狀態(tài)變量相關(guān)聯(lián),利用該狀態(tài)變量的動(dòng)態(tài)變化來調(diào)整步長(zhǎng)值的變化。其中,狀態(tài)變量可以是瞬時(shí)誤差、瞬時(shí)誤差的平方、相鄰2次迭代的瞬時(shí)誤差的相關(guān)函數(shù)[10]、誤差與輸入矢量的相關(guān)性[11]等。該狀態(tài)變量在開始收斂時(shí)較大,而在收斂后較小,因此滿足動(dòng)態(tài)控制步長(zhǎng)值的要求。
由于瞬時(shí)誤差e(n)相比其平方和其相鄰2次相關(guān)函數(shù)具有獲取容易、結(jié)構(gòu)簡(jiǎn)單、計(jì)算量小等優(yōu)勢(shì)。因此,本文選用瞬時(shí)誤差信號(hào)e(n)作為狀態(tài)變量并與步長(zhǎng)值相關(guān)聯(lián),從而實(shí)現(xiàn)對(duì)步長(zhǎng)值的動(dòng)態(tài)調(diào)整。
根據(jù)函數(shù)f(x)=1+|x|性質(zhì)可知,該函數(shù)關(guān)于y軸對(duì)稱,最小值為1。若將上述瞬時(shí)誤差作為函數(shù)f(x)=1+|x|的自變量,可得函數(shù)f[e(n)]=1+|e(n)+b|,其中,b用來調(diào)節(jié)函數(shù)曲線底部浮動(dòng)幅度。將式(2)與該函數(shù)相乘,則變步長(zhǎng)函數(shù)的曲線底部值增加,可以達(dá)到改變函數(shù)曲線底部特性的目的,防止其過早達(dá)到穩(wěn)態(tài)。
此外,針對(duì)式(2),文獻(xiàn)[3]中的實(shí)驗(yàn)測(cè)試表明,在指數(shù)c=1時(shí),算法復(fù)雜度最低。因此,本文選取c=1,這使得函數(shù)f[e(n)]=1+|e(n)+b|與式(2)的乘積,去掉了指數(shù)運(yùn)算,從而降低算法復(fù)雜度。改進(jìn)的變步長(zhǎng)函數(shù)表達(dá)式具體如下:
μ(n)=a×|sinh[e(n)]|×[1+|e(n)+b|],
(3)
式中,參數(shù)a用來調(diào)節(jié)曲線的幅值。改進(jìn)的變步長(zhǎng)LMS算法表達(dá)式為:
為驗(yàn)證本文改進(jìn)算法性能,使用Matlab2014仿真軟件,并采用文獻(xiàn)[12]中所列的實(shí)驗(yàn)條件進(jìn)行仿真實(shí)驗(yàn),測(cè)試算法的收斂速度、均方誤差、抗噪能力以及計(jì)算復(fù)雜度,具體條件如下:
① 二階自適應(yīng)濾波器系統(tǒng);
② 輸入信號(hào)X(n)是零均值、方差為1的高斯白噪聲;
③ 高斯白噪聲的方差為0.04、均值為0,且與輸入信號(hào)無關(guān);
④ 實(shí)驗(yàn)采樣點(diǎn)數(shù)N=500,未知系統(tǒng)的FIR系數(shù)為W=[0.8,0.5]T。
為減少實(shí)驗(yàn)誤差,實(shí)驗(yàn)將取200次仿真實(shí)驗(yàn)數(shù)據(jù)的平均值,繪制其收斂曲線。
改進(jìn)的變步長(zhǎng)函數(shù)表達(dá)式(3)中的參數(shù)a可以調(diào)節(jié)函數(shù)曲線幅值的大小,若a值過小,算法在還未達(dá)到最小穩(wěn)態(tài)誤差時(shí),步長(zhǎng)值已為零,將導(dǎo)致算法收斂速度過慢;若a值過大,算法曲線底部變化較快,會(huì)導(dǎo)致錯(cuò)過最佳步長(zhǎng)值。參數(shù)b調(diào)節(jié)函數(shù)曲線底部浮動(dòng)幅度,若b值過大,可能導(dǎo)致函數(shù)曲線難以收斂,誤差較大;若b值過小,此時(shí)并不能對(duì)其過早達(dá)到穩(wěn)態(tài)的這一不足進(jìn)行優(yōu)化。
根據(jù)文獻(xiàn)[13-14]及經(jīng)驗(yàn)認(rèn)知,a和b的最佳取值范圍均為(0,1]。在實(shí)驗(yàn)測(cè)試中,對(duì)a、b分別從0.1開始,以0.1步長(zhǎng)增長(zhǎng)組合測(cè)試算法的步長(zhǎng)因子和誤差信號(hào)關(guān)系曲線,測(cè)試結(jié)果顯示,在a逼近0.1時(shí),初始步長(zhǎng)值較小,容易錯(cuò)過最佳步長(zhǎng)值;在a逼近1時(shí),初始步長(zhǎng)值較大,計(jì)算復(fù)雜度高。故令a=0.5,再測(cè)試b分別取不同值時(shí)的關(guān)系曲線,其顯示b太小時(shí)函數(shù)曲線底部變化太快,b太大則會(huì)產(chǎn)生突變,結(jié)果如圖3所示。
圖3 參數(shù)a與b組合取值的關(guān)系曲線
基于上述實(shí)驗(yàn)對(duì)比,本文算法參數(shù)取值為a=0.5,b=0.5。
基于同樣的實(shí)驗(yàn)條件,對(duì)比測(cè)試了本文改進(jìn)算法與基于對(duì)數(shù)函數(shù)算法、基于雙曲正弦函數(shù)和固定步長(zhǎng)因子算法的收斂速度和抗噪能力。基于對(duì)數(shù)函數(shù)算法中,取a=1 000、b=0.02、c=2;基于雙曲正弦函數(shù)中,a=0.006、b=5、c=1;固定步長(zhǎng)因子算法中其步長(zhǎng)因子取0.01。
3.3.1收斂速度測(cè)試實(shí)驗(yàn)
文獻(xiàn)[15]表明,通過均方誤差和迭代次數(shù)的關(guān)系曲線可以較好地反映算法的收斂速度,算法最先達(dá)到穩(wěn)態(tài),且所需迭代次數(shù)最少,則其收斂速度最佳?;谏鲜鲞x取的參數(shù),各算法的測(cè)試結(jié)果如圖4所示。
圖4 4種算法收斂速度對(duì)比
圖4結(jié)果表明,固定步長(zhǎng)算法由于其步長(zhǎng)值固化,收斂速度最慢;基于對(duì)數(shù)函數(shù)算法,由于其對(duì)數(shù)函數(shù)性質(zhì),步長(zhǎng)函數(shù)的變化太快,收斂較慢;基于雙曲正弦函數(shù)算法由于其存在指數(shù)運(yùn)算,收斂速度較快。由式(3)可知,本文算法通過改變基于雙曲正弦函數(shù)算法的步長(zhǎng)函數(shù)性質(zhì)達(dá)到改進(jìn)目的,其步長(zhǎng)值大于雙曲正弦函數(shù)算法步長(zhǎng)值,其收斂速度更快。
3.3.2抗噪能力測(cè)試實(shí)驗(yàn)
由文獻(xiàn)[16]可知,均方誤差能夠評(píng)判算法的抗噪能力,在算法收斂的前提下,均方誤差越小,算法抗噪能力越好?;谏鲜鰧?shí)驗(yàn)條件,在自適應(yīng)濾波器的輸入信號(hào)中加入高斯白噪聲,使信號(hào)信噪比[17]SNR分別為5 dB和15 dB,將各算法500次迭代后產(chǎn)生的均方誤差值求其均值,測(cè)試結(jié)果如圖5所示。
圖5 4種LMS算法抗噪能力對(duì)比
圖5結(jié)果表明,信噪比越高,各算法抗噪能力越強(qiáng)。在SNR=5時(shí),信噪比較低,各算法對(duì)噪聲均較為敏感,固定步長(zhǎng)算法由于步長(zhǎng)值固化,收斂速度慢,抗噪性能最差;基于雙曲正弦函數(shù)和對(duì)數(shù)函數(shù)算法的收斂速度均優(yōu)于固定步長(zhǎng)算法,達(dá)到穩(wěn)態(tài)后,均方誤差均值相近,其抗噪能力均優(yōu)于固定步長(zhǎng)算法。在SNR=15時(shí),信噪比較高,各算法的均方誤差均值明顯下降,符合通信理論基本原理。文獻(xiàn)[18-19]中指出,誤差信號(hào)中的噪聲自相關(guān)性一般較強(qiáng),互相關(guān)性較差。本文算法利用噪聲較差的互相關(guān)性,使用步長(zhǎng)函數(shù)將其去除,降低噪聲對(duì)步長(zhǎng)的影響,使得本文算法在兩種信噪比下的均方誤差均值都最小,具有較好的抗噪能力。
本文介紹了幾種常用的變步長(zhǎng)LMS自適應(yīng)濾波算法,并針對(duì)基于雙曲正弦函數(shù)LMS自適應(yīng)濾波算法過早達(dá)到平穩(wěn)狀態(tài)及計(jì)算開銷[20]問題,給出了改進(jìn)方法。該方法基于步長(zhǎng)因子與瞬時(shí)誤差信號(hào)建立雙曲正弦函數(shù)關(guān)系,通過改變函數(shù)性質(zhì),使算法性能得以改善。仿真測(cè)試結(jié)果表明,改進(jìn)方法具有較好的收斂速度和抗噪聲能力。在實(shí)際工程應(yīng)用中,可將該算法應(yīng)用于自適應(yīng)濾波器的設(shè)計(jì)。