孫國法,王 剛,都 暉
(青島理工大學信息與控制工程學院,山東青島266520)
主動噪聲控制(ANC)技術作為消除噪聲的有效方法,一直以來都是研究的熱門。與傳統(tǒng)的針對高頻噪聲的被動降噪技術不同,主動噪聲控制系統(tǒng)針對低頻噪聲(500Hz以下),具有輕便、易安裝等優(yōu)點[1]。濾波型最小均方(Filtered-X Least Mean Square,FxLMS)算法[2]以及改進濾波-x最小均方(Modified Filtered-X Least Mean Square,MFxLMS)算法在ANC系統(tǒng)中被廣泛應用,這兩種算法都需要對次級通道進行建模估計,其建模精度影響降噪效果[3]。
在ANC系統(tǒng)的設計過程中,不可避免的要對次級通道進行辨識估計,次級通道的辨識主要分為兩種方式:離線辨識和在線辨識。在ANC系統(tǒng)的實際應用中,由于次級通道是一個時變模型,采用離線辨識的方法,存在固定的建模誤差[10]。在次級通道受到擾動時,可能會使初級通道的降噪效果出現較大誤差甚至發(fā)散,出現穩(wěn)定性問題,影響ANC系統(tǒng)降噪性能。在線建模雖然可以應對擾動問題,但需要在系統(tǒng)內引入附加噪聲,對環(huán)境的緩慢變化能進行平穩(wěn),準確的建模。為了解決在線建模中面臨的快速收斂和降低穩(wěn)態(tài)誤差的矛盾要求,國內外學者提出了很多改進方案[6-9]。Akhtar等提出了一種對附加白噪聲進行功率調節(jié)的在線次級通道建模(OSPM)方法,設計了一種變步長LMS算法,根據系統(tǒng)收斂狀態(tài)對附加噪聲的功率進行調節(jié),但在系統(tǒng)收斂以后,步長值仍較高,不利于系統(tǒng)穩(wěn)定[4]。Carini等在兩種改進的在線建模方法的基礎上,提出了一種特定比率的最優(yōu)變步長參數和附加噪聲功率調節(jié)方法,簡化了調節(jié)參數、提高了系統(tǒng)的收斂速度和估計精度,但在次級通道受到擾動時,可能導致收斂速度慢且整體算法比較復雜[5]。Shakeel等提出了一種分階段調節(jié)附加噪聲增益的方法,其主要思想是在系統(tǒng)啟動和受到強擾動時注入大功率附加噪聲,在系統(tǒng)收斂趨于穩(wěn)定時降低附加噪聲功率。這種方法提高了ANC系統(tǒng)穩(wěn)態(tài)降噪性能,在非穩(wěn)態(tài)時能使SPM濾波器快速收斂[6]。Zhao等提出了并采用遺傳算法優(yōu)化控制濾波器的收斂系數的FxLMS算法,實現了比隨機白噪聲FxLMS算法更快更穩(wěn)定的次級通道在線建模,保證了算法的收斂性和穩(wěn)定性[7]。Lopes等提出了一種MFxLMS算法,能夠進行次級通道在線建模、附加噪聲功率調度等。該算法通過改變誤差傳感器上輔助噪聲和誤差噪聲的比值來實現,能有效的應對次級通道的變化,當聲學環(huán)境發(fā)生變化時,ANC系統(tǒng)的參數也不會發(fā)生劇烈變化[8]。Lopes等設計了一種MMFxLMS算法,對該算法進行時域分析,證明無論次級通道建模誤差如何,該算法都是收斂的。在次級通道發(fā)生變化(延遲)之后,不會產生超調,再收斂的速度也不會發(fā)生較大變化,具有較強的魯棒性[9]。
本文主要工作如下:
首先,將系統(tǒng)分為離線和在線建模兩部分。離線建模有效避免了附加噪聲帶來的收斂誤差過高的問題;設計了新的變步長在線建模方案能夠有效應對次級通道變化的情況。最后,將控制方案應用于不同噪聲信號得到仿真的數據。與傳統(tǒng)方案[6-9]相比,獲得了更快的收斂速度和降噪效果。
傳統(tǒng)的在線辨識FxLMS算法,以Eriksson算法最具代表性.其原理如圖1所示,其中x(n)是由參考信號傳感器所測量的參考信號,e(n)是由誤差傳感器所測量的誤差信號,P(n)表示參考信號傳感器到誤差傳感器的初級通道脈沖響應向量,W(n)表示ANC系統(tǒng)控制濾波器的脈沖響應向量,S(n)表示控制濾波器W(n)到誤差傳感器的次級通道,(n)表示次級通道模型(SPM)濾波器[4-6].
圖1 基于次級通道在建模的Eriksson算法框圖
誤差信號e(n)可寫為
e(n)=d(n)-y′(n)+v′g(n)
(1)
式中:d(n)是初級通道P(n)的輸出,d(n)=p(n)*x(n);-y′(n)和v′g(n)是次級通道S(n)的輸出,y′(n)=s(n)*y(n),y(n)為控制濾波器W(n)的輸出;v′g(n)=s(n)*vg(n),其中vg(n)=G(n)v(n)。G(n)是一個時變增益,v(n)是與x(n)不相關的高斯白噪聲(WGN)[6]。
(n)的誤差信號f(n)可寫為5
(2)
該算法可以利用附加白噪聲對次級通道進行較為精確的在線建模,但引入的附加白噪聲對降噪效果影響很大,該算法無法有效抑制。
由于次級通道的存在,若按照傳統(tǒng)的FxLMS算法框圖進行設計,誤差信號的產生需要用到控制濾波器W(n)的權值,這就會造成權系數更新的時延。時延現象對誤差的最終收斂情況影響較大。
針對上面提到的ANC系統(tǒng)次級通道建模存在的固有問題[6-9],本文設計了一種基于離線和在線變步長次級通道建模ANC算法。該算法主要由兩部分組成,框圖結構如圖2-3所示。第一部分對次級通道進行離線建模,將得到的次級通道參數應用到第二部分;第二部分對次級通道進行在線建模,構建ANC系統(tǒng),并對控制濾波器的收斂系數進行優(yōu)化。表格1給出了兩部分的算法流程,與圖2-3對應。第二部分為該算法的主體部分,第一部分主要為系統(tǒng)的快速收斂進行優(yōu)化。
如圖2所示,第一部分利用高斯白噪聲作為建模信號,基于LMS算法對ANC系統(tǒng)的次級通道進行離線建模。使系統(tǒng)的次級聲源產生高斯白噪聲,作為建模參考信號。參考信號同時通過次級通道S(n)與次級通道模型濾波器(n),令二者相互抵消。利用誤差傳感器收集的信號和參考信號作為LMS算法的輸入,對次級通道進行離線建模,并將其作為第二部分次級通道在線建模的初值,幫助ANC系統(tǒng)的次級通道在線建模部分快速收斂,提高了在線建模收斂速度。如圖2所示,離線次級通道建模公式為
(n+1)=(n)+μg(n)Ys(n)
(3)
圖2 本文所設計新算法的第一部分
第二部分為本文所提出的主動降噪算法結構。如圖3所示,采用次級通道在線建模方法,控制信號不能y(n)不足以激發(fā)次級通道所有模態(tài)響應。因此,需要引入附加白噪聲對次級通道進行在線建模,且方差較大的白噪聲可以獲得更好的建模精度和收斂速度。但是,方差越大,ANC系統(tǒng)的殘余噪聲誤差信號就會越大,影響系統(tǒng)的降噪性能[11]。為了改善在線建模中存在的附加噪聲干擾問題[6-9],此在線建模算法不引進附加噪聲。設計在線建模變步長算法(VSS-LMS)對次級通道變化后建模收斂速度和穩(wěn)定性進行優(yōu)化,并將第一部分獲得的次級通道離線建模結果作為在線建模的初值,解決了不能充分激發(fā)次級通道模態(tài)導致的建模不夠精確、收斂速度緩慢、穩(wěn)定性差的問題。使ANC系統(tǒng)可以快速、準確的進行建模,保證ANC系統(tǒng)降噪誤差值收斂的快速性、穩(wěn)定性。而在變步長線建模方案可以增強ANC系統(tǒng)的魯棒性,在次級通道受到擾動時,保證系統(tǒng)的降噪性能穩(wěn)定。因此,在線次級通道建模公式為
(4)
圖3 本文所設計新算法的第二部分
在實際情況中,次級通道可能發(fā)生變化。為了使在線次級通道模型濾波器′(n)在突變后的建模誤差能快速收斂,采用變步長最小均方(VSS-LMS)算法對濾波器′(n)的收斂系數進行更新調整,通過仿真比較驗證了該方案能幫助發(fā)生突變后的建模誤差快速收斂。式(4)中變步長μs的調整規(guī)則[12]如下
μs(n)=μ1lg(aρ(n)ρ(n-1)+b)
(5)
式中,μ1、a和b為可調整的參數;ρ(n)為建模誤差g1(n)與殘余噪聲誤差e(n)的能量比,其表達式如下
(6)
Pe(n)=λPe(n-1)+(1-λ)e2(n)
(7)
(8)
式中,0.9<λ<1。
變步長參數μs的啟動是觸發(fā)式的。在突變發(fā)生的初期,系統(tǒng)殘余噪聲誤差e(n)對建模誤差值g1(n)影響較大。此時,ρ(n)數值接近于1,應取較小步長對濾波器′(n)參數進行更新,防止系統(tǒng)發(fā)散。隨著系統(tǒng)逐漸收斂,殘余噪聲對μs影響逐漸變小,此時應取較大步長使建模誤差g1(n)快速收斂,能量比ρ(n)的數值應減小接近于0?;诖死碚摚瑢ψ儾介L參數進行設計。
表1 本文提出算法的流程
本節(jié)中,使用Matlab仿真軟件對本文所提出ANC系統(tǒng)進行仿真驗證,并與離線建模FxLMS算法和高斯白噪聲在線建模FxLMS算法等性能進行比較,包括收斂速度、穩(wěn)定性、精度等。采用文獻[7]中實驗數據所提供的初級通道P(z)和次級通道S(z)的參數。
P(z)=0.05z-6-0.05z-7+0.01z-8+0.14z-9
+0.1z-10-0.045z-11-0.02z-12+0.05z-13-0.01z-14
(9)
S(z)=0.01z-3+0.01z-4+0.9z-5-0.01z-7-0.045z-8
(10)
根據上面的數據,ANC系統(tǒng)的主通道和次級通道分別用長度為16和9的濾波器,采樣頻率為2kHz。為了系統(tǒng)的快速穩(wěn)定收斂,通過多次仿真驗證比較,最終選定控制濾波器W(n)和次級通道建模濾波器(n)的長度都為20。為了對建模誤差和降噪效果進行比較,定義相對建模誤差ΔS和降噪量R的表達式如下
(11)
(12)
主噪聲源為表2中的單頻信號進行組合后,再與高斯白噪聲信號進行疊加,使其信噪比為30dB。仿真結果與傳統(tǒng)FxLMS算法、Akhtar算法[4]進行了對比。三種算法的參數如表3所示。
表2 混頻噪聲源頻率成分
表3 混頻噪聲信號仿真參數
如圖4(a)、(b)所示為采用以上三種算法的ANC系統(tǒng)性能對比。從次級通道相對建模誤差方面分析,Akhtar算法在迭代4000次以后收斂到-40dB左右,收斂速度較慢、波動幅度較大。而傳統(tǒng)算法和本文算法由于在控制器運行前進行離線建模,所以降噪開始階段相對建模誤差約為-43dB,本文設計算法還具有在線建模部分,可以對建模誤差進一步優(yōu)化。在不發(fā)生時變的情況下,兩者的誤差曲線都較為平緩。
圖4 混頻噪聲信號算法性能比較
從降噪量方面進行分析,Akhtar算法在系統(tǒng)的啟動階段會產生噪聲增強的現象,這是因為次級通道建模和控制器同時運行,在初始階段收斂速度緩慢,降噪效果較差,且因為引入了高斯白噪聲信號,最終降噪量R(n)約為10dB。從圖中可以看出,本文所提出的算法在降噪量收斂速度和最終降噪量趨于平穩(wěn)后的值都優(yōu)于前兩種算法,取得了良好的降噪效果。
除此之外,考慮到在實際情況中系統(tǒng)的次級通道會發(fā)生時變,仿真過程在迭代到5000時次級通道參數S(z)變?yōu)?.5S(z),其仿真結果如圖5所示。
圖5 次級通道突變降噪仿真結果
由于本文算法不引入附加噪聲,在次級通道發(fā)生突變后重新收斂效果無法達到初始值。但分析圖5(c)可知,本文算法的建模誤差收斂速度遠快于其它算法,所以其降噪效果好、魯棒性較強,得益于本文設計的變步長方案。變步長值μs在發(fā)生突變后有一個明顯的緩沖作用。變步長值μs快速減小,減弱噪聲誤差突變帶來的影響,收斂速度明顯優(yōu)于Akhtar算法。從抗擾性分析,由于傳統(tǒng)算法采用離線辨識的方案,其抗擾性較差,在仿真過程中降噪誤差容易產生發(fā)散,只能抵抗輕微時變擾動,而本文算法和Akhtar算法可以實時做出調整,具有較強的抗擾性。總體來說,本文算法在保持快速收斂的基礎上,仍然具有較好的降噪效果。
設計一個帶通濾波器,輸入均值為0方差為0。5的高斯白噪聲,得到100-400Hz的寬帶低頻噪聲信號[14]。將其作為噪聲源信號,進行降噪仿真,算法與上文相同,迭代次數調整為20000。其余參數調整如表4所示。
表4 寬帶噪聲信號仿真參數
圖6為針對寬帶低頻噪聲的降噪仿真結果,本文算法的性能與上文基本一致,建模誤差仍然具有很快的收斂速度,與其它兩種算法相比能保持相對穩(wěn)定。由于噪聲源信號改為白噪聲信號,能夠更加充分的激發(fā)建模濾波器(n)的各種模態(tài),所以誤差最終值更低,收斂效果更好。從降噪量來看,在最終趨于穩(wěn)定以后,本文算法的降噪量也要優(yōu)于已有算法,且收斂速度較快,表明了本文算法具有更好的降噪性能。
圖6 寬帶低頻噪聲信號算法性能比較
本文基于現有的FxLMS算法,設計一種改進的變步長FxLMS算法。主要貢獻如下:
1) 將ANC系統(tǒng)的離線和在線建模兩部分進行分離,實現了不引入附加白噪聲對次級通道進行在線建模的方案.
2) 采用了建模濾波器變步長調整的方法,在次級通道發(fā)生時變的情況下,能夠發(fā)揮緩沖的作用,減弱噪聲誤差的突變對次級通道建模的影響。仿真結果表明,相比于傳統(tǒng)FxLMS算法和Akhtar算法,具有更快的收斂速度、更低的建模誤差,在降噪量方面也有明顯優(yōu)勢。