摘要:傳統的最小均方誤差(Least Mean Square, LMS) 算法具有計算量低、易于實現的優點,廣泛應用于各種場景,但其平均收斂速度和穩態誤差相互制約。基于箕舌線函數(Tongue Line) 的變步長LMS(Tongue Line Least Mean Square, TLLMS)算法引入箕舌線函數,改進了步長更新公式,從而提高了收斂速度并降低了穩態誤差。然而,該算法的步長易受噪聲干擾,導致濾波器權值在最優權值附近波動。為此,文章提出了改進箕舌線變步長LMS(Improved Tongue Line Least MeanSquare, ITLLMS) 算法。該算法進一步優化了步長更新公式,消除了輸入端不相關噪聲的干擾,以最小化收斂時的穩態誤差,并加入上一步步長的影響以增強系統的跟蹤能力。將ITLLMS算法應用于自適應噪聲抵消系統的實驗結果表明,與基于相關特性(Correlation Characteristic) 的箕舌線變步長LMS(Correlation Characteristic Tongue Line Least Mean Square,CCTLLMS) 算法相比,文章提出的ITLLMS算法具有更快的收斂速度、更低的穩態誤差以及更低的計算量。
關鍵詞:箕舌線;自適應濾波;變步長LMS算法;收斂速度;穩態誤差;噪聲抵消
中圖分類號:G424 文獻標識碼:A
文章編號:1009-3044(2025)05-0081-03 開放科學(資源服務) 標識碼(OSID) :
0 引言
最小均方算法(Least Mean Square,LMS) 是最具代表性的一類自適應算法。該算法因其簡單性和適應性,廣泛應用于系統識別、回聲消除、有源噪聲控制和信道均衡等領域[1]。LMS算法的參數可以根據誤差梯度的最陡下降法自動調整為最佳濾波器,其權重更新公式為:
ω(n + 1) = ω(n) - μ?J (n) (1)
式中:μ為迭代步長,J (n)為即時梯度。
將以上兩式進行合并整理,則可得:
ω(n + 1) = ω(n) + 2μe (n) x (n) (3)
同時,算法應該滿足收斂條件,λmax 代表輸入信號的自相關矩陣最大特征值。
0 lt; μ lt; 1 /λmax (4)
可以得到輸入信號 y(n)及其誤差信號e(n):
y (n) = ωT(n) x (n) (5)
e (n) = d (n) - y (n) (6)
收斂時間τmax、穩態誤差M 與迭代步長之間存在如下關系(其中,L代表自適應濾波器的長度) :
τmax = 1/2μλmin (7)
M = μLλov /2 (8)
步長μ是影響算法收斂速度和穩態誤差大小的關鍵因素。當步長μ較大時,算法的收斂速度較快,但穩態誤差會較大;步長較小時,穩態誤差較小,但收斂速度較慢。同時,在LMS算法的運作中,抽頭權重的調整量與抽頭輸入向量呈正相關。當輸入向量相對較大時,LMS可能會面臨因梯度噪聲放大而引發的問題。
為了有效解決上述問題,研究者提出了多種改進方法。NLMS(Normalized LMS) 算法通過使用抽頭輸入向量的平方歐式范數對抽頭權值調整量進行歸一化,從而加快收斂速度并提高穩定性[2]。基于Sigmoid 函數的變步長最小均方算法[3]能夠兼顧收斂速度與穩態誤差,但在求解步長因子時需要進行指數運算,計算復雜度較高,且占用的硬件存儲空間較大,不利于實際應用。文獻[4]引入箕舌線函數改進LMS算法的步長控制,提出箕舌線變步長LMS(TLLMS) 算法,該算法在收斂速度、穩態誤差和計算復雜度方面表現更優。為解決TLLMS算法步長更新公式易受噪聲干擾的問題,文獻[5]基于高斯白噪聲相關性差的特性,提出了基于相關特性的箕舌線變步長LMS(CCTLLMS) 算法,加強了輸入信號對誤差的影響,從而顯著增強了算法的抗噪聲干擾能力。
本文在CCTLLMS算法的基礎上,提出了改進箕舌線變步長LMS(ITLLMS) 算法。通過優化箕舌線函數調整步長更新公式,并加入上一步步長的影響,增強了系統的跟蹤能力,最小化了收斂時的穩態誤差,同時降低了計算復雜度。本文其余部分結構如下:第一部分介紹TLLMS算法;第二部分提出ITLLMS算法,并與CCTLLMS算法進行對比;第三部分將CCTLLMS 算法和ITLLMS算法應用于自適應噪聲抵消系統[6],進行仿真分析;第四部分總結全文并得出結論。
1 箕舌線變步長LMS 算法
文獻[4]提出的基于箕舌線變步長LMS(TLLMS) 算法如下。
式中: x(n) 表示 n 時刻的輸入信號矢量, x(n) = [ x(n),x(n - 1),...,x(n - M + 1) ]T ; ω (n) 為 n 時刻的權值, ω(n) = [ ω0 (n),ω1 (n),...,ω ] M - 1 (n) T ; d (n) 為 n 時刻的期望輸出信號。由于LMS算法收斂的條件是0 lt;μ lt; 1/ λmax。TLLMS算法中,由式(9)可知β 控制步長更新函數的取值范圍,μ (n) lt; β,參數0 lt; β? 1/ λmax,算法收斂。在算法收斂條件下,當α 固定時,算法的收斂速度隨β 的增大而加速,但過大的β 值會增加算法的穩態誤差;當β 固定時,算法的穩態誤差隨著參數α 的增大而減小,但過大的α 值會減慢算法的收斂速度;當α、β 都固定時,μ (n) 由 e(n) 唯一確定,當誤差 e(n) 大時,步長 μ (n) 大;當誤差 e(n) 小時,步長 μ (n) 小。在實際應用中,應選擇合適的α、β,使得算法開始迭代時,初始誤差e(n) 大,對應的初始步長μ (n)大,可保證算法最小均方誤差快速下降;當算法趨向收斂時,誤差e(n) 比較小,步長 μ (n) 也比較小,可保證算法逼近最優解,具有較小的穩態誤差。
2 改進箕舌線變步長LMS 算法
TLLMS算法中,誤差 e(n) 包含兩部分: 信號誤差分量和噪聲干擾。在噪聲干擾較為嚴重的環境中,即使自適應濾波器的系數根據最小均方誤差準則收斂于目標系統,由于噪聲的存在,誤差e(n)仍然較大,步長也較大,從而使μ (n)無法達到一個很小的值。自適應算法只能在最優解附近波動,導致較大的收斂誤差。因此,需要對步長迭代式(9) 進行改進,消除噪聲干擾對步長μ(n)的影響,使步長μ (n)僅與誤差e(n)中的信號分量有關。
文獻[7]證明,自適應濾波器的主輸入端即使存在較大的高斯白噪聲干擾v (n),誤差e(n)和輸入信號x (n) 的互相關函數會隨著迭代的進行不斷減小。當自適應濾波算法收斂時,E [ e(n)x(n) ] = 0。因此,可以利用| e(n)x(n) |來控制步長,加強輸入信號對誤差的影響,從而提高收斂速度并減小穩態誤差。
文獻[5]基于高斯白噪聲v 自相關性比較差的特性(即 E [ v(n)v(n - 1) ] = 0) ,提出了基于相關特性的箕舌線變步長LMS(CCTLLMS) 算法, 其步長更新公式為:
該步長更新公式受噪聲影響很小,具有較強的抗噪聲干擾能力。理論分析和仿真結果表明:若TLLMS 算法和CCTLLMS算法選取相同參數,則CCTLLMS算法具有更小的穩態誤差;在保證算法收斂的條件下,CCTLLMS算法相對而言具有更快的收斂速度。
同樣為解決TLLMS 算法容易受到輸入端不相關噪聲干擾的問題,文獻[8]將步長更新公式改為式(11) 所示。算法步長更新公式用e (n)e (n - 1) 代替e2(n),從而有效消除了輸入端不相關噪聲的干擾。此外,加入的補償項 0.5e(n),保證了算法的收斂速度。
在文獻[8]的基礎上,文獻[9]將NLMS算法的思路引入TLLMS算法,對算法的步長因子進行了歸一化處理,進一步提高了算法的更新速度。其步長更新公式由式(12) 所示。該算法在加快收斂速度的同時,計算復雜度也大大增加。
為了獲得更好的收斂性能并降低計算復雜度,本文對CCTLLMS算法進行優化,提出了改進的箕舌線變步長LMS(ITLLMS) 算法,其步長更新公式由式(13) 所示。步長迭代公式中含 e(n)e(n - 1) ,根據輸入信號與誤差互不相關的分析,在算法的初始迭代階段,由于 e(n)e(n - 1) 較大,可以獲得較大的步長;根據噪聲自相關性差的分析, e(n)e(n - 1) 可有效消除輸入端不相關噪聲的干擾,并在穩態階段獲得較小的步長。同時,步長更新公式中加入了上一步步長μ (n - 1) 的影響,避免了在算法尚完全收斂階段因誤差信號e (n)可能出現不相關而導致步長減小到最小值的情況,從而增強了系統的跟蹤能力。相比CCTLLMS算法中E [ e(n)e(n - 1) ],ITLLMS算法的計算復雜度大大降低。
3 仿真分析
將CCTLLMS 算法和ITLLMS 算法應用于圖1所示的自適應噪聲抵消系統,仿真比較兩種算法的濾波性能。自適應噪聲抵消系統中,有用信號s經過傳感器,會疊加主通道噪聲信號n0后進入抵消系統,參考通道中噪聲信號n1通過參數可調的數字濾波器,根據n1與n0相關、s和n0不相關的特性,利用自適應算法調節數字濾波器的參數,使輸出信號y逼近噪聲信號n0,抵消器的輸出信號e功率最小,從而逼近有用信號s,達到降噪的目的。信號源產生隨機雙極性信號,干擾源為高斯白噪聲,功率大小為0.64W。主信道為三階 FIR 濾波器, 濾波器系數分別是 0.8、0.3 和 0.5 ,參考信道為二階 FIR 濾波器,系數分別是0.4、-0.2;迭代次數是2 500。
CCTLLMS 算法和ITLLMS 算法在步長參數β =0.18,α = 50時,收斂過程及穩態誤差曲線如圖2所示。兩種算法收斂速度基本相等,但ITLLMS算法的穩態誤差明顯小于CCTLLMS 算法。這表明 e(n)e(n - 1) 可有效消除輸入端不相關噪聲的干擾,并在穩態階段e (n)e (n - 1) 獲得較小的步長;從而顯著減小收斂誤差。該結果與理論分析一致,驗證了ITLLMS算法的優越性。
當參數修改為β =0.2、α =50時,CCTLLMS算法和ITLLMS算法的收斂過程及穩態誤差曲線如圖3所示。可以觀察到,ITLLMS算法的穩態誤差依然明顯小于CCTLLMS算法。相較于圖2,兩種算法的收斂速度均有所加快,但穩態誤差也隨之變大,與理論分析一致。
當圖1 中的干擾源高斯白噪聲的功率增大為1.44W,迭代次數增加至4 000 次,步長參數設置為β =0.2、α =50,其他參數保持不變時,CCTLLMS 算法和ITLLMS算法的收斂過程及穩態誤差曲線如圖4所示。結果表明,ITLLMS算法相比CCTLLMS算法具有更穩定的收斂過程、更快的收斂速度以及更小的穩態誤差。這說明在高斯白噪聲功率增大、干擾情況更加嚴重的情況下,ITLLMS算法的抗噪聲干擾能力更強,其相對于CCTLLMS算法的優勢更加明顯。
4 總結
本文首先對 LMS 算法、箕舌線變步長 LMS ((TCLCLTMLLSM) 算S) 法算、法基等于進相行關了特分性析的歸箕納舌。線LM變S算步法長由LM于S步長因子固定,無法同時滿足收斂速度快與穩態誤差小的要求;TLLMS算法通過將傳統的Sigmoid函數優化為箕舌線函數,降低了計算復雜度,且穩定性更高,解決了收斂速度與穩態誤差之間的矛盾,但算法易受輸入端不相關噪聲的干擾,導致自適應濾波器權值在最優權值附近波動;CCTLLMS算法對TLLMS算法的步長更新公式進行了修正,用E [ e(n)e(n - 1) ]代替e2 (n),使步長更新公式受噪聲影響較小,具有很強的抗噪聲干擾能力,從而獲得更小的穩態誤差。
在此基礎上,本文提出了改進箕舌線變步長LMS (ITLLMS) 算法,對步長更新公式進行了進一步優化,用 e(n)e(n - 1) 代替CCTLLMS算法中E [ e(n)e(n -1) ],降低了計算復雜度。同時,為避免在算法尚未完全收斂階段因誤差信號e (n)可能出現不相關而導致步長減小到最小值的情況,加入了上一步步長μ (n -1)的影響,從而加強了系統的跟蹤能力。
最后,將CCTLLMS算法和ITLLMS算法應用于自適應噪聲抵消系統,信號源產生隨機雙極性信號,干擾源為高斯白噪聲。在MATLAB軟件中,通過改變α、β 參數值和噪聲功率進行仿真。實驗結果表明,在兩種算法α、β 參數值和噪聲功率取值相同的情況下,ITLLMS算法比CCTLLMS算法具有更穩定的收斂過程、更快的收斂速度和更小的穩態誤差;在高斯白噪聲功率越大、干擾情況越嚴重的情況下,ITLLMS算法相對CCTLLMS 算法的優勢越明顯??傮w而言,ITLLMS算法具有更好的收斂性能、更小的穩態誤差以及更強的對抗大功率噪聲的能力。
參考文獻:
[1] DINIZ P S R.Fundamentals of adaptive filtering[M]//AdaptiveFiltering.Boston,MA:Springer US,2013:13-78.
[2] 李雅林,譚立輝.一種改進的歸一化LMS算法[J].佛山科學技術學院學報(自然科學版),2018,36(5):84-87.
[3] 劉憲爽,吳華明,肖文波,等.改進的雙Sigmoid函數變步長自適應算法及在OCT中的應用[J].電子學報,2019,47(1):234-240.
[4] 鄧江波,侯新國,吳正國.基于箕舌線的變步長LMS自適應算法[J].數據采集與處理,2004,19(3):282-285.
[5] 路翠華,李國林,周洪慶,等.基于相關特性的改進箕舌線變步長LMS算法[J].數據采集與處理,2015,30(4):896-901.
[6] 宋普查,趙海全.基于最大混合相關熵準則的主動噪聲控制算法[J].信號處理,2020,36(6):942-947.
[7] 張薇薇.箕舌線自適應濾波算法的分析與改進[J].西安郵電學院學報,2013,18(1):74-77.
[8] 胡春嬌,楊順.基于箕舌線變步長LMS算法的分析與改進[J]. 計算機仿真,2010,27(11):359-362.
[9] 李?;?,伍松,魏晟弘,等.箕舌線變步長LMS算法的分析與改進[J].廣西科技大學學報,2022,33(4):57-62.
【通聯編輯:唐一東】