伍彩云,翁晶晶
(沈陽(yáng)理工大學(xué) 裝備工程學(xué)院,沈陽(yáng)110159)
在噪聲控制中,自適應(yīng)噪聲抵消系統(tǒng)在外部干擾源特性未知、傳遞途徑不斷變化以及待測(cè)對(duì)象和背景噪聲波形相近的情況下,能夠有效地消除外界噪聲信號(hào)的干擾,從而提高信噪比[1]。傳統(tǒng)最小均方(Least Mean Square,LMS)算法是目前最基礎(chǔ)的自適應(yīng)濾波算法,其結(jié)構(gòu)簡(jiǎn)單,易于實(shí)現(xiàn),應(yīng)用廣泛。算法的步長(zhǎng)因子為定值,需要人為提前設(shè)定其大小。步長(zhǎng)因子取值小,穩(wěn)態(tài)誤差小,但收斂速度差;步長(zhǎng)因子取值大,收斂速度好,但穩(wěn)態(tài)誤差大[2-4]。鑒于此,國(guó)內(nèi)外學(xué)者提出了多種變步長(zhǎng) LMS 算法。各學(xué)者通過不同的函數(shù)形式建立誤差信號(hào)與步長(zhǎng)因子間的特定關(guān)系,使變步長(zhǎng)LMS算法在收斂初期有較大的步長(zhǎng)因子,以得到較快的收斂速度;在要進(jìn)入穩(wěn)態(tài)階段時(shí),步長(zhǎng)因子減少至較小值,獲得更好的穩(wěn)態(tài)性能。文獻(xiàn)[5]基于Sigmoid函數(shù)提出了變步長(zhǎng)最小均方(Sigmoid Variable Step Least Mean Square,SVSLMS)算法,相比傳統(tǒng)的LMS算法,其收斂速度更快,但在完成收斂階段時(shí),步長(zhǎng)因子值仍較大,導(dǎo)致穩(wěn)態(tài)誤差較大,穩(wěn)定性能差。文獻(xiàn)[6]針對(duì)文獻(xiàn)[5]的缺點(diǎn),給出了改進(jìn)的SVSLMS算法,該算法將步長(zhǎng)因子和誤差信號(hào)構(gòu)造為非線性函數(shù)關(guān)系,其在收斂速度和抗噪性能方面得到了提升,且具有偏小的穩(wěn)態(tài)誤差。除此之外,針對(duì)步長(zhǎng)因子的其他函數(shù)形式,文獻(xiàn)[7]提出了基于t分布的變步長(zhǎng)(Based on Various T-distribution Least Mean Square,BVTLMS)算法,該算法在t分布概率密度函數(shù)的基礎(chǔ)上對(duì)步長(zhǎng)因子進(jìn)行調(diào)整,實(shí)驗(yàn)結(jié)果表明,在收斂速度和抗噪性能上,BVTLMS算法都有大幅度提升,但步長(zhǎng)因子函數(shù)復(fù)雜,占用較多存儲(chǔ)空間。
現(xiàn)有的變步長(zhǎng)LMS算法在一定程度上解決了收斂速度和穩(wěn)態(tài)誤差間的矛盾,為進(jìn)一步提升算法性能,本文提出了一種新的基于Softsign函數(shù)的變步長(zhǎng)LMS算法,該算法采用新Softsign函數(shù)對(duì)步長(zhǎng)因子進(jìn)行調(diào)整,并加入了絕對(duì)估計(jì)誤差的擾動(dòng)量,使權(quán)向量更新后始終保持在最優(yōu)值。同時(shí)設(shè)計(jì)了一款自適應(yīng)噪聲抵消系統(tǒng)仿真平臺(tái),該平臺(tái)具有噪聲疊加、去噪處理等功能,操作界面友好。利用該仿真平臺(tái)對(duì)傳統(tǒng)LMS算法、已有變步長(zhǎng)LMS算法和本文提出算法的噪聲抵消特性進(jìn)行了對(duì)比實(shí)驗(yàn)。
圖1所示為自適應(yīng)噪聲抵消系統(tǒng)的原理圖。
圖1 自適應(yīng)噪聲抵消系統(tǒng)原理圖
圖1中,主通道的n時(shí)刻含噪信號(hào)d(n)包括有用信號(hào)s(n)與噪聲信號(hào)n0(n),參考信號(hào)x(n)是與噪聲信號(hào)相關(guān)的參考通道輸入信號(hào),該信號(hào)經(jīng)過自適應(yīng)濾波器后得到輸出信號(hào)y(n)與主通道的含噪信號(hào)相抵消,此時(shí)誤差信號(hào)e(n)變?yōu)橛杏眯盘?hào)s(n),從而達(dá)到去噪的效果[8]。
傳統(tǒng)LMS算法屬于隨機(jī)梯度算法,基本思想是在運(yùn)算過程中沿濾波權(quán)系數(shù)的負(fù)梯度方向搜索至其最優(yōu)值,即期望信號(hào)和輸出信號(hào)間的均方誤差(Mean Square Error,MSE)達(dá)到最小。自適應(yīng)濾波器基本原理如圖2所示[9]。
圖2 自適應(yīng)濾波器基本原理
圖2中a(n)為n時(shí)刻濾波器的輸入信號(hào);v(n)為干擾信號(hào);f(n)為期望信號(hào);y(n)為輸出信號(hào);e(n)為誤差信號(hào)。
LMS算法的迭代算式為
y(n)=wT(n)a(n)
(1)
e(n)=f(n)-y(n)
(2)
w(n+1)=w(n)+2μa(n)e(n)
(3)
0<μ<1/λmax
(4)
式中:w(n)為n時(shí)刻濾波器的權(quán)向量;μ為控制算法性能的重要參量,稱為步長(zhǎng)因子,其收斂條件為式(4);λmax是輸入信號(hào)自相關(guān)矩陣的最大特征值。
由上述迭代算法可知,LMS算法在步長(zhǎng)因子的選擇中不斷顯現(xiàn)出收斂速度和穩(wěn)態(tài)誤差間不協(xié)調(diào)的問題。
為解決LMS算法存在的收斂速度和穩(wěn)態(tài)誤差間不協(xié)調(diào)的問題,在保證算法性能的前提下,采用新Softsign函數(shù)建立步長(zhǎng)因子μ′(n)與誤差信號(hào)e(n)間的函數(shù)關(guān)系。
Softsign函數(shù)具有反比例中心對(duì)稱,能夠微分、去中心等特點(diǎn),返回值介于-1和1之間,其計(jì)算表達(dá)式為
(5)
式中:y為函數(shù)的因變量;x為函數(shù)的自變量。
將標(biāo)準(zhǔn)Softsign函數(shù)經(jīng)過求導(dǎo)、自變量取倒數(shù)以及向上平移1個(gè)單位的方式,得到新Softsign 函數(shù)表達(dá)式為
(6)
現(xiàn)用μ′(n)和e(n)分別代替y和x,得到步長(zhǎng)因子μ′(n)和誤差信號(hào)e(n)間的新函數(shù)關(guān)系為
(7)
式(7)對(duì)應(yīng)的函數(shù)關(guān)系如圖3所示。
圖3 μ′(n)和e(n)的函數(shù)關(guān)系
分析式(7)和圖3可知,在算法收斂初始階段(誤差信號(hào)較大),步長(zhǎng)因子的調(diào)整函數(shù)可保持較大的步長(zhǎng)因子值,從而提高算法的收斂速度。在收斂完成階段(誤差信號(hào)趨近于零),步長(zhǎng)因子的調(diào)整函數(shù)可選擇較小的步長(zhǎng)因子值,從而提高算法的穩(wěn)定性能。
2.2.1 參數(shù)對(duì)步長(zhǎng)因子的影響分析
為提高本文算法的可控性,在式(7)中加入?yún)?shù)α>0、β>0,得到步長(zhǎng)因子μ(n)和誤差信號(hào)e(n)間的新函數(shù)表達(dá)式為
(8)
式中:α用于保持函數(shù)形狀;β用于限定函數(shù)的取值范圍。
利用步長(zhǎng)因子μ′(n)和誤差信號(hào)e(n)間的關(guān)系曲線定性分析引入的參數(shù)α、β對(duì)算法性能的影響如下。
(1)參數(shù)α對(duì)算法性能的影響
選擇β=1,α分別取值為2、3、4,得到μ′(n)與e(n)的關(guān)系曲線如圖4所示。
圖4 μ′(n)與e(n)的關(guān)系曲線(β=1,α不同)
由圖4可見,對(duì)于同一初始誤差,當(dāng)α越大時(shí),算法在收斂初期提供的步長(zhǎng)因子值越大,但算法在完成收斂階段的穩(wěn)定性能下降。當(dāng)α越小時(shí),算法在完成收斂階段的穩(wěn)定性能越好,但算法的收斂速度較慢。
(2)參數(shù)β對(duì)算法性能的影響
選擇α=3,β分別取值為0.9、1、1.1,得到μ′(n)與e(n)的關(guān)系曲線如圖5所示。
圖5 μ′(n)與e(n)的關(guān)系曲線(α=3,β不同)
由圖5可見,對(duì)于同一初始誤差,β值越大,在初始收斂階段,算法的收斂速度越快。但β值過大,會(huì)導(dǎo)致步長(zhǎng)因子不滿足式(4)的收斂條件,算法發(fā)散。當(dāng)β取值過小時(shí),步長(zhǎng)因子μ′(n)的迭代變化區(qū)間較小,此時(shí)收斂速度不會(huì)有很大提高。
參數(shù)α、β變化對(duì)收斂速度和穩(wěn)態(tài)誤差的影響如表1所示。本文選擇α=3、β=1。
表1 參數(shù)變化對(duì)收斂速度和穩(wěn)態(tài)誤差的影響
2.2.2 引入絕對(duì)估計(jì)誤差的擾動(dòng)量Q(n)
為提高算法在未知系統(tǒng)突變時(shí)的跟蹤速度和抗噪性能,基于上述步長(zhǎng)因子μ′(n)與誤差信號(hào)e(n)間的函數(shù)關(guān)系,本文在權(quán)向量w(n)的更新過程中引入絕對(duì)估計(jì)誤差的擾動(dòng)量Q(n),此時(shí)權(quán)向量w(n)的更新公式為
w(n+1)=w(n)+2μ′(n)e(n)a(n)+Q(n)
(9)
Q(n)=kγ(n)(|e(n)|-|e(n-1)|)
(10)
γ(n)=pγ(n-1)=…=pnγ(0)
(11)
式中:k為單位列向量,維數(shù)與權(quán)向量w(n)相同;γ(n)>0,定義為擾動(dòng)量的幅度因子,按式(11)的形式衰減,其衰減系數(shù)|p|<1。
算法利用幅度因子γ(n)把擾動(dòng)量Q(n)對(duì)權(quán)向量w(n)的調(diào)節(jié)保持在一個(gè)最優(yōu)值。同時(shí),選用絕對(duì)估計(jì)誤差|e(n)|表征估計(jì)信號(hào)偏離期望信號(hào)的程度。
在算法初次迭代時(shí),擾動(dòng)量Q(n)的幅度因子γ(n)較大,因此擾動(dòng)量Q(n)對(duì)權(quán)向量w(n)的更新影響明顯。隨著迭代次數(shù)的增加,γ(n)逐漸減小并逼近于0,e(n)的輕微波動(dòng)將不會(huì)對(duì)權(quán)向量w(n)的變化造成影響,從而使穩(wěn)態(tài)誤差處于較低水平。當(dāng)系統(tǒng)發(fā)生突變時(shí),擾動(dòng)量Q(n)通過對(duì)權(quán)向量w(n)進(jìn)行正反向調(diào)節(jié)提高收斂速度,即無(wú)論干擾信號(hào)多大,算法都保持良好的跟蹤速度,快速達(dá)到較小的穩(wěn)態(tài)誤差,擁有較強(qiáng)的抗噪性能。
2.2.3 算法的收斂速度及抗噪性能分析
為檢驗(yàn)本文算法同其他算法在收斂速度和抗噪性能方面的優(yōu)劣,對(duì)算法進(jìn)行仿真實(shí)驗(yàn),并選取傳統(tǒng)LMS算法、文獻(xiàn)[6]和文獻(xiàn)[7]中不同算法作對(duì)比實(shí)驗(yàn)。
文獻(xiàn)[6]提出的改進(jìn)SVSLMS算法為
(12)
文獻(xiàn)[7]提出的基于t分布的改進(jìn)LMS算法BVTLMS為
(13)
具體實(shí)驗(yàn)條件為:
(1)自適應(yīng)濾波器的階數(shù)M=2;
(2)參考輸入信號(hào)a(n)是均值為0、方差為1的白噪聲;
(3)干擾信號(hào)v(n)是均值為0、方差為0.04的白噪聲,且與參考輸入信號(hào)不相關(guān);
(4)每次的迭代次數(shù)為600,分別做100次獨(dú)立的仿真,求其統(tǒng)計(jì)平均得出學(xué)習(xí)曲線;
(5)設(shè)定未知系統(tǒng)濾波器的抽頭參數(shù)為[0.8,0.5],在第300次迭代時(shí)刻未知系統(tǒng)發(fā)生突變,抽頭參數(shù)變化為[0.4,0.2];
(6)傳統(tǒng)LMS算法中取μ=0.001,改進(jìn)的SVSLMS算法中取α=5、β=1、γ=2,BTVLMS算法中取α=3、β=2、η=0.0001,本文算法中取α=3、β=1、γ(0)=0.4、p=0.4。
由文獻(xiàn)[10]可知,算法的收斂速度可由均方誤差與迭代次數(shù)的關(guān)系曲線表示。算法達(dá)到穩(wěn)態(tài)時(shí)的迭代次數(shù)越少,則其收斂速度越快。傳統(tǒng)LMS算法、文獻(xiàn)[6]算法、文獻(xiàn)[7]算法和本文算法迭代0到600次時(shí)的學(xué)習(xí)曲線對(duì)比如圖6所示。
圖6 不同算法的學(xué)習(xí)曲線
由圖6可見,文獻(xiàn)[6]算法和文獻(xiàn)[7]算法的學(xué)習(xí)曲線幾乎重合。隨著迭代次數(shù)的增加,傳統(tǒng)LMS算法由于其步長(zhǎng)固定,在迭代250次左右完成收斂過程,收斂速度最慢。文獻(xiàn)[6]和文獻(xiàn)[7]算法在第90次和第80次迭代后完成收斂。本文算法收斂速度最快,在迭代50次左右完成算法的收斂過程,且在算法收斂后,具有較小的穩(wěn)態(tài)誤差值。
為檢驗(yàn)本文算法的抗噪性能,即檢驗(yàn)收斂后算法在非平穩(wěn)環(huán)境(未知系統(tǒng)發(fā)生突變)下的跟蹤能力,設(shè)定未知系統(tǒng)初始的抽頭參數(shù)為[0.8,0.5],在第300次迭代時(shí)系統(tǒng)的抽頭參數(shù)變化為[0.4,0.2]。
抗噪性能測(cè)試實(shí)驗(yàn)的前提為算法收斂后,未知系統(tǒng)發(fā)生突變。由上述收斂速度測(cè)試實(shí)驗(yàn)結(jié)果可知,四種算法均在300次前收斂,滿足該前提條件。由圖6可知,在未知系統(tǒng)發(fā)生突變后,傳統(tǒng)LMS算法在第480次迭代后完成收斂過程,跟蹤速度最差,抗噪性能不好;文獻(xiàn)[6]和文獻(xiàn)[7]算法在第370次和第350次迭代后完成收斂;本文算法在面對(duì)未知系統(tǒng)突變時(shí),僅第330次迭代后完成收斂過程,有較好的跟蹤能力,即較強(qiáng)的抗噪性能。
通過以上仿真可以看出,本文算法在迭代初期,擁有較快的收斂速度,當(dāng)算法收斂后,有較小的穩(wěn)態(tài)誤差,在外界環(huán)境變化時(shí),有較快的跟蹤速度和較強(qiáng)的抗噪性能。
本文利用Matlab的GUI工具設(shè)計(jì)了自適應(yīng)噪聲抵消系統(tǒng)仿真平臺(tái),并將傳統(tǒng)LMS算法、文獻(xiàn)[6]算法、文獻(xiàn)[7]算法和本文提出的基于Softsign函數(shù)的新變步長(zhǎng)LMS算法應(yīng)用在噪聲抵消系統(tǒng)中,進(jìn)一步研究四種算法的去噪效果。
自適應(yīng)噪聲抵消系統(tǒng)仿真平臺(tái)設(shè)計(jì)框架如圖7所示。
圖7 自適應(yīng)噪聲抵消系統(tǒng)設(shè)計(jì)框圖
該平臺(tái)主要實(shí)現(xiàn)對(duì)有用信號(hào)、噪聲信號(hào)和參考信號(hào)的讀寫、顯示等基本操作以及對(duì)含噪信號(hào)的去噪處理相關(guān)操作,分為有用信號(hào)輸入?yún)^(qū)、有用信號(hào)加噪?yún)^(qū)、參考信號(hào)輸入?yún)^(qū)、去噪處理區(qū)、波形顯示區(qū)和信噪比計(jì)算區(qū)6個(gè)模塊。
(1)有用信號(hào)輸入?yún)^(qū)。用戶可在正弦波、矩形波、鋸齒波、正弦波加矩形波和矩形波加鋸齒波中選擇需要處理的有用信號(hào),波形顯示區(qū)會(huì)自動(dòng)生成該信號(hào)的時(shí)域波形圖。
(2)有用信號(hào)加噪?yún)^(qū)。本文選用均值為0、方差為1的白噪聲作為噪聲信號(hào),并用信噪比因子調(diào)節(jié)其方差值,點(diǎn)擊“疊加噪聲”按鈕后,會(huì)在波形顯示區(qū)出現(xiàn)噪聲信號(hào)及含噪信號(hào)的波形圖,同時(shí)在信噪比計(jì)算區(qū)顯示此時(shí)輸入信噪比的數(shù)值。
(3)參考信號(hào)輸入?yún)^(qū)。本文選用與噪聲信號(hào)相關(guān)的參考信號(hào)輸入,并通過相關(guān)度因子調(diào)節(jié)噪聲信號(hào)與參考信號(hào)二者間的線性相關(guān)情況。
(4)去噪處理區(qū)。在2.2.3中已證明本文提出的基于Softsign函數(shù)的變步長(zhǎng)LMS算法可以很好地兼顧收斂速度和抗噪性能。在去噪處理部分,用戶可以在確定信噪比因子、步長(zhǎng)因子等參數(shù)后選擇傳統(tǒng)LMS算法、文獻(xiàn)[6]算法、文獻(xiàn)[7]算法或本文提出的算法進(jìn)行相應(yīng)的去噪處理。
(5)波形顯示區(qū)。系統(tǒng)運(yùn)行后,參考信號(hào)和去噪處理后的誤差信號(hào)等會(huì)直接顯示在波形顯示區(qū)。
(6)信噪比計(jì)算區(qū)。為客觀評(píng)價(jià)自適應(yīng)噪聲抵消系統(tǒng)的去噪效果,本文選定信噪比作為評(píng)價(jià)自適應(yīng)噪聲抵消系統(tǒng)性能的一個(gè)重要指標(biāo)[11]。定義本文中系統(tǒng)的輸入信噪比SNRin為主通道中有用信號(hào)s(n)的功率與噪聲信號(hào)n0(n)的功率之比,并將其結(jié)果取以10為底的對(duì)數(shù),表達(dá)式為
(14)
輸出信噪比SNRout為有用信號(hào)s(n)與經(jīng)過自適應(yīng)抵消系統(tǒng)后的剩余信號(hào)e(n)-s(n)的總功率之比,并將其結(jié)果取以10為底的對(duì)數(shù),表達(dá)式為
(15)
信噪比增量為
ΔSNR=SNRout-SNRin
(16)
有用信號(hào)為正弦信號(hào),首先輸入有用信號(hào),設(shè)定信噪比因子的值(在本次實(shí)驗(yàn)中設(shè)定為1),顯示疊加噪聲后的含噪信號(hào),確定信噪比相關(guān)度的值(在本次實(shí)驗(yàn)中設(shè)定為1),輸入?yún)⒖夹盘?hào)進(jìn)行去噪處理。此時(shí)的有用信號(hào)、噪聲信號(hào)、含噪信號(hào)和參考信號(hào)的時(shí)域波形圖如圖8所示。應(yīng)用步長(zhǎng)為0.001的傳統(tǒng)LMS算法、文獻(xiàn)[6]算法、文獻(xiàn)[7]算法和本文基于Softsign函數(shù)的新變步長(zhǎng)LMS算法的誤差信號(hào)時(shí)域波形圖如圖9所示。
圖8 各信號(hào)時(shí)域波形圖
圖9 4種算法誤差信號(hào)時(shí)域波形圖對(duì)比
由仿真平臺(tái)運(yùn)行結(jié)果可知,輸入信噪比為-2.95dB,應(yīng)用四種算法的自適應(yīng)抵消系統(tǒng)信噪比增量分別為13.71、17.16、17.48和19.03dB,均有一定的去噪效果,可提高信號(hào)傳遞和接收的信噪比質(zhì)量。
為檢驗(yàn)信噪比因子和信號(hào)相關(guān)度因子的變化對(duì)系統(tǒng)去噪的影響,首先保持信號(hào)相關(guān)度因子始終為1,將信噪比因子的值從1設(shè)置為1.1。此時(shí)的輸入信噪比隨信噪比因子變化為-3.84dB,應(yīng)用四種算法的自適應(yīng)抵消系統(tǒng)信噪比增量分別為14.34、17.83、17.99、19.27dB。其次保持信噪比因子為1不變,改變信號(hào)相關(guān)度因子的值,將其值從1設(shè)為1.1。此時(shí)的輸入信噪比仍為-2.95dB,應(yīng)用四種算法的自適應(yīng)抵消系統(tǒng)信噪比增量分別為13.56dB、16.06dB、16.23dB、16.78dB。由此得出,當(dāng)信噪比因子和信號(hào)相關(guān)度因子變化時(shí),應(yīng)用本文算法的自適應(yīng)抵消系統(tǒng)去噪效果始終優(yōu)于應(yīng)用傳統(tǒng)LMS算法、文獻(xiàn)[6]算法和文獻(xiàn)[7]算法的自適應(yīng)抵消系統(tǒng)去噪效果。
當(dāng)輸入的有用信號(hào)變?yōu)槠渌ㄐ螘r(shí),應(yīng)用四種算法的自適應(yīng)抵消系統(tǒng)的信噪比增量對(duì)比如表2所示。其中噪聲信號(hào)取均值為0、方差為1的白噪聲,信噪比因子和信號(hào)相關(guān)度因子的取值均為1,濾波器階數(shù)為2,傳統(tǒng)LMS算法的步長(zhǎng)為0.001。
表2 不同有用信號(hào)下的信噪比增量對(duì)比 dB
由表2可知,在五種不同的有用信號(hào)下,應(yīng)用四種算法的自適應(yīng)抵消系統(tǒng)均有較好的去噪效果。應(yīng)用本文算法的自適應(yīng)噪聲抵消系統(tǒng)去噪效果均優(yōu)于傳統(tǒng)LMS算法、文獻(xiàn)[6]算法和文獻(xiàn)[7]算法的自適應(yīng)抵消系統(tǒng)去噪效果,且噪聲信號(hào)干擾越強(qiáng)烈,應(yīng)用本文算法的自適應(yīng)噪聲抵消系統(tǒng)去噪效果越明顯,在正弦波及鋸齒波有用信號(hào)輸入時(shí),信噪比增量達(dá)到19~20dB。
分析了傳統(tǒng)LMS算法及多種變步長(zhǎng)LMS算法性能,提出了一種新變步長(zhǎng)LMS算法。該算法首先基于Softsign函數(shù)建立了步長(zhǎng)因子與誤差信號(hào)間的函數(shù)關(guān)系,分析了參數(shù)α、β對(duì)步長(zhǎng)因子取值的影響,引入了絕對(duì)估計(jì)的擾動(dòng)量以應(yīng)對(duì)未知系統(tǒng)的突變情況。仿真結(jié)果顯示,本文提出的算法較傳統(tǒng)LMS算法、文獻(xiàn)[6]算法和文獻(xiàn)[7]算法具有收斂速度更快和抗噪性能更強(qiáng)的優(yōu)勢(shì)。設(shè)計(jì)了自適應(yīng)噪聲抵消系統(tǒng)仿真平臺(tái),實(shí)現(xiàn)了噪聲疊加、信噪比計(jì)算等功能,將新算法應(yīng)用于該仿真平臺(tái)中,驗(yàn)證了其具有較好的去噪效果,在噪聲控制領(lǐng)域有一定的使用價(jià)值。