褚軼景, 趙越喆, 牛 鋒, 陳明陽
(1.華南理工大學 亞熱帶建筑科學國家重點實驗室,廣東 廣州 510641;2.中國計量科學研究院,北京 100029)
生活噪聲、工業(yè)噪聲、交通噪聲是干擾人們生產(chǎn)生活、數(shù)據(jù)測量,乃至語言溝通的重要因素[1~4]。主動噪聲控制(active noise control, ANC)是一種噪聲控制的重要手段,廣泛應用于低頻噪聲及振動消除[5~7]。一類廣泛使用的自適應控制算法是濾波最小均方算法[7](filtered-x least mean squares, FxLMS)及其變體[8,9]。Fx算法存在次級通道(secondary path)建模問題,如跟蹤路徑變化、測量傳聲器[10,11]引起的建模誤差等。在這種情況下,基于Fx算法的ANC系統(tǒng)由于濾波信號自相關矩陣不對稱,將使消噪能力下降,甚至導致算法發(fā)散。
為了解決這個問題,通常采用正則化技術。其中一個較為成熟的應用是Leaky FxLMS算法[12]。該算法在自適應更新過程中,加入自相關矩陣對角加載(diagonal loading),從而增加算法魯棒性。然而此類算法的收斂性分析表明正則化技術不能保證算法一定收斂。
另外,對于時變系統(tǒng)來說,固定的正則化因子往往不能取得最佳效果。文獻[13]對FxLMS算法的魯棒性進行了討論,得到均值收斂充要條件,并提出一類利用正則化濾波器增加穩(wěn)定性的FxLMS算法。但是該正則化濾波器的設計較復雜,在實際應用中不易實現(xiàn)。FxLMS算法的另一個問題是收斂緩慢,對于有色噪聲等特征值分布不均勻的信號具有很高的靈敏度。雖然遞歸最小二乘算法(recursive least squares, RLS)[14]可以加快收斂,但跟蹤速度及穩(wěn)定性明顯不如LMS類算法。文獻[15]中提出的卡爾曼濾波(Kalman filter)克服了以上算法的不足,但復雜度較高。
綜上所述,FxLMS算法對次級通道建模誤差的魯棒性較差,而基于卡爾曼濾波的ANC算法很難在計算量與跟蹤速度上取得平衡。為了減小次級通道誤差引起的降噪量下降,同時不大量增加算法復雜度,本文提出一種基于狀態(tài)方程(state equation)的FxRLS(S-FxRLS)主動噪聲控制算法。不同于傳統(tǒng)RLS算法,改進方法創(chuàng)新點及特點如下:
改進方法將狀態(tài)方程引入ANC系統(tǒng)用以描述控制器的先驗統(tǒng)計特性,通過對控制器建模誤差的估計確定先驗統(tǒng)計特性,從而達到減小建模誤差影響的作用。建模誤差的估計對改進算法性能影響較大,本文提出一種近似估計方法,可以對建模誤差進行有效估計。
另一方面,為了減小算法計算量,通過簡化狀態(tài)方程,使得控制器自適應估計在最小二乘意義上實現(xiàn)最佳遞歸估計。
由于基于RLS的ANC算法數(shù)學模型較復雜,目前對于這類算法理論分析方面的工作較少。為了定性研究提出算法性能,利用Price’s積分等數(shù)學工具,對算法在高斯輸入加性噪聲環(huán)境中的均值性能進行理論分析,得到均值意義上的收斂條件。
本文提出S-FxRLS算法后,對算法性能進行分析,最后通過計算機模擬,與傳統(tǒng)Fx算法及其采用正則化技術的變體等算法進行比較。模擬結果表明:1) S-FxRLS算法較之傳統(tǒng)FxLMS算法收斂速度加快了約60%;2) 次級通道建模誤差導致傳統(tǒng)FxLMS及正則化FxLMS算法出現(xiàn)發(fā)散現(xiàn)象時,本文提出的算法仍然保持較好的收斂特性。
基于Fx算法的ANC系統(tǒng)如圖1所示。噪聲源信號{x(n)}通過初級通道{p(n)}在某一區(qū)域產(chǎn)生噪聲信號{d(n)}。另一方面,控制器{w(n)}通過自適應濾波生成揚聲器(次級源)驅動信號,再經(jīng)由揚聲器到誤差麥克風的次級通道{s(n)},產(chǎn)生噪聲抵消信號{y(n)}。誤差麥克風用于拾取n時刻信號殘差{e(n)}。為了抵消誤差麥克風接收到的噪聲{d(n)},控制器{w(n)}旨在與次級通道{s(n)}級聯(lián)后近似等于初級通道{-p(n)}。
圖1 基于Fx自適應算法的ANC系統(tǒng)簡圖。Fig.1 Block diagram of an ANC system.
根據(jù)圖1,待消除的噪聲信號及控制器輸出可分別表示為d(n)=p(n)*x(n)+η(n),y(n)=x(n)*w(n)*s(n),“*”表示卷積計算。誤差信號則可表示為:
e(n)=d(n)+y(n)
(1)
假設聲學路徑和控制器變化緩慢,根據(jù)卷積交換定律可知,濾波信號xs(n)=x(n)*s(n)可以作為控制器的輸入信號,從而濾波器輸出信號可表示為y(n)=xs(n)*w(n)。下標s表示參考信號x(n)通過次級通道s(n)濾波。
則抵消聲信號可表示為:
(2)
為了增強控制算法的穩(wěn)定性,采用如下狀態(tài)方程描述控制器先驗概率:
w(n+1)=w(n)+v(n)
(3)
式中:v(n)是L×1的高斯白噪聲向量,自相關矩陣為Q(n)。由式(3)可知,控制器的先驗概率分布滿足均值為{w(n)}、方差為{P(n-1)+Q(n)}的正態(tài)分布
w(n+1)~N(w(n),P(n-1)+Q(n)),
式中:P(n-1)為先驗估計方差,與控制器估計的準確度直接相關。
(4)
由控制器最大后驗(MAP)估計:
w(n)=argmax[p(d(n)|w(n))p(w(n))]
(5)
可得S-FxRLS更新公式:
w(n+1)=w(n)-k(n)e(n)
(6)
(7)
后驗方差更新由式(1)、式(6)及簡單的數(shù)學推導可得后驗估計方差的更新公式:
(8)
(9)
由算法的更新式(6)-式(9)可知,S-FxRLS算法復雜度在傳統(tǒng)FxRLS算法的基礎上增加了狀態(tài)方程估計,增加的乘法數(shù)量為L,總計算量仍然與傳統(tǒng)FxRLS算法相當,即o(L2)。
算法的均值收斂特性研究是算法設計的重要方面,揭示參數(shù)估計與最優(yōu)值之間的偏離,在保證算法收斂的同時為算法設計提供理論指導。為了使性能分析可行,本文做出以下假設:
假設3P(n)與輸入信號相互獨立。
基于以上假設,同時假設算法收斂,則穩(wěn)態(tài)更新公式表示為:
E[w(∞)]=E[w(∞)]-E[k(∞)e(∞)]
(10)
由此可知,E[k(∞)e(∞)]=0。將式(7)代入式(10)。由于P(∞)≠0,可得S-FxRLS算法的穩(wěn)態(tài)解:
(11)
為了進一步分析算法均值特性,定義誤差向量v=w∞-w(n)。由式(6)及假設3知:
E[v(n+1)]=E[v(n)]+P(n)L1
(12)
L1=-UΛDΛUTE[v(n)]
(13)
(2αβλi+1)-1dβ
將上述結果代入式(12),可得算法的均值插分方程:
E[v(n+1)]?(I-P(n)UΛDΛUT)E[v(n)]
(14)
該方程代表算法的均值收斂速度。由式(14)可知,代表輸入信號特征值的對角矩陣DΛ以及后驗估計方差P(n)共同決定算法的收斂速度。與傳統(tǒng)RLS算法類似,P(n)起到白噪化輸入信號以及調整算法步長的作用,因此可令RLS類算法具有較快的收斂速度[17]。
將式(14)左右兩邊同時乘以UT可以得到:
E[V(n+1)]?(I-Γw(n)ΛDΛ)E[V(n)]
(15)
式中:V(n)=UTv(n),Γw(n)=UTP(n)U。
為了使算法均值意義上收斂,式(15)右邊小括號內矩陣的特征值必須小于1,即滿足條件:
0<[Γw(n)]i,i<2/(λiIi(Λ))
(16)
另一方面,由式(8)以及廣義Abelian積分同樣可以得到Γw(n)的更新方程:
[Γw(n+1)]i,i≈[Γw(n)]i,i-λiIi(Λ)
(17)
式中:qi(n)是Q(n)的第i個元素。
(18)
式(18)可為算法設計提供理論依據(jù),從而避免計算量巨大的試錯法(try-and-error)選擇用戶參數(shù)。
假設ANC系統(tǒng)置于較小的封閉空間(如車內),因此,初級通道階數(shù)較短,設通道長度為12,次級通道長度為4,且具有估計偏差,估計偏差與次級通道內積的比值分別設為-6 dB和-3 dB。ANC控制器長度為10,噪聲源為粉紅噪聲。FxLMS類算法步長設置為0.002。L2-FxLMS算法的正則化系數(shù)經(jīng)過大量試錯法調整,使得收斂曲線最優(yōu)。FxRLS類算法的遺忘因子設置為0.99,以增加算法穩(wěn)定性。S-FxRLS算法中,用來估計自相關矩陣方差的遺忘因子λe設為0.9。
各種算法收斂曲線見圖2。從剩余均方誤差(excess mean squares error, EMSE)曲線可以得到如下結論:
圖2 EMSE對應迭代次數(shù)的收斂曲線Fig.2 The convergence curves of EMSE vs. iteration number
1) 傳統(tǒng)FxLMS及FxRLS算法對次級通路估計非常敏感。當次級通路估計誤差由-6 dB增加到-3 dB,FxLMS算法方差增加,而FxRLS算法出現(xiàn)發(fā)散的情況。
2) 如果正確選擇正則化系數(shù),L2-FxLMS算法可以通過增加diagonal loading有效降低控制器估計方差。
3) 在比較的算法中,S-FxRLS算法無論在低建模誤差還是高建模誤差,均具有最快的跟蹤速度和最佳的魯棒性,這得益于狀態(tài)方程對控制器先驗概率預測的有效性。
ANC系統(tǒng)降噪量測量實驗設置如圖3所示。右側白色揚聲器發(fā)出頻率為500 Hz的單頻噪聲,噪聲信號由白色揚聲器前方的參考傳聲器接收,作為參考信號傳給控制器(由筆記本電腦發(fā)出指令,控制器實現(xiàn))。控制器驅動左側黑色揚聲器發(fā)出抵消聲,抵消聲與誤差傳聲器處接收到的噪聲源信號相互抵消;同時,誤差傳聲器接收到的殘差信號也反饋給控制器。
圖3 ANC系統(tǒng)降噪量測量實驗設置圖Fig.3 The settings of the measuring experiment of an ANC system.
ANC開啟前與開啟后誤差信號功率譜密度(power spectral density, PSD)如圖4所示。噪聲源信號(藍色虛線)經(jīng)ANC控制后,500 Hz的噪聲信號由-10 dB降低到-40 dB(紅色實線),降噪量達到30 dB。這一過程中,次級通道由系統(tǒng)識別算法得到。得益于提出算法無偏估計的特性(具體見均值分析及式(11))以及對次級通道誤差的魯棒性,算法的降噪性能較穩(wěn)定。
圖4 ANC控制器開啟前后,誤差信號功率譜密度Fig.4 Power spectral density of the error signal collected by the error microphone when ANC is on and off
本文提出一種魯棒ANC算法。通過算法性能理論分析證明該算法對于次級通道建模誤差引起的算法發(fā)散問題有較好的抑制作用。同時,性能分析結果對于提出算法用戶參數(shù)的選擇具有指導作用。仿真及測量實驗證明,基于狀態(tài)方程的FxRLS(S-FxRLS)算法收斂速度比傳統(tǒng)濾波最小均方(FxLMS)算法提高了約60%;穩(wěn)定性方面,當采用正則化技術的魯棒方法開始發(fā)散時,改進算法仍可收斂。最后實驗測量證明,提出算法的單頻降噪量可達30 dB。