王磊, 陳克安, 胥健, 齊旺
(西北工業(yè)大學(xué) 航海學(xué)院, 陜西 西安 710072)
區(qū)別于傳統(tǒng)的無源噪聲控制,有源噪聲控制(active noise control,ANC)利用聲波的相消性干涉,主要在低頻范圍發(fā)揮作用[1]。一般情況下,人們采用局部空間降噪代替全局降噪以降低系統(tǒng)復(fù)雜度,這樣只需要在人耳附近獲得降噪效果即可,因此有源頭靠技術(shù)有著重要的實際價值[2]。
為了能夠在人耳附近形成靜區(qū)又不影響人的活動,誤差傳聲器通常會放置在離人頭較遠的位置。為了在人耳處形成靜區(qū),主要的辦法就是采用虛擬誤差傳感技術(shù)[3-6],這樣就可以在以虛擬誤差傳聲器為中心的較小空間內(nèi)形成降噪?yún)^(qū)域。利用遠程傳聲器技術(shù)(remote microphone technique,RMT),事先測量初級聲場中物理誤差傳聲器與虛擬誤差傳聲器間的傳遞函數(shù),以物理誤差傳聲器處的聲場估計虛擬誤差傳聲器處的聲場,從而實現(xiàn)虛擬誤差點的有源噪聲控制[7]。Kestell在自由場中利用前向差分預(yù)測外推多項式估計虛擬誤差點的聲壓[8]。Diaz在火車車廂模型的ANC系統(tǒng)中使用虛擬誤差傳感使得人耳附近達到15 dBA的降噪量[9]。Petersen等利用卡爾曼濾波(Kalman filter,KF)準確估計出虛擬誤差點的聲壓,從而在較寬的范圍內(nèi)達到降噪效果[10]。雖然以上文獻采取的誤差傳感策略不盡相同,但是它們在ANC控制過程中均采用FxLMS算法,在收斂速度和穩(wěn)態(tài)誤差等方面存在限制。
KF是基于狀態(tài)空間的算法。Lopes在單通道ANC系統(tǒng)中采用KF算法,比FxLMS和FxRLS算法獲得更多的降噪量[11],在此基礎(chǔ)上,將ANC系統(tǒng)的狀態(tài)空間描述為簡單的隨機游走模型,獲得了更加穩(wěn)定的KF求解方法[12]。Ophem等將KF算法的應(yīng)用擴展到多通道ANC系統(tǒng),對參考信號進行平移,采用快速陣列算法降低了運算量[13]。Liebich等基于濾波器系數(shù)推導(dǎo)了新的狀態(tài)轉(zhuǎn)移矩陣代替簡單的隨機游走模型,進一步提升了收斂速度[14]??偟膩碚f,KF算法以增加運算量為代價,提升了ANC系統(tǒng)的降噪性能,但其在算法穩(wěn)定性上仍然存在一些問題。
本文針對虛擬誤差點的噪聲控制問題,采用KF算法提升系統(tǒng)的收斂速度和穩(wěn)態(tài)誤差。首先算法狀態(tài)變量只包含控制濾波器系數(shù),從根本上降低了KF的運算負擔(dān)。為了進一步降低算法的運算量,采用快速陣列算法。KF中的參數(shù)對算法性能有著決定性的影響,進一步對算法進行改進,給出了過程噪聲協(xié)方差矩陣Q1和測量噪聲協(xié)方差矩陣Q2的估計方法,保證了濾波結(jié)果的收斂。最后與FxLMS算法進行比較,通過仿真驗證提出算法的有效性及穩(wěn)定性。
如圖1所示的有源降噪頭靠通常包含次級聲源、物理誤差傳聲器和虛擬誤差傳聲器。物理誤差傳聲器布置在距離人頭較遠的位置,虛擬誤差傳聲器布置在人耳位置。實際的自適應(yīng)有源控制過程包括預(yù)辨識階段和控制階段。在預(yù)辨識階段估計初級聲場中物理誤差傳聲器與虛擬誤差傳聲器間的傳遞函數(shù)和次級通路傳遞函數(shù)。虛擬誤差傳聲器只在預(yù)辨識階段放置,控制階段通過物理誤差傳聲器的聲壓估計該處的聲壓。
圖1 有源頭靠示意圖
通過虛擬誤差傳感技術(shù)將局部靜區(qū)從物理誤差傳聲器位置處移至虛擬誤差點位置。為了實現(xiàn)靜區(qū)的傳遞,采用RMT的ANC系統(tǒng)如圖2所示。
圖2 基于RMT的ANC系統(tǒng)
物理誤差傳聲器處的實際誤差信號ep(n)為初級信號dp(n)與次級聲源在誤差點形成的抵消信號s(n)的疊加
ep(n)=dp(n)+s(n)
(1)
則其初級信號的估計為
(2)
式中,y(n)為控制濾波器輸出的次級信號
y(n)=x(n)*w(n)
(3)
進而可以獲得虛擬誤差點處的誤差信號估計
(4)
通過LMS算法原理,利用濾波-x信號與估計的誤差信號對控制濾波器權(quán)系數(shù)w(n)進行更新,有
(5)
式中:μ為步長參數(shù);rv(n)為參考信號x(n)經(jīng)過次級通路濾波之后的濾波-x信號
(6)
由于迭代過程中使用的誤差信號為虛擬誤差點位置處的誤差信號估計,則控制系統(tǒng)將在虛擬誤差點取得降噪效果,系統(tǒng)性能將會受到估計準確性的影響。
LMS算法對特征值擴散度具有較高的敏感性,可能導(dǎo)致較慢的收斂速度[15]。由于具有良好的過程參數(shù)估計,KF在收斂速度和魯棒性方面往往優(yōu)于大多數(shù)自適應(yīng)算法,KF算法引入了系統(tǒng)的狀態(tài)空間模型和狀態(tài)變量等概念?;贙F的有源頭靠虛擬誤差點噪聲控制系統(tǒng)如圖3所示。
圖3 基于KF的虛擬誤差點ANC系統(tǒng)
(7)
式中:I為參考傳聲器個數(shù);J為次級聲源個數(shù);L為控制濾波器階數(shù);Kv為虛擬誤差點個數(shù)。
則應(yīng)用于虛擬誤差點噪聲控制的多通道KF算法可以如下表示
(10)
(11)
Kk(n)=F(n)P(n)rv(n)
(12)
P(n+1)=F(n)P(n)FT(n)-
(13)
w(n+1)=F(n)w(n)+Kk(n)R-1(n)α(n)
(14)
式中,P(n)為狀態(tài)估計誤差的相關(guān)矩陣。即
P(n)=E[w0(n)-w(n)][w0(n)-w(n)]T
(15)
表1中總結(jié)了描述有源頭靠噪聲控制的KF算法中用到的變量。
表1 卡爾曼變量小結(jié)
假設(shè)系統(tǒng)為隨機游走模型,狀態(tài)轉(zhuǎn)移矩陣選為單位矩陣,即F(n)=IIJL。KF算法以增加運算量為代價,提高了系統(tǒng)的收斂速度和降噪效果。以單位采樣時間內(nèi)算法所需的乘法運算次數(shù)作為運算量,基于KF的有源頭靠降噪系統(tǒng)的運算量為
(16)
在上述模型中,已經(jīng)假設(shè)整個ANC系統(tǒng)是線性的,且過程噪聲與測量噪聲皆為白噪聲。參數(shù)Q1(n)表示過程噪聲協(xié)方差,描述系統(tǒng)模型的不確定性,Q2(n)表示測量噪聲協(xié)方差,描述測量的不確定性。在實際情況中,Q1(n)和Q2(n)都是不能直接觀測的。針對建模不精確的問題,為了保證算法收斂,利用可觀測數(shù)據(jù)對過程噪聲和測量噪聲進行實時估計調(diào)整。
Q1(n)可以表示為
(17)
有
(18)
由(14)式可得
(19)
以時間平均代替集平均
(20)
(21)
式中,0?β≤1。
測量噪聲協(xié)方差為
Q2(n)=diag{E[α(n)αT(n)]}
(22)
同樣地,有
Q2(n)=βQ2(n-1)+(1-β)diag{α(n)αT(n)}
(23)
(21)式和(23)式給出了過程噪聲與測量噪聲協(xié)方差矩陣的實時更新策略,當(dāng)參數(shù)選取不當(dāng)時,利用該策略可以在一定程度上避免濾波發(fā)散。
為了降低算法的運算量,采用快速陣列算法,利用Chandrasekhar遞歸代替Riccati方程[16]。此時控制濾波器權(quán)系數(shù)改寫為
(24)
狀態(tài)估計誤差的相關(guān)矩陣
(25)
該系統(tǒng)的狀態(tài)空間方程為
(27)
則有
(28)
式中
(29)
Δ=
(30)
(11)~(13)式可以改寫為
L(n-1)M(n-1)LT(n-1)
(34)
(35)
通過(35)式在后陣列中形成零矩陣塊,其中Θ為酉矩陣,滿足
Θ(n-1)J(n-1)ΘT(n-1)=J(n-1)
(36)
式中
J(n-1)=IK?M(n-1)
(37)
由(25)式可得
(38)
(39)
同理可得
(40)
則控制濾波器權(quán)系數(shù)的迭代為
(41)
式中
(42)
(10)、(35)和(41)式構(gòu)成了多通道KF快速陣列算法,其運算量為
(43)
由(16)式和(43)式可以看出,KF快速陣列算法的運算量遠遠小于KF算法的運算量。如果ANC系統(tǒng)中I=1,J=Kp=Kv=2,M=N=128,L=256,則基于KF的有源頭靠系統(tǒng)運算量為10 567 68次乘法,而快速陣列算法的運算量為24 720次乘法。
為了驗證所提算法的性能,在初級噪聲為寬帶噪聲的情況下,將提出的算法與基于FxLMS算法的有源頭靠系統(tǒng)進行了比較。仿真數(shù)據(jù)來自普通房間中的實測有源頭靠數(shù)據(jù)。系統(tǒng)中所含電聲器件個數(shù)為I=1,J=Kp=Kv=2。初級聲源位于人工頭后方,虛擬誤差傳聲器位于人工頭耳內(nèi)部,次級聲源、物理誤差傳聲器和虛擬誤差傳聲器位于同一高度處。采樣頻率為fs=2 000 Hz。
在ANC開始工作之前,首先對初級聲場中物理誤差傳聲器與虛擬誤差傳聲器之間的傳遞函數(shù)及次級通路脈沖響應(yīng)進行辨識,建模濾波器皆為FIR濾波器,階數(shù)M=N=256。首先由初級聲源發(fā)聲,物理傳聲器與虛擬傳聲器接收聲壓信號,從而獲得它們之間的傳遞函數(shù),建模結(jié)果如圖4所示。從圖中可以看出,利用物理誤差傳聲器處的初級信號可以大致估計出虛擬誤差傳聲器處的初級信號。
圖4 虛擬誤差點初級信號估計
然后由次級聲源發(fā)聲,獲得次級通路模型。圖5給出了次級聲源J1分別到虛擬誤差傳聲器Kp1和虛擬誤差傳聲器Kv1之間的脈沖響應(yīng)。由圖中可以看出,次級聲源到虛擬誤差傳聲器的時延大于到物理誤差傳聲器的時延。
圖5 次級通路脈沖響應(yīng)
ANC系統(tǒng)中通常使用傳聲器作為參考傳感器。在計算機仿真中,假設(shè)不存在聲反饋。分別利用FxLMS算法和KF算法對估計出來的虛擬誤差進行控制??刂茷V波器階數(shù)選為L=512。為了評估不同算法的降噪性能,定義
(44)
在第一組仿真中,參考信號設(shè)為零均值的高斯白噪聲。將KF算法標為KF1,KF快速陣列算法標為KF2。通過試錯選擇算法的最佳參數(shù),以獲得每種算法的最佳性能。FxLMS算法步長參數(shù)為μ=5.23×10-4;KF1中Q1=0,Q2=10-3I;KF2中Q1=0,Q2=3×10-3I,仿真結(jié)果如圖6所示。
圖6 算法性能比較
圖6a)中給出了3種算法RN的對比,由圖6a)中可以看出,在算法開始階段,2種KF算法迅速收斂到較小的RN值。KF1算法和KF2算法能夠獲得近似的降噪效果。算法運行經(jīng)過200 s后,FxLMS算法的RN值為-9.7 dB,KF1和KF2算法的RN值為-13.4 dB。第一個虛擬誤差點處的穩(wěn)態(tài)誤差信號頻譜如圖6b)所示。3種算法的最終降噪效果近似,RN值分別為-11.3 dB,-14.1 dB和-14.2 dB。
為了使得KF算法有效,需要合理選擇算法中的協(xié)方差參數(shù)Q1和Q2,如果參數(shù)選擇不當(dāng),將無法達到好的降噪效果,甚至有可能引起濾波過程發(fā)散,這時,狀態(tài)噪聲估計的優(yōu)勢得以顯示出來。隨機選擇2組Q1和Q2,KF3表示在KF1中進行狀態(tài)噪聲協(xié)方差估計。性能比較如圖7所示,圖7a)表現(xiàn)了全局對比,圖7b)細化了0.5 s以內(nèi)的局部對比。由圖中可以看出,當(dāng)Q1=Q2=10-6I,KF1在算法開始階段迅速發(fā)散,而KF3依舊能達到好的降噪效果,當(dāng)Q1=10-8I,Q2=10-1I,KF1和KF3都能達到收斂,但是KF3有更快的收斂速度。由此可以看出噪聲估計策略可以在一定程度上保證算法快速收斂。
圖7 狀態(tài)噪聲估計性能對比
在第二組仿真中,設(shè)置106 s時初級信號d(n)幅度突然發(fā)生變化,變?yōu)樵瓉淼?/2。分別對KF1和KF3算法進行仿真,結(jié)果如圖8所示。圖8a)給出了算法的RN對比,第一個虛擬誤差點處的誤差信號時域圖如8b)所示。由圖中可以看出,當(dāng)初級信號發(fā)生突變時,KF1算法收斂緩慢,KF3算法中誤差信號幅度迅速減小,收斂到較低的RN值。算法運行至200 s時, KF1和KF3算法的RN值分別為-5.1 dB和-14.2 dB。仿真結(jié)果表明,KF3算法能夠有效跟蹤系統(tǒng)的動態(tài)變化。
圖8 狀態(tài)噪聲估計性能對比
本文對有源頭靠中虛擬誤差點的有源降噪進行了研究,提出了基于KF的算法,建立了狀態(tài)空間方程。與FxLMS算法相比,基于KF的算法收斂速度更快,且收斂后的殘余噪聲更小。進一步地,為了保證算法收斂,提出了狀態(tài)空間噪聲協(xié)方差估計策略,在KF參數(shù)選擇不當(dāng)時仍然能夠保證降噪效果,并且能夠跟蹤系統(tǒng)變化。引入快速陣列方法后降低了KF算法的運算量。仿真結(jié)果證明,提出的算法能夠獲得更好的性能。