翟克寧
(東風(fēng)柳州汽車有限公司,廣西 柳州 545005)
噪聲主動控制技術(shù)在很多方面都得到了廣泛的應(yīng)用,主動降噪系統(tǒng)可以有效地降低被動降噪方法無法解決的低頻噪聲[1]。
當(dāng)系統(tǒng)出現(xiàn)脈沖噪聲的時候,基于Fxlms(Filter-x least mean square)算法的主動降噪系統(tǒng)會變得不穩(wěn)定。為了解決脈沖噪聲,許多算法已經(jīng)被提出來[2]。在1995,年Leahy提出的 FxLMP(filter-x least mean p-power)算法,該算法以誤差信號P次方最小化代替最小誤差信號均方值為目標(biāo)函數(shù)。后來,Wu et al.提出了以誤差信號對數(shù)值最小為目標(biāo)函數(shù)的對數(shù)主動降噪算法Fxloglms(Filter-x logarithmic error lms)[3]。 在 2012 年,George 基于神經(jīng)網(wǎng)絡(luò)算法進(jìn)行魯棒性設(shè)計,提出了 RFslms(Robust filter-x lms)算法[4]。2017年,Lu et al.基于最大相關(guān)熵MCC提出了FxRMC算法能有效地降低脈沖噪聲信號,但是該算法存在計算復(fù)雜度過大問題[5]。
最大相關(guān)熵MCC能很好地描述兩個隨機(jī)變量之間的關(guān)系[6]。在主動降噪系統(tǒng)中,MCC用來描述初始信號和濾波器產(chǎn)生的期望信號之間的關(guān)系。基于主動降噪基本原理,當(dāng)兩個隨機(jī)信號相似度大時候,系統(tǒng)能有效地較低噪聲信號。本文,基于最大相關(guān)熵MCC提出了一種變步長FxnMCC算法。該算法能有效地降低脈沖噪聲,但是算法的收斂速度遠(yuǎn)不如FxRMC算法。因此本文進(jìn)一步提出了混合H-Fx-RMC算法。該混合算法結(jié)合了FxRMC算法收斂速度快和FxnMCC算法降噪性能好的優(yōu)點,并且提高了系統(tǒng)的魯棒性能。本文最后在Matlab平臺進(jìn)行仿真試驗,試驗結(jié)果表明提出的算法能更好地降低脈沖噪聲。
在一些惡劣的環(huán)境中,SαS信號或噪聲具有顯著的尖峰脈沖特性和拖尾特性。SαS穩(wěn)定分布是非常重要的非高斯分布,能很好地描述這種尖峰脈沖特性以及嚴(yán)重的拖尾特性。穩(wěn)定分布是一類具有廣泛代表性的隨機(jī)分布模型。它們的概率密度函數(shù)沒用統(tǒng)一的封閉表達(dá)式,但它的特征函數(shù)存在統(tǒng)一的形式。其中SαS信號可以表達(dá)為:

其中,r=log10[rand(1,L)],rand(,)是指符合均勻分布的隨機(jī)數(shù);Φ維度為1×L并且是在范圍內(nèi)的隨機(jī)數(shù)。α的取值范圍約束在0到2,當(dāng)α越小噪聲信號的脈沖程度越高,反之亦然。當(dāng)α=1時候噪聲符合柯西分布,當(dāng)α=2時,噪聲符合高斯分布。
如圖1所示,基于前饋控制系統(tǒng)的主動降噪系統(tǒng)框圖。圖中,x(n)表示參考噪聲信號,通過參考信號拾音器測得;d(n)表示初始噪聲信號,表示為目標(biāo)降噪點處原有噪聲信號;p(z)為初級傳遞函數(shù),它表示初級信號傳遞途徑的傳遞函數(shù);s(z)表示次級傳遞函數(shù),用于描述揚聲器布放位置到目標(biāo)降噪點的傳遞函數(shù);y(n)表示濾波器生成的信號;e(n)表示降噪后的殘余噪聲信號,其中 e(n)=d(n)-y(n)。

圖1 自適應(yīng)有源前饋控制系統(tǒng)示意圖
主動降噪系統(tǒng)的輸入信號為參考信號x(n),假設(shè)其向量長度為L,則可以表示為:

其中,L—輸入信號的長度;n—時間索引。另外,濾波器系數(shù)向量W(n)可以表示為:

濾波器的輸出為y(n),可以表達(dá)為:

傳統(tǒng)的Fxlms算法以誤差信號均方值最小為目標(biāo)函數(shù),其濾波器系數(shù)更新公式表示為:

式中,X'(n)表示參考信號通過次級傳遞函數(shù)估計值(n)。 因此,在時域內(nèi),它表示參考信號 x(n)和(n)的卷積:

本文算法是基于最大相關(guān)熵MCC來提高主動降噪系統(tǒng)的魯棒性,最大相關(guān)熵描述了濾波器生成信號和初級噪聲信號之間的關(guān)系,以此為目標(biāo)函數(shù)能有效地控制脈沖噪聲的衰減。相關(guān)熵可以表示為:

其中 E(·)—期望值;Kσ(α,β)—一種高斯內(nèi)核大小;fα,β(α,β)—α 和 β 的聯(lián)合分布函數(shù)。 α、β—兩列隨機(jī)信號,通常它們的高斯內(nèi)核Kσ(α,β)定義為:

然而對于離散信號序列來說,兩列隨機(jī)信號的相關(guān)熵可以表達(dá)為:

以期望信號和輸出信號的相關(guān)熵作為主動降噪算法的目標(biāo)函數(shù),利用梯度法來尋求它們相關(guān)熵的最大值。因此主動控制算法目標(biāo)函數(shù)為:

根據(jù)梯度法原理,濾波器權(quán)系數(shù)的更新公式為:

目標(biāo)函數(shù)的變化梯度為:

我們令因此FxMCC算法的濾波器權(quán)系數(shù)的更新方法可以表示為:

濾波器更新的收斂系數(shù)μ的值決定自適應(yīng)過程中系統(tǒng)收斂速度和穩(wěn)態(tài)誤差的大小。如果μ的值取值過大,將會導(dǎo)致系統(tǒng)發(fā)散不收斂。μ取值過小會導(dǎo)致系統(tǒng)收斂速度慢。一般來說收斂系數(shù)的取值取決于濾波器長度和參考信號的功率,歸一化版本的FxnMCC算法就是讓濾波器收斂系數(shù)的值不斷地隨著參考信號功率更新,其表達(dá)式為:

因此,本文提出的FxnMCC算法的濾波器更新系數(shù)表達(dá)式可以重寫為:

FxRMC算法也是以期望信號d(n)和輸出信號y(n)的最大相關(guān)熵作為目標(biāo)函數(shù),但是濾波器采用遞歸形式進(jìn)行更新。FxRMC算法的主要公式如下:

其中 Gp(n)是濾波器增益向量,其維度長度為 1×L;P(n)是輸入信號的自相關(guān)矩陣的逆,它的維度為L×L;λ代表遺忘因、子λ小于并約等于1。
為了結(jié)合兩種算法的優(yōu)點,本文進(jìn)一步提出了一種混合H-Fx-RMC算法。混合算法先調(diào)用FxRMC算法,使殘余噪聲到達(dá)較低的水平,之后再調(diào)用變步長FxnMCC算法繼續(xù)調(diào)整濾波器權(quán)系數(shù)值,達(dá)到最優(yōu)降噪水平。為了決定什么時候轉(zhuǎn)化兩種算法,以平均噪聲減少量ANR(averaged noise reduction)作為標(biāo)準(zhǔn)定義一個固定的閾值ψ。混合算法一開始采用FxRMC模式更新濾波器權(quán)系數(shù)W(n),當(dāng)噪聲平均降噪量ANR達(dá)到并小于設(shè)定的閾值ψ時候,混合算法轉(zhuǎn)化為FxnMCC算法更新濾波器權(quán)系數(shù)。因此混合算法的關(guān)系式可以表示為:

在主動降噪系統(tǒng)中,ANR常用作為衡量算法降噪效果的標(biāo)準(zhǔn),表達(dá)式為:

其中,ξ=0.999,Ae(n)和 Ad(n)分別表示初始信號 d(n)和殘余信號e(n)的估計值。閾值ψ的設(shè)定一般根據(jù)經(jīng)驗為主,根據(jù)處理不同環(huán)境的噪聲進(jìn)行選擇。
在主動降噪系統(tǒng)實際應(yīng)用中,為了滿足實時性控制,對系統(tǒng)的計算速度有一定的要求。主動降噪算法的計算復(fù)雜程度對ANC系統(tǒng)計算速度有著直接的影響,算法的計算復(fù)雜度越高,相應(yīng)地對硬件系統(tǒng)的計算速度要求越快。這也會導(dǎo)致需要高質(zhì)量硬件部件,增大搭建主動降噪系統(tǒng)的成本,因此如何降低算法的計算復(fù)雜度是一個很重要的實際應(yīng)用問題。

表1 算法計算復(fù)雜度對比
如表1所示。顯然FxRMC算法的計算復(fù)雜度比FxnMCC算法的大很多。混合H-Fx-RMC算法計算復(fù)雜度介于兩個算法之間。
本文基于MATLAB軟件進(jìn)行編程,仿真對比傳統(tǒng)的FxLMS、FxnMCC、FxRMC和 H-Fx-RMC算法處理脈沖噪聲的降噪性能。取不同值α的脈沖信號作為仿真參考輸入信號。圖2呈現(xiàn)了脈沖噪聲的時域圖,噪聲信號體現(xiàn)出尖峰脈沖特性。圖2描述了兩種情況不同α值的脈沖信號。
參考信號到降噪目標(biāo)點存在一個初級傳遞通道,一般來說用初級傳遞函數(shù)Q(z)來描述該通道,我們設(shè)置為Q(z)=z-3-0.3z-4+0.2z-5;類似地,主動降噪系統(tǒng)的揚聲器發(fā)出輸出信號,輸出信號會經(jīng)過一段次級通道路徑,用次級傳遞函數(shù)描述該通道,可以表示為:S(z)=z-2+0.5z-3;本文仿真算法以ANR作為衡量算法降噪性能的標(biāo)準(zhǔn),根據(jù)ANR定義可知,當(dāng)ANR的值小于零,系統(tǒng)才有一定的降噪效果,若ANR越小,表明算法降噪能力越強(qiáng)。

圖2 脈沖信號時域圖,(a)α:=1.1, (b)α:=1.2
本小節(jié)試驗中以圖2脈沖信號作為輸入信號。在算法仿真中,高斯內(nèi)核σ的大小設(shè)置為σ2=8,閾值取ψ=-6。FxnMCC算法和H-Fx-RMC算法的迭代步長取μ=0.01,F(xiàn)xRMC算法的遺忘因子取λ=0.95。圖3描述的是不同算法降噪的ANR曲線。從仿真結(jié)果圖可知,傳統(tǒng)的FxLMS算法出現(xiàn)發(fā)散現(xiàn)象不能衰減脈沖噪聲,而本文提出的變步長算法FxnMCC算法和混合H-Fx-RMC算法均能有效地降低脈沖噪聲,系統(tǒng)趨于收斂,相比FxLMS算法有更好的魯棒性。FxnMCC算法解決2500步才趨于收斂,而混合算法和FxRMC算法在1000步以內(nèi)便接近收斂。證明但是變步長FxnMCC算法相對于FxRMC和混合HFx-RMC算法來說收斂速度慢。而通過第3節(jié)的計算復(fù)雜度對比我們知道,F(xiàn)xRMC算法計算復(fù)雜度比FxnMCC算法高很多,而混合算法在達(dá)到設(shè)定閾值時候會從計算復(fù)雜度高的FxRMC算法轉(zhuǎn)化到計算復(fù)雜度低的FxnMCC算法,因此相對FxRMC算法來說計算復(fù)雜度肯定是降低的。因此我們可以說混合H-Fx-RMC算法不僅能有效地降低脈沖噪聲并且具有收斂速度快計算復(fù)雜度較低的良好性能。

圖3 試驗1不同算法仿真結(jié)果ANR曲線,(a)α:=1.1, (b)α:=1.2
本節(jié)試驗的參考信號為脈沖噪聲和高斯分布噪聲想結(jié)合,混合類型參考信號噪聲如圖4所示,混合噪聲長度為兩萬點數(shù),由分別取為前一萬點數(shù)符合α=2.0的高斯分布噪聲,后一萬點數(shù)為α=1.3的脈沖噪聲。圖5顯示了以混合噪聲為參考輸入噪聲時候,本文提出的算法仍然有良好的降噪效果,傳統(tǒng)的FxLMS算法迭代到接近一萬多步時候發(fā)散,再次驗證傳統(tǒng)FxLMS算法在脈沖噪聲出現(xiàn)時候的性能不住。本文提出的FxnMCC和混合H-Fx-RMC算法能有效地降低脈沖噪聲,魯棒性比FxLMS算法強(qiáng),得到的其它結(jié)論和試驗1相似。

圖4 混合噪聲

圖5 試驗2不同算法仿真結(jié)果ANR曲線
本文進(jìn)行了脈沖噪聲存在時候提高魯棒性的算法研究。基于最大相關(guān)熵MCC,本文提出了變步長FxnMCC算法能很好地降低脈沖噪聲,提高主動降噪系統(tǒng)的魯棒性和降噪性能。但是變步長算法的收斂速度較慢,為了解決這個問題,本文進(jìn)一步結(jié)合現(xiàn)有的FxRMC算法提出了混合HFx-RMC算法。該混合算法的計算復(fù)雜度比FxRMC低,具有快速收斂的性能,而且能有效地衰減脈沖信號噪聲。本文通過多個仿真研究證明了混合H-Fx-RMC算法的優(yōu)點。
[1]王登峰,劉學(xué)廣,劉宗巍,等.基于發(fā)動機(jī)轉(zhuǎn)速的車內(nèi)有源消聲控制策略和自適應(yīng)算法[J].公路交通科技,2004,21.
[2]陳克安,馬遠(yuǎn)良.自適應(yīng)有源噪聲控制:原理、算法及實現(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.