吳禮福 李佳強 陳 定 郭曉董 焦 坤
(1南京信息工程大學電子與信息工程學院 南京 210044)
(2江蘇省大氣環境與裝備技術協同創新中心 南京 210044)
隨著經濟、社會的快速發展,噪聲污染已成為一大嚴峻的環境問題[1?3]。有源噪聲控制(Active noise control,ANC)是一種通過主動產生的次級聲信號與原噪聲信號相互作用的方式而達到降噪效果的方法[4?5],在有源降噪耳機[6]、有源降噪頭靠[7]、電力變壓器噪聲控制[8]等領域已有廣泛的應用。反饋有源控制系統無需獲取參考信號,系統構造簡單,成本低,具有重要的應用前景。然而,反饋系統也有自身的不足,一是有效降噪頻帶較窄,二是系統穩定性較差,三是存在水床效應,即不同頻段的噪聲衰減特性不是孤立的,一個頻段內的噪聲衰減通常伴隨著另一頻段內的噪聲放大[9?10]。
目前,反饋有源控制系統的設計方法可分為兩類。一類是離線設計方法,例如運用H∞魯棒控制理論設計反饋系統[6]、基于H2/H∞的優化方法設計反饋系統[7],文獻[10]采用最小二乘的優化方法對水床效應中的噪聲放大進行展平來設計反饋控制系統。離線設計方法的主要思想是構造一個和系統降噪性能有關的代價函數與約束條件,然后根據此代價函數,通過某種優化算法計算出控制器。然而,這些設計中采用的優化算法通常都不能保證尋找到的一定是最優解,且優化算法一般對初始值的選擇都較為敏感,實際設計中通常需要足夠的經驗和多次嘗試才能獲得滿意的控制器參數。此外,這類方法不具有自適應能力,即離線設計好的反饋系統不能隨著環境的變化而自適應調整。另一類是在線設計方法,例如,Luo等[11]采用小波包分解噪聲信號的方法調整反饋控制系統的控制器;Wu等[12?13]提出了一種簡化的自適應反饋控制系統,該系統將誤差信號直接用作參考信號,從而省去了次級信號與次級路徑估計的濾波運算,降低了系統的復雜度。同時文獻[12]中提出采用時域泄漏濾波-x最小均方(Filtered-x least mean square,FxLMS)算法可以改善系統的穩定性。這些方法雖然可以根據環境的變化而自適應調整,但是它們都沒有明確考慮反饋系統中固有的水床效應引起的噪聲放大現象。
為了克服前述離線設計方法的不足,同時考慮噪聲放大現象,本文研究了一種反饋有源控制系統的自適應設計算法,該算法在獲取降噪性能的同時,能有效調節水床效應引起的噪聲放大。
圖1(a)是基于內模型控制(Internal model control)的自適應反饋有源噪聲控制系統結構,它包含用于采集誤差信號e(n)的誤差傳感器,用于產生次級信號y(n)的次級聲源(揚聲器),待降低的初級噪聲d(n),合成的參考信號x(n)和控制器W(z)。反饋系統的目標是尋找合適的控制器W(z)對x(n)進行處理得到次級信號y(n),y(n)經次級路徑S(z)后到達誤差傳感器處與d(n)相抵消。次級路徑S(z)主要包括數模(D/A)轉換、重構濾波器、功放、揚聲器和揚聲器與誤差傳聲器之間的聲學路徑、誤差傳聲器、前置放大、抗混疊濾波器和模數(A/D)轉換等。為了補償次級路徑的影響,可以利用次級路徑的估計?S(z)對參考信號x(n)進行濾波后作為LMS算法的輸入,因此稱作FxLMS算法。
圖1(b)是文獻[12]中提出的簡化(Simplif i ed)自適應反饋系統結構,與圖1(a)的區別是參考信號x(n)直接取自誤差信號,而不是用經過?S(z)濾波后的次級信號來合成。本文的算法完全適用于圖1所示兩種結構的反饋系統,因此,若無特別說明,后續推導中不再明確區分。

圖1 自適應反饋有源噪聲控制系統Fig.1 Block diagram of adaptive feedback ANC systems
反饋系統的水床效應是指一個頻段內的噪聲衰減通常伴隨著另一頻段內的噪聲放大[9?10],因此,在反饋系統的離線設計中,將噪聲放大量作為一個約束條件,通過最小化誤差信號能量來求解控制器W(z)。從圖1可以看出,在z變換域,Y′(z)與初級噪聲D(z)在誤差傳聲器處相互抵消后有

Y′(z)滿足

其中,X′(z)=X(z)S(z)是用次級路徑的估計?S(z)對參考信號x(n)進行濾波后的信號。由式(2)可知如果能夠限制控制器W(z)在某個頻段內的幅度響應,則信號Y′(z)中該頻段內的能量就會受限,最終可以調節E(z)中該頻段內的噪聲放大量。這是本文算法的出發點。
常用的頻域LMS算法是塊LMS算法的快速實現方式,運用快速傅里葉變換(Fast Fourier transform,FFT)及重疊保留法可以節省大量運算量,但會有一個塊長度的延時[14],這種延時會導致ANC系統性能的顯著下降,因此在ANC系統中采用的是圖2所示的頻域FxLMS算法,該算法是在時域實現濾波操作以避免一個塊長度的延時,而在頻域完成濾波器系數的更新[15]。
圖2中控制器w是一個L階FIR(Finite impulse response)濾波器,即w(n)=[w0(n),w1(n),···,wL?1(n)]T,n是時間序號,上標T表示轉置。為了避免循環卷積效應,FFT和IFFT的長度都為2L。xf(n)是利用次級路徑的估計?S(z)對參考信號x(n)進行濾波后的信號,誤差信號e(n)滿足

其中,

w(n)的迭代方式為


圖2 在時域濾波頻域更新系數的頻域FxLMS算法Fig.2 Frequency domain FxLMS algorithm with time domain f i ltering and frequency domain adaptation
其中,μ為步長,{·}+表示取因果部分操作,X?(k)表示X(k)的復共軛。頻域矢量X(k)和E(k)都是2L點的FFT系數,分別由其對應的時域矢量計算得到

式(7)中的0是L點的零矢量,e(n)為

式(5)~(8)描述的頻域算法的代價函數為

算法在迭代過程中僅考慮最小化式(9),而沒有考慮其他約束條件。
由前述分析可知,為了調節反饋系統中的噪聲放大量,可以對w(n)某些頻段內的幅度響應進行限制,頻域自適應算法恰好可以方便直接地限制控制器W(z)在某個頻段內的幅度響應,即增加如下約束:

其中,W(k)是w的離散傅里葉變換的第k個系數,即

此處,fk=[0 e?j2πk/L ··· e?j2π(L?1)k/L]T是離散傅里葉變換矩陣的第k個列矢量。將式(11)帶入式(10),并由|W(k)|2=W(k)W?(k)可得

因為wTFw=|W(k)|2,所以矩陣F=f?kfTk是一個半正定陣。式(12)表明ck是w的二次型表達式,即式(12)是一個“凸”的約束條件,其中ck對w求偏導數可得

為了調節反饋系統中的噪聲放大量并同時獲得降噪量,本文提出在滿足式(12)的約束下,最小化式(9),為此將式(12)作為“懲罰項”添加到式(9)中得到新的代價函數為

其中,0<λ<1是“懲罰因子”。
從式(14)可以看出,當ck6 0時,也就是滿足式(12)的約束條件時,符號函數sign(ck)=?1,“懲罰項”=0,式(14)與式(9)相同,此時以獲取最大降噪量為目標;當ck>0時,也就是不滿足式(12)的約束條件時,符號函數sign(ck)=1,“懲罰項”ck=ck,此時要兼顧降噪量與噪聲放大,在降噪量與噪聲放大之間折衷。
依據最速下降法可以求得式(14)決定的w的更新方式為

與式(5)相比,式(15)的運算量并沒有劇烈地增長,迭代過程中僅增加了4λLW(k)一項的開銷。

圖3 有源降噪耳機實驗系統的器件連接Fig.3 The devices connection in the active noise control headphone experiments
本文在有源降噪耳機的實例中驗證算法性能,將市場上購買的有源降噪耳機拆解后,引出參考傳聲器、誤差傳聲器、次級源的信號線,保持耳機整個結構不變。按照圖3所示搭建信號采集系統,耳機佩戴到B&K公司的人工頭(4182C)上后[12],將耳機的參考傳聲器、誤差傳聲器經過傳聲器前放后連接到B&K公司的PULSE,PULSE一方面將參考信號,誤差信號與次級源信號輸送到電腦,另一方面也給揚聲器(噪聲源)提供信號。
實驗在全消聲室中進行,如圖4(a)所示,初級聲源分別位于人工頭正前方、正左方、正右方和正后方,距離人工頭0.3 m。系統的采樣率為16000 Hz。首先利用次級源和誤差傳聲器信號為次級路徑S(z)建模得到?S(z),此處?S(z)為256階的FIR濾波器。

圖4 初級聲源的四個位置及消聲室中的實驗場景Fig.4 Diagrammatic view of the 4 dif f erent incident directions of the primary noise and the experimental conf i guration in the anechoic chamber
對于圖1所示的自適應反饋系統,本文選用了如下三種算法分別迭代得到控制器后,對比三種算法的降噪量:式(5)所示的頻域自適應算法(后文以“FDFxLMS”標記),文獻[12]中使用的時域泄漏FxLMS算法(后文以“Leaky”標記)和本文式(15)表示的頻域自適應算法(后文以“cFDFxLMS”標記)。控制器W(z)都為512階FIR濾波器,即式(4)中L=512。三種算法的參數設定列于表1中。“FDFxLMS”算法中的步長μ=0.003;“Leaky”算法中的μ =0.004,γ =0.05,相當于泄漏因子為0.9998[12];“cFDFxLMS”算法中μ =0.004,λ =0.01,式(10)中k取值為153~256之間的自然數,θ(k)=1.78,在16000 Hz系統采樣率時,對應于在2400 Hz~4000 Hz范圍內限制W(z)的幅度小于5 dB。這是考慮到在降噪耳機的實際應用中,有源控制主要是降低1000 Hz以下的噪聲,對于2000 Hz~4000 Hz頻段內的噪聲放大容易讓人反感,因而此處參數設定是為了限制2400 Hz~4000 Hz頻帶內的噪聲放大。需要指出的是,參數θ(k)只是限定了控制器W(z)的幅度相應,只能調節噪聲放大量,而無法與噪聲放大量精確對應,也就是說,本文算法很難通過噪聲放大量的閾值反推出具體的θ(k)。

表1 三種算法中的參數設定Table 1 Parameters setting in the FDFxLMS algorithm,the leaky FxLMS algorithm and the cFDFxLMS algorithm
三種算法的降噪量如圖5所示。圖5(a)是圖1(a)所示內模型控制反饋系統的結果,可以看出,“FDFxLMS”算法的有效降噪頻帶是2000 Hz以下,在100 Hz~700 Hz范圍內可以獲得10 dB以上的降噪量,在300 Hz附近可以獲得23 dB的最大降噪量;時域泄漏FxLMS算法的有效降噪頻帶是1000 Hz以下,在300 Hz附近可以獲得8 dB的最大降噪量;本文算法的有效降噪頻帶也是1000 Hz以下,在300 Hz附近可以獲得17 dB的最大降噪量。雖然“FDFxLMS”算法在三種算法中的降噪量最大,但是其噪聲放大也是最嚴重的,特別是在2400 Hz~4200 Hz范圍內,其噪聲放大量為5~9 dB;時域泄漏FxLMS算法的噪聲放大量最小,都低于2 dB并且近似均勻分布在1000 Hz~6000 Hz的范圍內;本文算法的噪聲放大量要高于時域泄漏FxLMS算法而低于“FDFxLMS”算法,其在1000 Hz~6000 Hz范圍內的噪聲放大量均小于4 dB。
圖5(b)是圖1(b)所示簡化反饋系統的結果,可以看出,“FDFxLMS”算法、時域泄漏FxLMS算法和本文算法的最大降噪量也是在300 Hz附近獲得,分別是21 dB、7 dB和13 dB。與圖5(a)的現象類似,“FDFxLMS”算法在三種算法中的噪聲放大也是最嚴重的,其在2500 Hz~3000 Hz范圍內的噪聲放大量甚至在10~15 dB之間,而本文算法可以控制目標頻帶內的噪聲放大量小于4 dB。

圖5 FDFxLMS算法、時域泄露FxLMS算法和本文算法的降噪性能比較Fig.5 The ANC performance of the internal model control and the simplif i ed feedback systems based on the FDFxLMS algorithm,the leaky FxLMS algorithm and the proposed algorithm.
圖5 結果表明本文算法在最大降噪量上比“FDFxLMS”算法差,其原因可以從式(9)和式(14)的對比中看出,“FDFxLMS”算法在控制器系數的迭代過程中僅考慮最小化誤差信號的能量,而沒有考慮其他約束條件,因此其降噪量最好,然而其噪聲放大也最嚴重,而本文算法對控制器在某些頻段內的幅度加以限制,當控制器系數在迭代過程中違反了該限制時,就會受到“懲罰”,算法不再只考慮最小化誤差信號的能量,而是要兼顧降噪量與噪聲放大,在降噪量與噪聲放大之間折衷。
圖5結果也表明本文算法在降噪性能上優于時域泄漏FxLMS算法,其原因分析如下。時域泄漏FxLMS算法的代價函數為[16]

其中,0<γ<1,相應的控制器系數迭代公式為

式(16)中也加入了懲罰項“γwT(n)w(n)”,而wT(n)w(n)= ∥w(n)∥2,即時域泄漏FxLMS算法在迭代過程中約束了控制器系數的二階范數,等效于限制了控制器在整個頻帶內的能量,而式(14)僅僅限制了在某些頻帶內的幅度(仿真中為2400 Hz~4000 Hz),因此時域泄漏FxLMS算法可以看作是本文算法的一種特例。另一方面,如果將本文算法的迭代公式(15)中的k取全頻帶,取近似w(n)≈IFFT{W(k)}+,則式(15)中的第二行可以近似表示為

此時式(18)與式(17)相近,每次迭代過程中都將w(n)乘以一個泄漏因子(1?4μλL),這也表明時域泄漏FxLMS算法可以看作是本文算法的一種特例。綜前所述,與“FDFxLMS”算法相比,本文算法明確考慮了噪聲放大現象,與時域泄漏FxLMS算法相比,本文算法能夠更為直接精確地對控制器系數施加約束,從而在降噪量與某個頻段內的噪聲放大量之間做好調節。
為了能在自適應反饋系統中同時調節噪聲放大現象,本文理論分析后發現通過限制控制器在某個頻段內的幅度響應可以調節該頻段內的噪聲放大量,據此提出了一種反饋有源控制系統的自適應算法,其目標函數在最小化誤差信號能量的同時加入“懲罰項”以調節噪聲放大量。在有源降噪耳機實例中的對比結果表明:與已有“FDFxLMS”算法相比,本文算法對噪聲放大量施加了約束;已有時域泄漏FxLMS算法可以看作是本文算法的一種特例,并且本文算法能夠更為直接精確地對指定頻段內的噪聲放大量進行調節。