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