崔婷玉,張 俊,黃薛龍
(1.蕪湖職業(yè)技術(shù)學(xué)院,安徽 蕪湖 241003;2.安徽華東光電技術(shù)研究所,安徽 蕪湖 241002;3.蕪湖市大數(shù)據(jù)與人工智能工程技術(shù)研究中心,安徽 蕪湖 241000)
汽車噪聲的來源包括發(fā)動(dòng)機(jī)噪聲、傳動(dòng)系噪聲、車身噪聲、輪胎噪聲、空氣噪聲等。發(fā)動(dòng)機(jī)是汽車上的最主要噪聲源之一,其輻射的噪聲具有多分量、非平穩(wěn)、非高斯、非周期、非線性的特點(diǎn)[1]。CHAPLIN[2]將LMS濾波器應(yīng)用在發(fā)動(dòng)機(jī)排氣脈沖噪聲控制中,實(shí)現(xiàn)了18分貝的降噪效果。張立等[3]利用去相關(guān)NLMS自適應(yīng)Volterra濾波器預(yù)測(cè)發(fā)動(dòng)機(jī)運(yùn)轉(zhuǎn)噪聲,可有效減小發(fā)動(dòng)機(jī)運(yùn)轉(zhuǎn)噪聲的干擾。甘慧萍等[4]提出一種基于Volterra級(jí)數(shù)的機(jī)械振動(dòng)信號(hào)濾波方法,與線性自適應(yīng)濾波算法相比,可有效地濾除機(jī)械振動(dòng)信號(hào)所含的高斯噪聲和脈沖干擾。張家樹等[5]提出一種基于sigmoid函數(shù)的Volterra自適應(yīng)有源噪聲對(duì)消器,對(duì)于噪聲及碼間串?dāng)_和非線性畸變具有良好的抗噪聲性能,但很大程度上增加了計(jì)算量。傳統(tǒng)的線性wiener濾波器對(duì)高斯噪聲的濾波有一定的效果,但對(duì)脈沖干擾不能進(jìn)行有效的濾除[6]。非線性Volterra濾波器具有線性和非線性雙重特性,所以使用Volterra濾波器能夠表達(dá)大多數(shù)的非線性系統(tǒng)和全部線性系統(tǒng),對(duì)信號(hào)中的脈沖噪聲的濾波效果較好,但對(duì)高斯噪聲往往不能進(jìn)行有效的濾除。發(fā)動(dòng)機(jī)振動(dòng)信號(hào)既包括高斯噪聲又含有脈沖噪聲,無論是線性wiener濾波器還是非線性Volterra濾波器都不能對(duì)發(fā)動(dòng)機(jī)噪聲進(jìn)行有效的濾除。
本文提出一種基于VLMP算法改進(jìn)的變步長VLMP算法,首先,根據(jù)sigmoid函數(shù)[7]更新步長因子,再對(duì)一階和二階權(quán)系數(shù)采取分階迭代更新;然后利用本文算法對(duì)Volterra濾波器的核進(jìn)行辨識(shí),在辨識(shí)最優(yōu)核的同時(shí)對(duì)發(fā)動(dòng)機(jī)噪聲進(jìn)行降噪處理,將濾波的結(jié)果和線性濾波、VLMS濾波以及VLMP濾波方法的發(fā)動(dòng)機(jī)噪聲降噪結(jié)果進(jìn)行比較分析,仿真結(jié)果表明,本文算法對(duì)發(fā)動(dòng)機(jī)噪聲中的高斯噪聲和脈沖噪聲成分具有較好的降噪能力。
二階Volterra濾波器的輸入信號(hào)為
(1)
濾波器權(quán)矢量為
(2)
d(n)為期望信號(hào),濾波器輸出為
y(n)=WT(n)X(n).
(3)
誤差信號(hào)為
e(n)=d(n)-y(n).
(4)
WENG[8]提出的非線性Volterra-LMP算法(VLMP)的權(quán)值更新公式為
(5)
(6)
其中,wi(n)是Volterra濾波器線性部分權(quán)值,wi,j(n)為Volterra濾波器二次項(xiàng)部分權(quán)值,μ1=μ2為固定步長因子。
Volterra濾波器非線性項(xiàng)將穩(wěn)定分布的尖峰脈沖特性放大,導(dǎo)致輸入信號(hào)的自相關(guān)矩陣特征值擴(kuò)展變大,從而使輸入信號(hào)相關(guān)性很強(qiáng)。一般情況,線性項(xiàng)部分和非線性部分收斂因子與各自的自相關(guān)矩陣有關(guān),合理地選取收斂因子能很好地克服這個(gè)問題。固定的步長因子μ1,μ2取值較大時(shí),每次迭代的權(quán)值(Volterra核值)的調(diào)整較大,迭代過程中波動(dòng)也較大,但是達(dá)到穩(wěn)態(tài)階段的時(shí)間較短;固定步長因子取值較小時(shí),權(quán)值的調(diào)整較小,迭代過程中波動(dòng)也較小,但是達(dá)到穩(wěn)態(tài)階段的時(shí)間較長。為克服以上兩個(gè)問題,本文采用基于sigmoid函數(shù)[7]的變步長VLMP算法,其變步長公式如下:
(7)
其中,μ1(n),μ2(n)為基于sigmoid函數(shù)[7]的線性項(xiàng)和二次項(xiàng)部分變步長因子。
(8)
用w*表示真實(shí)的非線性系統(tǒng)權(quán)向量的值,定義均權(quán)值誤差向量ε(n)=E{w(n)-w*},根據(jù)文獻(xiàn)[8]得到隨機(jī)的差分方程:
ε(n+1)=[I-μD(p,α,γ)Rxx]ε(n)+μD(p,α,γ)(ξ-Rxxw*),
(9)
其中,ξ=E{x(n)d(n)},Rxx=E{x(n)x(n)T},差分方程解收斂當(dāng)且僅當(dāng)矩陣I-μD(p,α,γ)Rxx的所有特征值小于1[8]。本文算法使用變步長函數(shù)μ(n)代替VLMP算法的固定步長μ,可得變步長VLMP算法各參數(shù)收斂范圍為
可推出
得到
其中,λ1max和λ2max分別是x(n-i)和x(n-i)x(n-j)自相關(guān)矩陣的最大特征值。
可假設(shè)1
在噪聲信號(hào)為高斯噪聲背景情況下,設(shè)p=2,α=2,所以D(p,α,γ)=1,可得變步長VLMP算法p參數(shù)收斂范圍為1
可推出
其中,λ1max和λ2max分別是x(n-i)和x(n-i)x(n-j)自相關(guān)矩陣的最大特征值。這是本文提出的變步長VLMP算法在不同背景環(huán)境下的參數(shù)選取。
以FIR系統(tǒng)辨識(shí)模型為例(圖1),對(duì)本文算法進(jìn)行仿真和性能分析[10-11]。
圖1 系統(tǒng)辨識(shí)原理框圖
非線性系統(tǒng)采用二階Volterra濾波系統(tǒng),二階非線性系統(tǒng)輸入和輸出關(guān)系為
(10)
這個(gè)系統(tǒng)中線性核和二階核分別為
ψ1=(-0.76,-1,1)T.
(11)
(12)
將算法用于高斯噪聲環(huán)境下非線性系統(tǒng)辨識(shí),如圖1所示。本實(shí)驗(yàn)中,非線性系統(tǒng)是一個(gè)記憶長度的二階Volterra非線性系統(tǒng),系統(tǒng)的期望信號(hào)為
(13)
輸入信號(hào)為
x(n)=x(n-1)+v2(n).
(14)
為檢驗(yàn)高斯噪聲背景下本文算法性能,將本文算法與VLMP算法和DOVLMP算法[12]進(jìn)行比較。其中,v1(n)是均值為0、方差為1的高斯噪聲。v2(n)是均值為0、方差為1的高斯白噪聲,且與v1(n)獨(dú)立。設(shè)定輸入的信噪比(SNR)為15 dB。經(jīng)多次實(shí)驗(yàn),VLMP算法中最佳值為μ=0.02,p=1.1。DOVLMP算法中,μ1=0.05,μ2=0.008,p=1.1。本文算法中,α=0.005,β=8,p=1.1,所有仿真曲線都是通過100次獨(dú)立仿真結(jié)果取平均得到,三種算法曲線圖如圖2所示。
圖2 算法的學(xué)習(xí)曲線
由圖2可見,高斯噪聲背景環(huán)境下,VLMP算法學(xué)習(xí)曲線可以收斂到-7 dB,DOVLMP算法誤差學(xué)習(xí)曲線可以收斂到-8 dB,本文算法誤差學(xué)習(xí)曲線可以收斂到-11 dB;本文算法比VLMP算法穩(wěn)態(tài)誤差值要小4 dB左右,同時(shí)比DOVLMP算法穩(wěn)態(tài)誤差值要小3 dB左右。所以VLMP和DOVLMP算法擁有較高的穩(wěn)態(tài)失調(diào)量,本文算法的穩(wěn)態(tài)失調(diào)量較低。在收斂速度上,本文算法比DOVLMP算法快,但與VLMP算法收斂速度相當(dāng)。
在仿真實(shí)驗(yàn)中,三種算法系統(tǒng)核辨識(shí)結(jié)果如表1所示,VLMP算法的ωV為選取的一組VLMP算法權(quán)系數(shù)與真實(shí)值較接近一組值(迭代1 205次時(shí)的權(quán)系數(shù))。DOVLMP算法的ωD為選取的DOVLMP算法權(quán)系數(shù)值,本文算法的為ωc選取的本文算法權(quán)系數(shù)值,為增加算法的對(duì)比性,DOVLMP算法和本文算法的權(quán)系數(shù)也選取迭代1 205次時(shí)的值,表1是三種算法在同一時(shí)刻核辨識(shí)結(jié)果。
表1 三種算法核辨識(shí)結(jié)果
表1中,VLMP算法核辨識(shí)結(jié)果與真實(shí)值的誤差范圍為0.025 4 將算法應(yīng)用在α穩(wěn)定分布噪聲背景下的非線性系統(tǒng)辨識(shí),非線性系統(tǒng)是一個(gè)記憶長度N=3的二階Volterra非線性系統(tǒng),二階非線性系統(tǒng)的期望信號(hào)為 (15) (16) 在實(shí)驗(yàn)仿真1中,為檢驗(yàn)高斯噪聲背景下本文算法性能,下面將本文算法與VLMP算法、DOVLMP算法進(jìn)行比較。VLMP算法參數(shù)的值均取其達(dá)到最優(yōu)性能時(shí)的參數(shù)值,其中,p=1.2。圖3(a)(b)是在特征指數(shù)α=1.9時(shí),VLMP算法、DOVLMP算法和本文算法的權(quán)系數(shù)誤差范數(shù)曲線,是三種算法的MATLAB仿真結(jié)果。圖3(a)中,VLMP算法權(quán)系數(shù)誤差最小時(shí),另外兩種算法也取相同的權(quán)系數(shù)誤差。其中,VLMP算法參數(shù)最優(yōu)取值為μ=0.002,p=1.2;DOVLMP算法參數(shù)最優(yōu)取值為μ1=0.002,μ2=0.003,p=1.2;本文算法的參數(shù)取值為,α=0.01,β=2,p=1.2,圖3(b)中,VLMP算法權(quán)系數(shù)收斂速度最快時(shí),另外兩種算法也取相同的收斂速度。其中,VLMP算法參數(shù)最優(yōu)取值為μ=0.006,p=1.2;DOVLMP算法參數(shù)最優(yōu)取值為μ1=0.006,μ2=0.008,p=1.2;本文算法的參數(shù)取值為α=0.01,β=2,p=1.2。 (a)穩(wěn)態(tài)誤差相同時(shí)收斂速度曲線 (b)收斂速度相同時(shí)穩(wěn)態(tài)誤差曲線圖3 α為1.9時(shí)穩(wěn)態(tài)誤差和收斂速度比較 由圖3(a)可見,當(dāng)三種算法權(quán)系數(shù)誤差值相同時(shí),本文算法在迭代次數(shù)1 000次左右到達(dá)穩(wěn)態(tài)進(jìn)程,DOVLMP算法在迭代次數(shù)1 700次左右到達(dá)穩(wěn)態(tài)進(jìn)程,VLMP算法在迭代次數(shù)2 000次左右到達(dá)穩(wěn)態(tài)進(jìn)程,相同的穩(wěn)態(tài)失調(diào)量情況下,本文算法的收斂速率更快。 由圖3(b)可見,三種算法曲線收斂速率相同時(shí),本文算法的穩(wěn)態(tài)誤差值可達(dá)到-30 dB左右,DOVLMP算法和VLMP算法穩(wěn)態(tài)誤差值均達(dá)到-20 dB左右,相同的收斂速率下,本文比DOVLMP算法和VLMP算法的穩(wěn)態(tài)誤差值小10 dB左右,所以本文算法穩(wěn)態(tài)失調(diào)量最小。 在實(shí)驗(yàn)仿真2中,脈沖噪聲背景下通過VLMP算法和本文算法對(duì)非線性系統(tǒng)進(jìn)行辨識(shí)。在特征指數(shù)α=1.25時(shí),信噪比為10 dB的α穩(wěn)定分布噪聲背景,輸入信號(hào)為高斯白噪聲信號(hào),輸入信號(hào)和脈沖噪聲信號(hào)如圖4(a)所示。VLMP算法p的取值為p=1.2,步長因子最優(yōu)為μ=0.01,本文算法取值為p=1.2,α=100,β=0.05,兩種算法的核誤差曲線圖如圖4(b)所示。 由圖4(b)可以看出,本文算法線性核誤差h1在迭代180次左右達(dá)到收斂,非線性核誤差h2在迭代250次左右達(dá)到收斂,VLMP算法線性核誤差h1在迭代330次左右達(dá)到收斂,非線性核誤差h2在迭代410次左右達(dá)到收斂,本文算法線性核和非線性核的學(xué)習(xí)曲線收斂速度均比VLMP算法快。兩種算法的線性核誤差值均小于二階項(xiàng)核誤差值。究其原因,是由于二階項(xiàng)相關(guān)矩陣的特征值擴(kuò)展要大于線性項(xiàng)。 (a)輸入信號(hào)和脈沖噪聲(α為1.25,信噪比為10 dB) (b)算法的學(xué)習(xí)曲線圖4 脈沖噪聲背景下算法學(xué)習(xí)曲線比較 為檢驗(yàn)本文算法對(duì)發(fā)動(dòng)機(jī)噪聲的降噪效果,仿真實(shí)驗(yàn)采用原始發(fā)動(dòng)機(jī)噪聲,見圖5(e),分別對(duì)基于LMS算法的wiener濾波器、Volterra濾波器和基于LMP算法的Volterra濾波器以及基于本文算法的Volterra濾波器的降噪效果進(jìn)行實(shí)驗(yàn)驗(yàn)證,經(jīng)多次實(shí)驗(yàn),LMS算法步長因子取最優(yōu)值μ=0.1;VLMS算法線性項(xiàng)和二階項(xiàng)步長因子均取最優(yōu)值μ=2,參數(shù)p=1.2;VLMP算法線性項(xiàng)和二階項(xiàng)步長因子均取最優(yōu)值μ=0.2,參考文獻(xiàn)[8]參數(shù)p=1.2;本文算法線性項(xiàng)和二階項(xiàng)步長因子均取變步長,其中,參數(shù)α=100,β=1,為保證其他條件相同,參數(shù)p=1.2?;贚MS算法、VLMS算法、VLMP算法、本文算法對(duì)發(fā)動(dòng)機(jī)噪聲進(jìn)行自適應(yīng)濾波降噪效果如圖5所示,表2是四種算法構(gòu)成的濾波器對(duì)車內(nèi)發(fā)動(dòng)機(jī)噪聲濾波后的降噪效果指標(biāo)計(jì)算結(jié)果。 (a)基于LMS濾波殘余噪聲(b)基于VLMS濾波殘余噪聲 (c)基于VLMP濾波殘余噪聲 (d)基于本文算法濾波殘余噪聲 (e)發(fā)動(dòng)機(jī)振動(dòng)噪聲圖5 發(fā)動(dòng)機(jī)噪聲濾波降噪效果比較 表2 降噪的效果指標(biāo)計(jì)算結(jié)果 圖5(a)至(e)中,橫坐標(biāo)表示迭代次數(shù),縱坐標(biāo)表示幅度。由圖5和表2可以看出,Volterra濾波器的殘余誤差的收斂速度明顯比wiener濾波器快,發(fā)動(dòng)機(jī)噪聲經(jīng)過本文算法濾波后的均方根誤差值最小,可得Volterra濾波器的降噪效果明顯好于wiener濾波器,本文算法的降噪效果優(yōu)于VLMS濾波器和VLMP濾波器,本文算法適用于發(fā)動(dòng)機(jī)噪聲的降噪。 本文針對(duì)發(fā)動(dòng)機(jī)噪聲的降噪問題,提出了一種在高斯噪聲環(huán)境以及脈沖干擾環(huán)境下變步長VLMP算法,該算法利用sigmoid函數(shù)更新步長因子,然后對(duì)一階和二階權(quán)系數(shù)迭代更新。仿真實(shí)驗(yàn)表明,本文算法構(gòu)成的Volterra濾波器較其他常用的濾波算法具有更好的濾波效果,能同時(shí)對(duì)發(fā)動(dòng)機(jī)噪聲中的高斯噪聲和脈沖干擾進(jìn)行降噪。下一步研究需要在計(jì)算復(fù)雜度方面進(jìn)行改進(jìn),減小計(jì)算量。2.2 α穩(wěn)定分布噪聲背景
3 發(fā)動(dòng)機(jī)振動(dòng)噪聲消噪仿真分析
4 結(jié)語
長春師范大學(xué)學(xué)報(bào)2022年2期