翟克寧
(東風(fēng)柳州汽車有限公司,廣西 柳州 545005)
噪聲主動(dòng)控制技術(shù)在很多方面都得到了廣泛的應(yīng)用,主動(dòng)降噪系統(tǒng)可以有效地降低被動(dòng)降噪方法無法解決的低頻噪聲[1]。
當(dāng)系統(tǒng)出現(xiàn)脈沖噪聲的時(shí)候,基于Fxlms(Filter-x least mean square)算法的主動(dòng)降噪系統(tǒng)會(huì)變得不穩(wěn)定。為了解決脈沖噪聲,許多算法已經(jīng)被提出來[2]。在1995,年Leahy提出的 FxLMP(filter-x least mean p-power)算法,該算法以誤差信號(hào)P次方最小化代替最小誤差信號(hào)均方值為目標(biāo)函數(shù)。后來,Wu et al.提出了以誤差信號(hào)對(duì)數(shù)值最小為目標(biāo)函數(shù)的對(duì)數(shù)主動(dòng)降噪算法Fxloglms(Filter-x logarithmic error lms)[3]。 在 2012 年,George 基于神經(jīng)網(wǎng)絡(luò)算法進(jìn)行魯棒性設(shè)計(jì),提出了 RFslms(Robust filter-x lms)算法[4]。2017年,Lu et al.基于最大相關(guān)熵MCC提出了FxRMC算法能有效地降低脈沖噪聲信號(hào),但是該算法存在計(jì)算復(fù)雜度過大問題[5]。
最大相關(guān)熵MCC能很好地描述兩個(gè)隨機(jī)變量之間的關(guān)系[6]。在主動(dòng)降噪系統(tǒng)中,MCC用來描述初始信號(hào)和濾波器產(chǎn)生的期望信號(hào)之間的關(guān)系。基于主動(dòng)降噪基本原理,當(dāng)兩個(gè)隨機(jī)信號(hào)相似度大時(shí)候,系統(tǒng)能有效地較低噪聲信號(hào)。本文,基于最大相關(guān)熵MCC提出了一種變步長(zhǎng)FxnMCC算法。該算法能有效地降低脈沖噪聲,但是算法的收斂速度遠(yuǎn)不如FxRMC算法。因此本文進(jìn)一步提出了混合H-Fx-RMC算法。該混合算法結(jié)合了FxRMC算法收斂速度快和FxnMCC算法降噪性能好的優(yōu)點(diǎn),并且提高了系統(tǒng)的魯棒性能。本文最后在Matlab平臺(tái)進(jìn)行仿真試驗(yàn),試驗(yàn)結(jié)果表明提出的算法能更好地降低脈沖噪聲。
在一些惡劣的環(huán)境中,SαS信號(hào)或噪聲具有顯著的尖峰脈沖特性和拖尾特性。SαS穩(wěn)定分布是非常重要的非高斯分布,能很好地描述這種尖峰脈沖特性以及嚴(yán)重的拖尾特性。穩(wěn)定分布是一類具有廣泛代表性的隨機(jī)分布模型。它們的概率密度函數(shù)沒用統(tǒng)一的封閉表達(dá)式,但它的特征函數(shù)存在統(tǒng)一的形式。其中SαS信號(hào)可以表達(dá)為:
其中,r=log10[rand(1,L)],rand(,)是指符合均勻分布的隨機(jī)數(shù);Φ維度為1×L并且是在范圍內(nèi)的隨機(jī)數(shù)。α的取值范圍約束在0到2,當(dāng)α越小噪聲信號(hào)的脈沖程度越高,反之亦然。當(dāng)α=1時(shí)候噪聲符合柯西分布,當(dāng)α=2時(shí),噪聲符合高斯分布。
如圖1所示,基于前饋控制系統(tǒng)的主動(dòng)降噪系統(tǒng)框圖。圖中,x(n)表示參考噪聲信號(hào),通過參考信號(hào)拾音器測(cè)得;d(n)表示初始噪聲信號(hào),表示為目標(biāo)降噪點(diǎn)處原有噪聲信號(hào);p(z)為初級(jí)傳遞函數(shù),它表示初級(jí)信號(hào)傳遞途徑的傳遞函數(shù);s(z)表示次級(jí)傳遞函數(shù),用于描述揚(yáng)聲器布放位置到目標(biāo)降噪點(diǎn)的傳遞函數(shù);y(n)表示濾波器生成的信號(hào);e(n)表示降噪后的殘余噪聲信號(hào),其中 e(n)=d(n)-y(n)。
圖1 自適應(yīng)有源前饋控制系統(tǒng)示意圖
主動(dòng)降噪系統(tǒng)的輸入信號(hào)為參考信號(hào)x(n),假設(shè)其向量長(zhǎng)度為L(zhǎng),則可以表示為:
其中,L—輸入信號(hào)的長(zhǎng)度;n—時(shí)間索引。另外,濾波器系數(shù)向量W(n)可以表示為:
濾波器的輸出為y(n),可以表達(dá)為:
傳統(tǒng)的Fxlms算法以誤差信號(hào)均方值最小為目標(biāo)函數(shù),其濾波器系數(shù)更新公式表示為:
式中,X'(n)表示參考信號(hào)通過次級(jí)傳遞函數(shù)估計(jì)值(n)。 因此,在時(shí)域內(nèi),它表示參考信號(hào) x(n)和(n)的卷積:
本文算法是基于最大相關(guān)熵MCC來提高主動(dòng)降噪系統(tǒng)的魯棒性,最大相關(guān)熵描述了濾波器生成信號(hào)和初級(jí)噪聲信號(hào)之間的關(guān)系,以此為目標(biāo)函數(shù)能有效地控制脈沖噪聲的衰減。相關(guān)熵可以表示為:
其中 E(·)—期望值;Kσ(α,β)—一種高斯內(nèi)核大小;fα,β(α,β)—α 和 β 的聯(lián)合分布函數(shù)。 α、β—兩列隨機(jī)信號(hào),通常它們的高斯內(nèi)核Kσ(α,β)定義為:
然而對(duì)于離散信號(hào)序列來說,兩列隨機(jī)信號(hào)的相關(guān)熵可以表達(dá)為:
以期望信號(hào)和輸出信號(hào)的相關(guān)熵作為主動(dòng)降噪算法的目標(biāo)函數(shù),利用梯度法來尋求它們相關(guān)熵的最大值。因此主動(dòng)控制算法目標(biāo)函數(shù)為:
根據(jù)梯度法原理,濾波器權(quán)系數(shù)的更新公式為:
目標(biāo)函數(shù)的變化梯度為:
我們令因此FxMCC算法的濾波器權(quán)系數(shù)的更新方法可以表示為:
濾波器更新的收斂系數(shù)μ的值決定自適應(yīng)過程中系統(tǒng)收斂速度和穩(wěn)態(tài)誤差的大小。如果μ的值取值過大,將會(huì)導(dǎo)致系統(tǒng)發(fā)散不收斂。μ取值過小會(huì)導(dǎo)致系統(tǒng)收斂速度慢。一般來說收斂系數(shù)的取值取決于濾波器長(zhǎng)度和參考信號(hào)的功率,歸一化版本的FxnMCC算法就是讓濾波器收斂系數(shù)的值不斷地隨著參考信號(hào)功率更新,其表達(dá)式為:
因此,本文提出的FxnMCC算法的濾波器更新系數(shù)表達(dá)式可以重寫為:
FxRMC算法也是以期望信號(hào)d(n)和輸出信號(hào)y(n)的最大相關(guān)熵作為目標(biāo)函數(shù),但是濾波器采用遞歸形式進(jìn)行更新。FxRMC算法的主要公式如下:
其中 Gp(n)是濾波器增益向量,其維度長(zhǎng)度為 1×L;P(n)是輸入信號(hào)的自相關(guān)矩陣的逆,它的維度為L(zhǎng)×L;λ代表遺忘因、子λ小于并約等于1。
為了結(jié)合兩種算法的優(yōu)點(diǎn),本文進(jìn)一步提出了一種混合H-Fx-RMC算法?;旌纤惴ㄏ日{(diào)用FxRMC算法,使殘余噪聲到達(dá)較低的水平,之后再調(diào)用變步長(zhǎng)FxnMCC算法繼續(xù)調(diào)整濾波器權(quán)系數(shù)值,達(dá)到最優(yōu)降噪水平。為了決定什么時(shí)候轉(zhuǎn)化兩種算法,以平均噪聲減少量ANR(averaged noise reduction)作為標(biāo)準(zhǔn)定義一個(gè)固定的閾值ψ?;旌纤惴ㄒ婚_始采用FxRMC模式更新濾波器權(quán)系數(shù)W(n),當(dāng)噪聲平均降噪量ANR達(dá)到并小于設(shè)定的閾值ψ時(shí)候,混合算法轉(zhuǎn)化為FxnMCC算法更新濾波器權(quán)系數(shù)。因此混合算法的關(guān)系式可以表示為:
在主動(dòng)降噪系統(tǒng)中,ANR常用作為衡量算法降噪效果的標(biāo)準(zhǔn),表達(dá)式為:
其中,ξ=0.999,Ae(n)和 Ad(n)分別表示初始信號(hào) d(n)和殘余信號(hào)e(n)的估計(jì)值。閾值ψ的設(shè)定一般根據(jù)經(jīng)驗(yàn)為主,根據(jù)處理不同環(huán)境的噪聲進(jìn)行選擇。
在主動(dòng)降噪系統(tǒng)實(shí)際應(yīng)用中,為了滿足實(shí)時(shí)性控制,對(duì)系統(tǒng)的計(jì)算速度有一定的要求。主動(dòng)降噪算法的計(jì)算復(fù)雜程度對(duì)ANC系統(tǒng)計(jì)算速度有著直接的影響,算法的計(jì)算復(fù)雜度越高,相應(yīng)地對(duì)硬件系統(tǒng)的計(jì)算速度要求越快。這也會(huì)導(dǎo)致需要高質(zhì)量硬件部件,增大搭建主動(dòng)降噪系統(tǒng)的成本,因此如何降低算法的計(jì)算復(fù)雜度是一個(gè)很重要的實(shí)際應(yīng)用問題。
表1 算法計(jì)算復(fù)雜度對(duì)比
如表1所示。顯然FxRMC算法的計(jì)算復(fù)雜度比FxnMCC算法的大很多?;旌螲-Fx-RMC算法計(jì)算復(fù)雜度介于兩個(gè)算法之間。
本文基于MATLAB軟件進(jìn)行編程,仿真對(duì)比傳統(tǒng)的FxLMS、FxnMCC、FxRMC和 H-Fx-RMC算法處理脈沖噪聲的降噪性能。取不同值α的脈沖信號(hào)作為仿真參考輸入信號(hào)。圖2呈現(xiàn)了脈沖噪聲的時(shí)域圖,噪聲信號(hào)體現(xiàn)出尖峰脈沖特性。圖2描述了兩種情況不同α值的脈沖信號(hào)。
參考信號(hào)到降噪目標(biāo)點(diǎn)存在一個(gè)初級(jí)傳遞通道,一般來說用初級(jí)傳遞函數(shù)Q(z)來描述該通道,我們?cè)O(shè)置為Q(z)=z-3-0.3z-4+0.2z-5;類似地,主動(dòng)降噪系統(tǒng)的揚(yáng)聲器發(fā)出輸出信號(hào),輸出信號(hào)會(huì)經(jīng)過一段次級(jí)通道路徑,用次級(jí)傳遞函數(shù)描述該通道,可以表示為:S(z)=z-2+0.5z-3;本文仿真算法以ANR作為衡量算法降噪性能的標(biāo)準(zhǔn),根據(jù)ANR定義可知,當(dāng)ANR的值小于零,系統(tǒng)才有一定的降噪效果,若ANR越小,表明算法降噪能力越強(qiáng)。
圖2 脈沖信號(hào)時(shí)域圖,(a)α:=1.1, (b)α:=1.2
本小節(jié)試驗(yàn)中以圖2脈沖信號(hào)作為輸入信號(hào)。在算法仿真中,高斯內(nèi)核σ的大小設(shè)置為σ2=8,閾值取ψ=-6。FxnMCC算法和H-Fx-RMC算法的迭代步長(zhǎng)取μ=0.01,F(xiàn)xRMC算法的遺忘因子取λ=0.95。圖3描述的是不同算法降噪的ANR曲線。從仿真結(jié)果圖可知,傳統(tǒng)的FxLMS算法出現(xiàn)發(fā)散現(xiàn)象不能衰減脈沖噪聲,而本文提出的變步長(zhǎng)算法FxnMCC算法和混合H-Fx-RMC算法均能有效地降低脈沖噪聲,系統(tǒng)趨于收斂,相比FxLMS算法有更好的魯棒性。FxnMCC算法解決2500步才趨于收斂,而混合算法和FxRMC算法在1000步以內(nèi)便接近收斂。證明但是變步長(zhǎng)FxnMCC算法相對(duì)于FxRMC和混合HFx-RMC算法來說收斂速度慢。而通過第3節(jié)的計(jì)算復(fù)雜度對(duì)比我們知道,F(xiàn)xRMC算法計(jì)算復(fù)雜度比FxnMCC算法高很多,而混合算法在達(dá)到設(shè)定閾值時(shí)候會(huì)從計(jì)算復(fù)雜度高的FxRMC算法轉(zhuǎn)化到計(jì)算復(fù)雜度低的FxnMCC算法,因此相對(duì)FxRMC算法來說計(jì)算復(fù)雜度肯定是降低的。因此我們可以說混合H-Fx-RMC算法不僅能有效地降低脈沖噪聲并且具有收斂速度快計(jì)算復(fù)雜度較低的良好性能。
圖3 試驗(yàn)1不同算法仿真結(jié)果ANR曲線,(a)α:=1.1, (b)α:=1.2
本節(jié)試驗(yàn)的參考信號(hào)為脈沖噪聲和高斯分布噪聲想結(jié)合,混合類型參考信號(hào)噪聲如圖4所示,混合噪聲長(zhǎng)度為兩萬點(diǎn)數(shù),由分別取為前一萬點(diǎn)數(shù)符合α=2.0的高斯分布噪聲,后一萬點(diǎn)數(shù)為α=1.3的脈沖噪聲。圖5顯示了以混合噪聲為參考輸入噪聲時(shí)候,本文提出的算法仍然有良好的降噪效果,傳統(tǒng)的FxLMS算法迭代到接近一萬多步時(shí)候發(fā)散,再次驗(yàn)證傳統(tǒng)FxLMS算法在脈沖噪聲出現(xiàn)時(shí)候的性能不住。本文提出的FxnMCC和混合H-Fx-RMC算法能有效地降低脈沖噪聲,魯棒性比FxLMS算法強(qiáng),得到的其它結(jié)論和試驗(yàn)1相似。
圖4 混合噪聲
圖5 試驗(yàn)2不同算法仿真結(jié)果ANR曲線
本文進(jìn)行了脈沖噪聲存在時(shí)候提高魯棒性的算法研究?;谧畲笙嚓P(guān)熵MCC,本文提出了變步長(zhǎng)FxnMCC算法能很好地降低脈沖噪聲,提高主動(dòng)降噪系統(tǒng)的魯棒性和降噪性能。但是變步長(zhǎng)算法的收斂速度較慢,為了解決這個(gè)問題,本文進(jìn)一步結(jié)合現(xiàn)有的FxRMC算法提出了混合HFx-RMC算法。該混合算法的計(jì)算復(fù)雜度比FxRMC低,具有快速收斂的性能,而且能有效地衰減脈沖信號(hào)噪聲。本文通過多個(gè)仿真研究證明了混合H-Fx-RMC算法的優(yōu)點(diǎn)。
[1]王登峰,劉學(xué)廣,劉宗巍,等.基于發(fā)動(dòng)機(jī)轉(zhuǎn)速的車內(nèi)有源消聲控制策略和自適應(yīng)算法[J].公路交通科技,2004,21.
[2]陳克安,馬遠(yuǎn)良.自適應(yīng)有源噪聲控制:原理、算法及實(shí)現(xiàn)[M].西北工業(yè)大學(xué)出版社,1993.
[3]Wu L,He H,Qiu X.An Active Impulsive Noise Control Algorithm With Logarithmic Transformation:IEEE Press;2011.
[4]George NV,Panda G.A robust filtered-s LMS algorithm for nonlinear active noise control.Applied Acoustics,2012,73.
[5]Lu L,Zhao H.Active impulsive noise control using maximum correntropy with adaptive kernel size.Mechanical Systems&Signal Processing,2017,87.
[6]Wu Z,Shi J,Zhang X,Ma W,Chen B.Kernel recursive maximum correntropy.Signal Processing,2015,117.