李春陽, 金光燦, 劉 浩
(1.上海工程技術(shù)大學機械與汽車工程學院, 上海 201600;2.上海理想汽車科技有限公司, 上海 201800)
自20世紀80年代濾波-x最小均方(FxLMS)算法被提出以來,對于ANC算法的研究蓬勃發(fā)展[1-2]。為了獲得更好的降噪能力,新提出的有源控制算法引入了各種調(diào)節(jié)參數(shù),這些關(guān)鍵參數(shù)對于算法降噪性能具有顯著的影響,不合適的參數(shù)會使ANC系統(tǒng)的降噪能力顯著下降,甚至失效。在過去的研究中,一般采用試錯法獲取合適的參數(shù)值,試錯法通過反復比較使用不同參數(shù)時算法的降噪效果,從中選取最優(yōu)的參數(shù),但是該方法費時低效[3]。MENG等[4]將PSO優(yōu)化引入變步長ANC算法,用于優(yōu)化該算法的步長調(diào)節(jié)因子。JIANG等[5]將改進PSO算法用于混合ANC (HANC)系統(tǒng)關(guān)鍵參數(shù)的獲取,并取得了降噪效果的提升。MENG和JIANG的方法是使用相同的輸入信號進行粒子群尋優(yōu),實質(zhì)仍然是離線獲取最優(yōu)參數(shù)值,其方法并不能直接在實時ANC系統(tǒng)中使用。
為了解決ANC參數(shù)難以設(shè)置的問題,本文提出了一種能用于在線更新ANC關(guān)鍵參數(shù)的改進PSO算法。該算法在ANC系統(tǒng)采樣噪聲信號的同時,實時優(yōu)化更新參數(shù)值。仿真結(jié)果表明,提出的改進PSO算法能很好地與常見的ANC降噪算法相結(jié)合,實現(xiàn)在線獲取關(guān)鍵參數(shù)的最優(yōu)值,保證ANC系統(tǒng)優(yōu)秀的降噪效果。
有源噪聲控制系統(tǒng)是利用聲波相消干涉的原理,通過產(chǎn)生幅值相同、相位相反的次級聲波抵消不期望的噪聲[6]。常見的單通道前饋控制結(jié)構(gòu)如圖1所示。其中,主路徑為參考傳感器到誤差傳感器之間的聲音傳播路徑,次級路徑指次級聲源到誤差傳感器之間的路徑。該系統(tǒng)的工作過程如下:噪聲源產(chǎn)生噪聲并通過主路徑傳遞;參考傳感器拾取參考信號x(n)作為控制濾波器的輸入信號,控制濾波器對信號x(n)進行濾波并輸出相應(yīng)的控制信號y(n),y(n)驅(qū)動次級聲源產(chǎn)生抵消聲波,初級噪聲和次級抵消聲波在誤差傳感器處疊加相消形成局部靜音區(qū),誤差傳感器拾取抵消后的殘余誤差信號e(n),x(n)和e(n)共同作用于自適應(yīng)算法的更新,算法根據(jù)相應(yīng)的控制準則不斷在線調(diào)整濾波器權(quán)系數(shù)。整個過程持續(xù)不斷,最終ANC系統(tǒng)會獲得穩(wěn)定的降噪效果。
圖1 單通道前饋有源噪聲控制示意圖Fig.1 Schematic diagram of single channel feedforward active noise control
粒子群算法是受鳥群覓食規(guī)律啟發(fā)而衍生出的一種進化算法,該算法的核心思想是利用個體共享的信息,促使整個群體的運動在求解空間中從無序到有序逐漸演化,最終獲取問題的最優(yōu)解[7]。假設(shè)種群有N個粒子,并在D維的搜索空間進行搜尋,則第i個粒子當前位置為Xid=(xi1,xi2,…,xiD),速度為Vid=(vi1,vi2,…,viD),目前搜索到的個體最優(yōu)位置為Pid,pbest=(pi1,pi2,…,piD),群體最優(yōu)位置為Pd,gbest=(p1,gbest,p2,gbest,…,pD,gbest),PSO算法根據(jù)公式(1)和公式(2)迭代更新粒子的速度和位置:
(1)
(2)
其中,i為粒子序號,i=1,2,…,N;d為粒子維度序號,d=1,2,…,D;k為當前的迭代次數(shù);w為慣性權(quán)重;c1和c2分別為個體學習因子和群體學習因子,典型值取c1=c2=2;r1和r2為0~1的隨機數(shù)。
在標準的PSO算法中,需要輸入重復的數(shù)據(jù)進行迭代尋優(yōu),顯然這不符合ANC系統(tǒng)實時運行、逐點采樣噪聲的特點,因此標準的PSO算法不能直接在ANC系統(tǒng)中使用。本文對于標準PSO算法做了如下改進:為了與實時ANC系統(tǒng)相配合,在每個采樣時刻僅使用一個粒子作為關(guān)鍵參數(shù)參與ANC系統(tǒng)的運算,該粒子連續(xù)使用L個采樣時間后計算粒子的適應(yīng)值,并隨機不重復地選擇下一個粒子作為關(guān)鍵參數(shù)。對于粒子總數(shù)為N的種群,完成一輪粒子群迭代總共需要經(jīng)歷N×L個采樣輸入信號。通過以上方法,確保了ANC系統(tǒng)和粒子群都能在線實時更新,其中ANC系統(tǒng)是逐個噪聲采樣點更新,粒子群算法是逐個數(shù)據(jù)塊(N×L個采樣點)進行更新。標準的粒子群算法在每一輪迭代中需要相同的輸入數(shù)據(jù),而提出的改進算法是伴隨噪聲采樣實時更新粒子,這是本文提出算法與標準算法最大的不同。
為了獲得更好的尋優(yōu)表現(xiàn),本文還對PSO算法做了以下的改動。
(1)引入線性微分遞減的慣性權(quán)重調(diào)整策略。從公式(1)中可以看出,慣性權(quán)重w代表上代粒子對當代粒子速度的影響。本文引入了以下線性微分遞減的w調(diào)整策略,保證PSO算法在迭代前期使用較大的w,充分發(fā)掘可能的最優(yōu)解,而在后期使用較小的w,提高局部搜索能力,保證尋優(yōu)精度[8]。
(3)
其中,wmax和wmin分別代表慣性權(quán)重的最大值和最小值,分別取0.9和0.4;tmax和t分別代表最大迭代次數(shù)和當前迭代次數(shù)。
(2)魯棒的適應(yīng)度函數(shù)。脈沖噪聲是ANC系統(tǒng)中常見的噪聲源,由于含有較多的異常值,因此容易造成算法的發(fā)散。在使用粒子群在線估計參數(shù)時,同樣要考慮脈沖噪聲對粒子群尋優(yōu)的影響。為了增強粒子群應(yīng)對脈沖噪聲的能力,采用如下魯棒性更強的適應(yīng)度函數(shù):
(4)
其中,L代表連續(xù)的L個誤差信號采樣點,tanh(·)代表雙曲正切函數(shù),e(i)為誤差信號。通過對誤差信號做非線性壓縮變換,從而消除異常值的不利影響。
為了展示改進PSO算法在ANC系統(tǒng)中的應(yīng)用效果,將提出算法應(yīng)用于FxMCC-MK算法關(guān)鍵參數(shù)的在線估計[9]。FxMCC-MK算法的ANC控制器權(quán)系數(shù)更新公式如下:
(5)
λ(n)=1-exp(-βe2(n))
(6)
w(n)為n時刻濾波器權(quán)系數(shù),e(n)為誤差信號,xf(n)為濾波后的參考信號,λ(n)為混合參數(shù),sign(·)為符號函數(shù)。步長μ、核寬σ及λ(n)的形狀調(diào)整參數(shù)β均屬于超參數(shù),對于算法的降噪表現(xiàn)起著關(guān)鍵作用,這里使用提出的改進PSO算法將參數(shù)在線更新為“正確”值?;诟倪MPSO的FxMCC-MK算法的系統(tǒng)框圖如圖2所示,其中d(n)為需要抵消的噪聲信號,y(n)為ANC控制器輸出信號,yf(n)為y(n)經(jīng)過次級路徑后的信號,e(n)為誤差信號。
圖2 基于改進PSO的FxMCC-MK算法系統(tǒng)框圖Fig.2 System block diagram of FxMCC-MK algorithm based on modified PSO
基于改進PSO的FxMCC-MK算法的主要執(zhí)行流程如下。
步驟1:設(shè)置PSO算法關(guān)鍵參數(shù),包括粒子群規(guī)模N,粒子維度D,數(shù)據(jù)塊長度L,最大迭代次數(shù)K等;并隨機初始化粒子位置和速度。初始化的粒子群如下:
(7)
步驟2:隨機不重復地從種群中選擇粒子作為FxMCC-MK算法的關(guān)鍵參數(shù),并通過公式(5)和公式(6)更新控制器系數(shù)。每個粒子在L個采樣時刻內(nèi)連續(xù)使用,所有粒子完成該步驟需要經(jīng)歷N×L個采樣時間。
步驟3:完成L個采樣后,使用公式(4)計算粒子的適應(yīng)值,并記錄當前粒子的位置和個體最優(yōu)位置;當步驟2重復一輪后,比較所有粒子的個體最優(yōu)位置獲得群體最優(yōu)位置。
步驟4:根據(jù)公式(3)更新慣性權(quán)重ω,并根據(jù)公式(1)和公式(2)更新所有粒子的速度和位置。
步驟5:判斷是否滿足算法的停止條件,如果滿足則停止粒子群更新,將最終獲得的gbest作為最優(yōu)的參數(shù),供ANC系統(tǒng)繼續(xù)運行,如果不滿足條件,則返回步驟2繼續(xù)優(yōu)化參數(shù)。
本文提出的改進PSO算法利用隨機、分塊選擇更新粒子,實現(xiàn)了ANC系統(tǒng)關(guān)鍵參數(shù)的在線匹配。但不可否認,改進PSO算法的引入增加了實時降噪系統(tǒng)的計算負擔,增加的計算量見表1。從表1中可以看出,額外增加的計算量不容忽視。為了降低計算負擔,種群粒子總數(shù)N和數(shù)據(jù)塊長度L都不應(yīng)過大。當控制濾波器長度P和次級路徑長度M較大時,則增加的計算量可以相對忽視。除此以外,改進PSO具有在線迭代尋優(yōu)的特點,相比直接使用一組較好參數(shù),使用PSO尋優(yōu)的ANC算法在收斂速度上并不具有優(yōu)勢,這點能在仿真中體現(xiàn)。需要注意的是,為了保證算法能快速收斂到最優(yōu)位置,應(yīng)當通過經(jīng)驗數(shù)據(jù)給出粒子位置的大致范圍。
表 1 改進PSO算法引入的計算量
在計算機仿真中,將控制濾波器的長度設(shè)置為20,ANC系統(tǒng)的初級路徑P(z)和次級路徑S(z)分別設(shè)置如下:
P(z)=0.05z-13-0.01z-14+0.01z-15+0.8z-16+0.6z-17-
0.2z-18-0.5z-19-0.1z-20+0.4z-21-0.05z-22
(8)
S(z)=0.05z-6-0.01z-7+0.95z-8+0.01z-9-0.9z-10
(9)
采用平均噪聲衰減量(ANR)評價算法的降噪表現(xiàn),ANR按如下公式定義[9]:
(10)
(11)
其中,Ae(·)和Ad(·)的初始值均為0,η是遺忘因子,一般取0.999。
仿真中使用服從標準對稱α穩(wěn)定(Symmetric α-Stable, SαS)分布的數(shù)據(jù)模擬脈沖噪聲[6],SαS分布的特征函數(shù)如下:
φ(n)=exp(-|t|α)
(12)
其中,α為特征指數(shù),α∈(0,2],α越小,生成的數(shù)據(jù)脈沖性越強,圖3為α=1.6時的脈沖噪聲信號。仿真中粒子群的基本設(shè)定為粒子群規(guī)模N=20,數(shù)據(jù)塊長度L=20,最大迭代次數(shù)K=50,粒子維度D與ANC算法關(guān)鍵參數(shù)個數(shù)一致。
圖3 α=1.6時生成的脈沖噪聲信號Fig.3 Impulse noise signals generated at α=1.6
首先,在ANC系統(tǒng)中,分別使用改進PSO在線匹配參數(shù)和試錯法精確指定參數(shù),比較不同方式下FxMCC-MK算法的降噪表現(xiàn),參考噪聲采用α=1.6的脈沖噪聲信號。改進PSO算法關(guān)鍵參數(shù)的尋優(yōu)范圍為μ∈[1e-4,1e-3]、σ∈[1,10]、β∈[0.1,1]。圖4為改進PSO在線匹配ANC參數(shù)的收斂曲線,從圖4中可以看出,改進PSO算法快速收斂,大約在20輪迭代后即能找到最優(yōu)解,獲取到的最優(yōu)參數(shù)值為μ=5.807 6e×10-4,σ=4.966 1,β=0.512 3。改進PSO和試錯法的降噪效果對比如圖5所示。case1為通過試錯法反復實驗得出的最優(yōu)參數(shù)組合,case2~4在case1參數(shù)的基礎(chǔ)上有略微改動。從圖5中可以明顯看出,case1同時兼顧了收斂速度和穩(wěn)態(tài)誤差,降噪效果可以認為是最好的。在case2~4中,參數(shù)發(fā)生改動后,算法的降噪效果也相應(yīng)受到影響,如果參數(shù)改動較大,甚至可能導致算法不收斂或者失穩(wěn)。相比case1,改進PSO算法收斂速度略慢,但是獲得了更低的穩(wěn)態(tài)誤差值。以上結(jié)果表明,改進PSO算法能夠快速在線獲取最優(yōu)參數(shù),雖然ANC系統(tǒng)的收斂速度會略微降低,但是降噪效果會得到提升。
圖4 改進PSO匹配ANC關(guān)鍵參數(shù)的收斂曲線Fig.4 The convergence curve of modified PSO matching ANC key parameters
圖5 改進PSO與試錯法的ANR對比Fig.5 Comparison of ANR between modified PSO and trial and error method
其次,將使用改進PSO的FxMCC-MK算法與常見ANC算法進行降噪性能對比分析,參與對比的另外三種算法分別是濾波-x最小P范數(shù)(FxLMP)算法、基于sigmoid變換的FxsigmoidLMS算法和基于對數(shù)變換的FxlogLMS算法,新引進的三種算法的特點為參數(shù)只有步長μ,比較容易通過試錯法確定最優(yōu)值[10-12]。不同算法的降噪效果如圖6所示,從中可以看出直接使用試錯法的FxMCC-MK算法在收斂速度上具有絕對優(yōu)勢,使用改進PSO的FxMCC-MK算法收斂速度略慢于直接使用試錯法,但與FxsigmoidLMS算法相近,明顯優(yōu)于FxLMP算法和FxlogLMS算法。此外,FxMCC-MK(改進PSO)算法的穩(wěn)態(tài)誤差值是最低的,穩(wěn)定值為-35.6 dB。由此可見,通過改進PSO在線匹配關(guān)鍵參數(shù),雖然會略微降低FxMCC-MK算法本身的收斂速度,但是整體上該算法的降噪性能仍然要優(yōu)于其他三種算法。
圖6 與常見ANC算法降噪效果對比Fig.6 Comparison of noise reduction effect with common ANC algorithm
本文提出了一種用于在線獲取ANC系統(tǒng)關(guān)鍵參數(shù)的改進PSO算法,該算法通過在降噪過程中隨機選擇粒子,并作為關(guān)鍵參數(shù)用于降噪系統(tǒng)的運行,算法以數(shù)據(jù)塊為單位進行粒子群的迭代更新,實現(xiàn)了PSO參數(shù)尋優(yōu)與實時ANC系統(tǒng)的同步運行。此外,引入了線性微分遞減的慣性權(quán)重調(diào)整策略,保證了算法的尋優(yōu)能力;使用非線性的雙曲正切函數(shù)壓縮異常的噪聲信號,增強了適應(yīng)度函數(shù)的魯棒性。未來,將提出的改進PSO框架用于FxMCC-MK算法關(guān)鍵參數(shù)的在線尋優(yōu)中,并分析增加的計算負擔。實驗結(jié)果表明,改進PSO算法能夠?qū)崿F(xiàn)關(guān)鍵參數(shù)的快速尋優(yōu),并且保持了ANC系統(tǒng)優(yōu)秀的降噪能力,在實際應(yīng)用中具有潛在的價值。