李常虎,伍 松*,3,魏晟弘,鄭 賢
(1.廣西科技大學(xué) 機(jī)械與汽車工程學(xué)院,廣西 柳州 545616;2.廣西汽車零部件與整車技術(shù)重點實驗室(廣西科技大學(xué)),廣西 柳州 545006;3.清邁大學(xué) 機(jī)械工程學(xué)院,泰國 清邁 50200)
噪聲、振動、聲振粗糙度(noise、vibration、harshness,簡記為NⅤH)是影響駕乘人員乘坐舒適性的重要指標(biāo)。針對車內(nèi)噪聲問題,大多采用被動噪聲控制的方法。被動噪聲控制雖然對中高頻噪聲降噪效果顯著,但對低頻噪聲的抑制效果不佳;因此,主動噪聲控制技術(shù)逐漸得到應(yīng)用。通過在車內(nèi)合理布置麥克風(fēng)及次級聲源的方式來自適應(yīng)消除噪聲,中低頻噪聲可被有效抑制。
主動噪聲控制技術(shù)的降噪效果與多種自適應(yīng)濾波算法的性能有關(guān)。1960 年由Widrow 和Hoffman提出的最小均方(least mean squares,LMS)算法因結(jié)構(gòu)簡單、計算量小、便于實現(xiàn)等優(yōu)點被廣泛應(yīng)用,但LMS算法步長因子固定,無法同時滿足收斂速度快與穩(wěn)態(tài)誤差小的要求。學(xué)者對此提出多種改進(jìn)算法,其中對變步長LMS 算法研究較多。歸一化最小均方(normalized least mean square,NLMS)算法是一種特殊化的變步長LMS 算法,利用輸入信號矢量功率對步長因子進(jìn)行歸一化處理。與LMS算法相比,NLMS算法收斂速度加快且穩(wěn)定性提高,但因NLMS算法仍存在固定步長因子,收斂速度與穩(wěn)態(tài)誤差的矛盾不能解決。學(xué)者相繼又提出了基于Sigmoid函數(shù)和箕舌線函數(shù)的變步長算法。基于Sigmoid 函數(shù)的變步長最小均方(sigmoid variable step least mean square,SⅤSLMS)算法,可使收斂速度與穩(wěn)態(tài)誤差得到兼顧,但在求解步長因子時,需要進(jìn)行指數(shù)運算,計算復(fù)雜度高且占用存儲空間更大。箕舌線變步長最小均方(tongue-like curve least mean squares,TCLMS)算法結(jié)構(gòu)簡單、計算復(fù)雜度低,與NLMS算法相比,收斂速度與穩(wěn)態(tài)誤差的矛盾得到解決,與SⅤSLMS算法相比,計算復(fù)雜度得到降低,但TCLMS 算法易受信號輸入端不相關(guān)噪聲的干擾且收斂速度需進(jìn)一步提高。文獻(xiàn)[15]提出一種改進(jìn)方法,使干擾噪聲得到消除,TCLMS算法易受輸入端不相關(guān)噪聲干擾的缺點得到改善。
在上述研究背景的基礎(chǔ)上,本文針對TCLMS算法存在收斂速度較慢的缺點提出一種改進(jìn)方法,將NLMS 算法的處理方法運用到TCLMS 算法中,利用輸入信號矢量功率對TCLMS 算法的步長因子進(jìn)行歸一化處理。本文提出的新型TCLMS 算法收斂速度將進(jìn)一步加快,穩(wěn)態(tài)誤差更小,穩(wěn)定性更強(qiáng)。
LMS算法采用最陡下降法,沿權(quán)矢量梯度估計值的負(fù)方向搜尋,以獲得最優(yōu)權(quán)系數(shù),公式如下:
式中:為步長因子;?()為梯度矢量。實際應(yīng)用中一般取誤差信號的均方估計值作為梯度矢量,即:
將式(2)代入式(1),則權(quán)系數(shù)的遞推公式為:
式(2)和式(3)中,()為誤差信號,()為輸入?yún)⒖夹盘柺噶俊H羰筁MS 算法收斂,步長因子的取值范圍需滿足如下條件:
式中,為輸入?yún)⒖夹盘栕韵嚓P(guān)矩陣特征值的最大值。
通過仿真分析,對比LMS算法在步長因子為0.01、0.05、0.10 這3 種情況下的學(xué)習(xí)曲線,結(jié)果如圖1所示。
圖1 (網(wǎng)絡(luò)版彩圖)LMS算法學(xué)習(xí)曲線
由圖1可知,LMS算法在收斂速度與穩(wěn)態(tài)誤差之間存在矛盾,當(dāng)步長因子取值較大時,收斂速度加快,穩(wěn)態(tài)誤差隨之增大;步長因子取值較小時,穩(wěn)態(tài)誤差減小,但收斂速度降低。
為解決LMS 算法收斂速度與穩(wěn)態(tài)誤差之間的矛盾,變步長LMS 算法由此產(chǎn)生,使步長因子在收斂階段取值較大,加快收斂速度,步長因子在穩(wěn)態(tài)階段取值較小,減小穩(wěn)態(tài)誤差。NLMS算法是一種特殊化的變步長LMS 算法,是用輸入信號矢量功率對步長因子進(jìn)行歸一化處理。NLMS算法的步長因子與權(quán)系數(shù)更新公式為:
式中:∈(0,2)為一常量;為一個很小的常數(shù),可避免當(dāng)()()較小時所導(dǎo)致的步長因子過大,使算法的穩(wěn)定性受到影響。
對NLMS算法進(jìn)行仿真,輸入信號為疊加高斯噪聲后的隨機(jī)信號,常量分別取0.3、0.8、1.3、1.8,取0.001,對比NLMS算法在這4種情況下迭代1 000次的收斂特性,得到的誤差曲線如圖2所示。
圖2 (網(wǎng)絡(luò)版彩圖)NLMS算法誤差曲線
由圖2 可知,隨著的取值逐漸增大,即步長因子增大,NLMS算法的收斂速度先有所提高,之后又有所下降,但算法的均方誤差隨的增大逐漸減小,即穩(wěn)態(tài)誤差隨之減小,穩(wěn)定性逐漸提高。
對于變步長LMS 算法,常見的方法是對步長因子()隨誤差()變化的函數(shù)關(guān)系做各種變形,其中較為典型的是覃景繁等提出的SⅤSLMS算法,該算法的步長因子更新公式為:
式中,控制著步長因子的取值范圍,影響著算法收斂后的穩(wěn)態(tài)誤差。在收斂的初始階段,誤差()較大,則步長因子()較大,可使算法收斂速度較快;隨著算法的收斂,誤差()逐漸減小,步長因子()隨之減小,以保證較小的穩(wěn)態(tài)誤差。相較于NLMS算法,SⅤSLMS算法更好地兼顧了收斂速度與穩(wěn)態(tài)誤差,但SⅤSLMS 算法在收斂的過程中,誤差()的微小變化會導(dǎo)致步長因子變化較大,因此,SⅤSLMS 算法的穩(wěn)定性易受到影響。同時,SⅤSLMS算法步長因子在迭代更新的過程中需要進(jìn)行指數(shù)運算,計算復(fù)雜度大幅提升,占用的硬件存儲空間也更大,不利于實際應(yīng)用。
NLMS 算法由于仍然存在固定步長因子常量,收斂速度與穩(wěn)態(tài)誤差的矛盾并沒有得到解決。SⅤSLMS算法雖然兼顧了收斂速度與穩(wěn)態(tài)誤差,但計算復(fù)雜度高,實際應(yīng)用中對設(shè)備要求較高;因此,相關(guān)學(xué)者提出了TCLMS算法。TCLMS算法結(jié)構(gòu)簡單、計算復(fù)雜度低,但容易受到信號輸入端不相關(guān)噪聲的干擾,且收斂速度需進(jìn)一步提高。TCLMS算法的步長因子與權(quán)系數(shù)更新公式如下:
輸入正弦信號,對比LMS算法、NLMS算法、TCLMS 算法迭代500 次后的均方誤差,仿真結(jié)果如圖3所示。
圖3 (網(wǎng)絡(luò)版彩圖)3種典型LMS算法均方誤差對比
由圖3 的仿真結(jié)果可知,LMS 算法在迭代200次左右收斂,NLMS 算法在迭代120 次左右收斂,且在收斂過程中NLMS 算法比LMS 算法的均方誤差更小,因此證明,使用歸一化的處理方法對LMS 算法進(jìn)行改進(jìn),可使算法收斂速度加快、穩(wěn)定性提高;TCLMS 算法在迭代100 次左右收斂,收斂過程中均方誤差比NLMS 算法更小,因此證明,TCLMS算法與NLMS算法相比,穩(wěn)定性更好,但收斂速度相當(dāng)。所以TCLMS 算法的收斂速度需進(jìn)一步提高。
由于TCLMS 算法存在容易受到輸入端不相關(guān)噪聲干擾的缺點,文獻(xiàn)[15]提出了一種TCLMS 的改進(jìn)方法:M-TCLMS-1算法,其步長因子公式為:
M-TCLMS-1算法步長因子公式用()(-1)代替(),并驗證了該方法可消除輸入端不相關(guān)噪聲的干擾。此外,加入的補(bǔ)償項0.5(),可避免誤差信號()在收斂階段可能出現(xiàn)不相關(guān)而導(dǎo)致算法還未完全收斂步長因子就減小到最小值的情況,從而保證了算法的收斂性。
本文針對TCLMS算法收斂速度需進(jìn)一步提高提出一種改進(jìn)方法。由前面分析可知,NLMS算法通過輸入信號矢量功率對LMS算法步長因子進(jìn)行歸一化處理后,收斂速度加快、穩(wěn)定性提高。受此啟發(fā),本文在文獻(xiàn)[15]的基礎(chǔ)上,將NLMS算法的思路引入TCLMS算法中,對TCLMS算法的步長因子進(jìn)行歸一化處理,用于進(jìn)一步提高TCLMS算法的收斂速度。本文提出的TCLMS改進(jìn)算法——NMTCLMS算法,其步長因子與權(quán)系數(shù)更新公式為:
為驗證本文改進(jìn)算法的有效性,對TCLMS 算法、文獻(xiàn)[15]的M-TCLMS-1 算法、本文提出的NMTCLMS算法進(jìn)行仿真分析,輸入?yún)⒖夹盘?)為疊加隨機(jī)噪聲的正弦信號,迭代次數(shù)為1 000,分別對比3種TCLMS算法的誤差信號、頻譜與均方誤差,仿真結(jié)果如圖4—圖6所示。
圖4 3種TCLMS算法誤差信號對比
圖5 3種TCLMS算法頻譜對比
圖6 3種TCLMS算法均方誤差對比
由圖4的誤差信號對比分析可知,M-TCLMS-1算法中,誤差信號在收斂階段反而增大,這將導(dǎo)致算法的收斂速度與穩(wěn)定性受到影響;而本文提出的NMTCLMS算法在收斂階段誤差更小,從而使收斂速度與穩(wěn)定性得到提高。
由圖5 的頻譜圖分析可知,文獻(xiàn)[15]針對TCLMS 算法易受輸入端不相關(guān)噪聲干擾的缺點進(jìn)行改善后,濾波效果有所提高,抗噪聲干擾能力較好;而本文改進(jìn)的TCLMS 算法濾波效果更顯著,抗噪聲干擾能力更強(qiáng)。
由圖6 的均方誤差圖對比分析可知,TCLMS算法與M-TCLMS-1算法均在迭代170次左右收斂,收斂速度相當(dāng);而本文提出的NMTCLMS 算法在迭代150次左右收斂,收斂速度加快;因此,本文提出的方法對于提升TCLMS 算法的收斂速度是可行且有效的。而且在這3 種TCLMS 算法中,本文提出的NMTCLMS 算法在收斂過程中均方誤差最小,因此穩(wěn)定性更好。
本文首先對典型的LMS 算法、NLMS 算法、SⅤSLMS 算法、TCLMS 算法進(jìn)行分析歸納,并通過仿真可知,LMS 算法由于步長因子固定,無法同時滿足收斂速度快與穩(wěn)態(tài)誤差小的要求;NLMS算法使用歸一化的處理方法對LMS算法進(jìn)行改進(jìn),使收斂速度加快,穩(wěn)定性提高,但收斂速度與穩(wěn)態(tài)誤差的矛盾沒有得到解決;SⅤSLMS算法兼顧了收斂速度與穩(wěn)態(tài)誤差,但誤差信號較小的改變會使步長因子發(fā)生較大變動,從而穩(wěn)定性受到影響,且SⅤSLMS 算法在收斂過程中,需要進(jìn)行指數(shù)運算,計算復(fù)雜度高,不利于實際應(yīng)用;TCLMS 算法與NLMS算法、SⅤSLMS算法相比,穩(wěn)定性更高,收斂速度與穩(wěn)態(tài)誤差的矛盾得到解決,但收斂速度相當(dāng),需進(jìn)一步加快收斂速度。文獻(xiàn)[15]已針對TCLMS 算法易受輸入端不相關(guān)噪聲干擾的缺點提出改進(jìn)方法,并證明了其有效性。在此基礎(chǔ)上,本文針對TCLMS 算法收斂速度較慢的缺點進(jìn)行改進(jìn)。由于仿真結(jié)果已驗證了歸一化處理可使算法收斂速度加快,因此,將NLMS 算法的思路引入TCLMS 算法,得到本文的TCLMS 改進(jìn)算法——NMTCLMS 算法。最后通過仿真分析,對比TCLMS算法、M-TCLMS-1算法、本文NMTCLMS算法的誤差信號、頻譜與均方誤差,得出本文的NMTCLMS算法在收斂階段誤差更小、濾波效果更顯著、抗噪聲干擾能力更強(qiáng)、收斂速度更快、收斂過程中的均方誤差更小。所以,本文提出的改進(jìn)方法在保留原有算法計算復(fù)雜度低、抗輸入端不相關(guān)噪聲干擾能力強(qiáng)等優(yōu)點的基礎(chǔ)上,使算法的收斂速度更快、均方誤差更小、穩(wěn)定性更高,對于TCLMS 算法在實際工程中的應(yīng)用具有一定的價值與意義。