2014/05/05 Tang
1 引言
隨著網絡通信速度的提高以及通信費用大幅度的降低,IP電話在不久的將來會取代現有的大部分傳統電信業務,成為未來通信的一種主流模式,但是與傳統電話相比,由于回聲的影響,IP電話在因特網上進行語音的實時傳輸話音質量較差,入耳對大于50ms的回聲就能鑒別出來,而IP電話總的延遲在100 ms以上,因此如何消除IP電話中的回聲已成為非常重要的問題。目前回聲消除使用得最廣泛的自適應算法是LMS自適應濾波算法,LMS算法是建立在維納濾波器的基礎上發展而來的,由于維納濾波器參數是固定的,只有在對信號和噪聲的統計特性先驗已知的情況下才能獲得最佳濾波性能,但是在實際運用中常常無法得到這些統計的先驗知識,在這種情況下自適應濾波能提供優越性能,它利用前一時刻已獲得的濾波參數等結果,自動地調節現時刻的濾波器參數,以適應信號和噪聲隨機的統計特性。常見的回聲消除算法有:遞歸最小二乘算法(RtS)、最小均方誤差算法(LMS)、能量歸一化LMS算法(NLMS)、塊處理算法(BLMS)等。衡量一個自適應濾波器算法性能優劣的主要參數包括收斂速度和運算量,從收斂速度來看,RLS算法明顯優于LMS算法,但RLS算法在運算上比LMS算法復雜;NLMS和BLMS算法針對LMS算法步長提出了改進,提高了收斂速度,但步長的改進是以增加算法的復雜度為代價的。本文將算法的復雜度和收斂性能相結合,提出了一種改進算法,首先采用量化誤差算法,使LMS算法中乘法運算轉化為符號運算,大大降低了計算量;其次,采用變步長算法,使其收斂速度盡可能快。
2 改進自適應濾波算法原理
改進算法通過對算法復雜度和收斂速度的綜合考慮,將量化誤差算法和變步長算法相結合。變步長算法能較好的減小誤差的幅度,提高收斂速度,所存在的缺點是計算復雜度大;而量化誤差算法則用誤差的符號來代替誤差本身,減小了計算量,但會增大梯度的估計誤差。因此在解決收斂速度和算法復雜度矛盾的情況下,可以考慮結合兩種算法的優點,提出一種新的改進算法。改進算法的基本原理圖如圖1所示,x(n)表示隨機信號的輸入,n0,n1表示相關的噪聲信號,d(n)表示期望輸出信號,y(n)表示算法的實際輸出信號,它由自適應濾波器來調節,它利用前一時刻已獲得的濾波參數等結果,采用改進算法的權值公式自動地調節現時刻的濾波器參數,從而獲得理想的誤差信號,其誤差值e(n)為期望輸出信號與實際輸出信號之差。
2.1量化誤差算法
2.1.1 采用符號誤差LMS算法口
這種方法是對誤差信號進行量化,將LMS算法的權值調節為:W(n+1)=W(n) + μ(n)e(n)x(n) (1) 進行變形如式(2)所示:W(n+1)=W(n) + μf(e(n))x(n) (2) 上式(2)中W(n)為第步迭代的權向量,μ(n)為第n步迭代更新步長,也稱為收斂因子,為確保收斂,收斂因子μ應滿足0</μ<2/λ(λ是E(x(n)·x(n))的最大特征值)。對函數,f(·)取不同形式,可以得到不同的量化誤差LMS算法,一般將f定義為符號函數sign,即將誤差e(n)用其符號代替,即SA(sign algorithms)算法。函數f(·)表達式如下式:
這樣一來將乘法運算轉化為符號函數,從而大大的降低了計算量,由原來的2N個乘法器和2N個加法器才能實現的計算量簡化為,N個移位器和2N個加法器實現的計算量,算法的物理實現難度被大大降低。
2.1.2 采用符號數據LMS算法
為了減輕LMS算法計算復雜度,除了對誤差e(n)進量化外,還可對輸人數據x(n)進行量化也就是SRA(sign- data algorithms)算法。將LMS算法的權值調節公式進行變形如式(4)所示: W(n+1)=W(n) + μe(n)f(x(n)) (4) 對函數f(·)取不同形式,其形式與上面相同。在符號數據算法中,梯度向量
平均梯度方向只能沿著某些離散的方向進行更新,這可能引起更新過程中平方誤差的頻繁增加,從而導致不穩定。所以一般采用符號誤差算法來減少計算量。
2.2 可變步長LMS自適應濾波算法
文獻[5]分析指出,由于在信號輸入端不可避免的存在干擾噪聲,LMS算法將產生失調噪聲,干擾噪聲越大,引起的失調噪聲也就越大。減少步長因子,可以減少自適應濾波算法的穩態失調噪聲。然而步長因子的減小,將降低算法的收斂精度和跟蹤速度。因此,固定步長的LMS算法在收斂速度,跟蹤速度及失調噪聲之間的要求是相互矛盾的。因此在選擇步長時,需要在穩態誤差和收斂速度之間折衷考慮,可變步長算法基本上遵循如下調整原則:在初始收斂階段或未知系統參數發生變化時,步長應比較大,以便有較快的收斂速度或對時變系統的跟蹤速度;而在算法收斂后,不管主輸入端干擾信號有多大,都應保持很小的調整步長以達到很小的穩態失調噪聲。這樣才能夠在信道性能比較差的情況下得到一個相對比較小的均方誤差??勺儾介L算法的步長因子μ(n)更新公式為:
則其權值公式相應地調整為:
式(6)中,為控制失調的固定收斂因子,0<α<2,參數是為避免x(n)·xt(n)過小導致步長值太大而設置的。步長因子μ(n)是輸入信號x(n)的非線性變量,它使步長在收斂過程中由大逐漸變小,加速了收斂過程。與固定步長的算法相比,變步長算法的優越性在于:自適應算法的開始階段時,誤差信號e(n)比較大,步長因子μ(n)也相應地變大,從而得到較快的收斂速度。當誤差逐漸減小時,步長因子μ(n)相應地變小,因此穩態誤差也很小,從而在收斂速度和穩態誤差兩方面達到了兼顧。
3 改進算法
從前面介紹的兩種算法—量化誤差算法和可變步長算法,可以看出變步長算法能較好的控制步長的大小,從而提高收斂速度,所存在的缺點是計算復雜度大;而量化誤差算法則用誤差的符號來代替誤差本身,減小了計算量,因此我們可以考慮將兩種算法結合起來,根據量化誤差算法的計算量小以及可變步長算法的收斂速度快的優點,得到一種新的改進算法。誤差信號值要達到理想的狀態,其算法重點在于自適應濾波器的權值公式的調節。綜合量化誤差算法式(2)和可變步長算法式(6)可以得出改進算法的權值公式為:
由此改進算法具體步驟可以歸納為:
1)設定濾波器權值W(n)的初始值:W(0)=0,0<μ<1;
2)計算濾波器實際輸出估計值:y(n)=Wt(n)X(n);
3)計算估計誤差:e(n)=d(n)-y(n);
4)定義符號函f(x)=20;0;
5)步長因子
6)計算n+1時刻的濾波器系數:W(n+1)= W(n) + μf(e(n))X(n);
7)將n增至n+1,重復步驟2)到6)。
4 改進算法的仿真分析
4.1 改進算法仿真
將改進算法一量化誤差算法和變步長算法有機結合,使用Matlab工具進行仿真實驗。并將改進算法的仿真結果與傳統LMS算法進行比較。首先設置1000個采樣點,構造一個階次為2,截止頻率為0.25Hz的巴特沃思濾波器,加入隨機噪聲信號進行系統辨識,如圖2所示,通過隨機輸入信號得到辨識對象的輸出,即期望輸出信號d(n)。部分程序實現如下:
仿真實驗中采用變步長對前60個采樣點進行試驗,對前20個采樣點采用大步長mu=0.32,對后40個采用點采用小步長mu=0.15,修正參數fai=0.0001,按照改進算法的具體步驟,采用權值公式W=W+mu * u * f(e(n))/(r(n)+ fai)的迭代,進行循環計算,得到改進算法的實際輸出信號y(n)。接著將辨識對象的輸出d(n)與該改進算法得到的輸出Y(n)進行相減,這樣就得到了第一個誤差信號e(n),這樣逐步進行直到訓練完成。部分程序實現如下:
仿真結果如圖3,圖4和圖5所示。圖3分別是辨識對象的輸出即期望輸出信號d(n)和算法實際輸出信號y(n)。圖4上方曲線代表的是傳統LNS算法的誤差信號e(n)曲線,下方曲線代表的是改進算法的誤差信號e(n)曲線,由圖4可見,改進算法的誤差值e(n)即實際輸出y(n)與期望響應d(n)之間的差值比傳統LMS算法的誤差要小,誤差精度也達到了滿意的效果,但并不足以證明改進算法的收斂速度比傳統LMS算法快。圖5是改進算法和傳統LMS算法的均方誤差曲線比較,由圖5可以知道,改進算法的誤差收斂速度要比傳統LMS算法快得多。從圖5中可以看出,在傳統 LMS算法曲線中,由于采用固定步長,前60個采樣點誤差收斂性能較差;而在改進算法曲線中,前60個采樣點步長變化明顯,由大逐漸變小,收斂速度也明顯得到提高,從60點以后誤差信號逐漸趨于穩定,達到理想狀態,整體的誤差精度也優于傳統LMS算法,由此表明實驗所得結果與理論分析一致。
4.2 仿真分析及評論
4.2.1改進算法仿真結果分析
1)計算量大大減小。傳統LMS算法步長因子改進后,計算復雜度增加,改進算法將誤差信號進行量化,其值e(n)的大小由誤差的符號sign(e(n)來代替,大大降低了算法的計算量。
2)收斂速度大大加快。傳統LMS算法采用固定步長,收斂速度小,改進算法將原始步長因子更新為α[φ+ x(n) · xt(n)],它是輸入信號x(n)的非線性變量,隨著采樣次數的增加,步長由大變小,從而提高了收斂速度。由上面的兩種結果的比較分析可以知道,在變步長LMS算法以及量化誤差算法的基礎上進行改進的這種算法,不管是在收斂速度方面還是在運算量方面,其性能都是提升的,在實際的IP電話回聲消除系統運用中,也能進一步的消除噪聲干擾,對設計高質量的語音通話系統是很有幫助的。
4.2.1 仿真結果評論
變步長算法在收斂程度上遠勝于傳統LMS算法,但其權值公式進行改進后,計算復雜度增加,而量化誤差算法,將誤差進行分段線性限幅函數量化,將LMS算法需要用2N個乘法器和2N個加法器才能實現的計算量簡化為N個移位器和2N個加法器實現的計算量,使得計算量減小,因此針對兩種算法的優缺點提出了一種改進算法,它結合了變步長算法收斂速度快和量化誤差算法的計算量小的優點,從而在保證變步長算法收斂度的條件下彌補了算法的復雜度,如圖3,圖4和圖5所示,仿真結果表明改進算法既減少了算法的計算
量,又提高了誤差收斂速度。因此它能很好的運用在IP電話回聲消除系統中。在實際運用中,步長因子的選擇也是十分重要的,它對濾波器收斂性能有很大的影響,因為它控制了為達到最優解的算法收斂速度。本次仿真試驗中采用的步長因子是經過多次測試才得到的。
5 小結
自適應信號處理的理論經過多年的發展和完善,已經在許多領域中得到應用,本文將自適應信號處理技術應用于語音通信的回聲消除。傳統LMS算法由于結構簡單、穩定性好、易乇硬件實現等諸多優點而被廣泛用于自適應控制、雷達、系統辨識及信號處理等領域。但是這種固定步長的LMS自適應算法存在著收斂速度慢的缺點。本文主要在算法復雜度和算法收斂速度這兩個參數上對傳統LMS算法進行改進,通過理論分析和仿真研究表明,本文提出的算法在保證精度的前提下,可大大降低算法的復雜度,并能加快算法的收斂速度,為實際運用提供了更大的靈活性,在回聲系統中能較好地滿足IP電話對語音的要求。從而提高了通話質量。
40088 411661033743080@qq.com
中國廣東省深圳市南山區西麗九祥嶺工業區10棟3樓