2014/07/21 Tang
l 引言
IP電話(Voice Over IP,VolP)是指在因特網上實現實時傳送語音信號的一種新型的電信業務,并且已從傳統的Pc機與PC機連接發展到網關連接方式,它充分利用lnternet來傳輸語音數據,使得通信費用大大降低,從而取得了長足的發展。但是IP電話也存在一些弊端,比如語音質量比較差,影響IP電話語音質量的因素是多方面的,包括回聲的影響,網絡的時延和抖動,語音壓縮編碼等等,其中回聲是最主要的影響。根據經驗,如果語音的延時超過了50ms,那么人耳就可以鑒別出自己的回聲。由于IP電話系統中語音信號要經過編碼、壓縮、打包等一系列處理,不僅造成了回聲路徑的延遲較大,而且延遲抖動也較大,使得總延時長達lOOms, 這就造成IP電話系統的回聲非常嚴重。因此要提高IP電話的語音質量,就必須在語音傳輸的過程中進行消除回聲的處理。鑒于此,國際電信聯盟(ITU)也相應地制定了回聲
消除的國際規范,如G.165、G.167和G.168等。目前為止,IP會議電話出現的眾多回波抵消技術中,大多是基于最小均方(Least Mean Square,LMS)自適應算法的,但在實際應用
中,IP會議電話用于回波抵消的自適應濾波器需要安排很高的階數,在這種情況下,采用LMS算法來實時實現自適應回波抵消是相當困難的。本文介紹了一種歸一化快速塊最小均方(Normalized Fast Block Least Mean Square,NFBLMS)算法,它是在快速塊最小均方(Fast Block Least Mean Square,FBLMS)算法的基礎上采用一階AR模型的形式在自適應迭代過程中對輸入信號的功率進行遞推估計,然后對收斂因子進行歸一化。該算法不僅能有效減小上述應用問題的計算復雜度,同時也能優化收斂速度,從而適用于IP會議電話的要求。
2 自適應回聲消除實現原理
單向傳輸的自適應回聲消除器的原理圖如圖1所示,圖中虛線框是用沖擊響應g(k)來模擬回聲路徑(Echo Path),XB(n)代表來自遠端的語音信號,r(n)是經過g(k)模擬的回聲路徑而產生的不期望的回聲,XA (n)是近端的語音信號。XA (n)+r(n)為近端語音信號疊加有不期望的回聲。對回聲消除器來說,接收到的遠端語音信號 XB (n)作為一個參考信號,回聲消除器根據它由自適應濾波器產生回聲的估計值r^(n),將r^ (n)從近端帶有回聲的語音信號減去,就得到近端傳送出去的信號y(n)= XA (n)+r(n)一r^ (n)。理想情況下,經過回聲消除器處理后,殘留的回聲信號e(n)=r(n)一r^ (n)將為0,從而實現回音消除。另外,在自適應濾波器進行濾波和系數更新之前,要實時檢測當前系統工作的語音模式。若檢測為近端語音模式時,即 Xg(n)=0,就要停止自適應濾波器的濾波和系數更新功能,若檢測為遠端語音模式時,即 (n)=0,就要打開自話應濾波器的濾波和系數更新功能,若檢測為雙端語音模式,即近端用戶和遠端用戶同時在說話時,要停止自適應濾波器的系數更新功能,只需要完成濾波。
2.1 自適應回聲消除算法
由基本最小均方(Least Mean Square,LMS)算法的介紹可知 ,基本LMS算法的迭代公式為
W(n+1):W(n)+2 e(n) (n)
其 中,W(n)為濾波器權系數矢量, ( )為輸入信號矢量,e(n)為誤差信號。為了對付LMS運算量大的問題, 在LMS基礎上提出了塊處理LMS(BlockLMS. BLMS) 算法 。它與LMS算法不同的是:LMS算法是每來一個采樣點就調整一次濾波器權值;而BLMS算法是每K采樣點才對
濾波器的權值更新一次。這樣BLMS算法的運算量就比LMS的運算量要小的多,但它的收斂速度卻與LMS算法相同。在BLMS算法中,對于第 個數據塊,可以對所有的可能值求乘積x(kL+i)e((kL+i )之和,并由此定義運行在實數據上的塊LMS算法的權系數矢量更新公式為:
公式圖
(2) 其中,收斂因子 μ包含了式(1)所示的基本LMS算法中2μ的作用。為了進一步推導的方便,將式(2)改寫為W(k+1)=W(k)+ μ(k)
(3)式中,M×1維矢量 ( k)定義為 (k )=Σx (kl+i)e(kl+ i),L為濾波器的長度。另外,由數字信號處理中常用的重疊保留法和重疊相加法可知塊自適應濾波器中的線性卷積和線性相關都可以利用FFT來快速實現 ,從而實現塊LMS算法的快速算法,即快速塊最小均方算法(Fast BlockLMS,FBLMS)。由上述理論可得濾波器權矢量頻域的更新式為
W(kl+1)=w(k) +μFFT[KO]
(4)其中 (K )=IFFT [Xt (k)E(k)]的前M 個元素。由于FBLMS算法的穩定性,收斂性均與自適應濾波器的長度和輸入信號的功率直接相關。一種能夠優化收斂速度,同時維持與信號功率無關的重要方法稱作歸一化快速塊最小均方(NFBLMS)算法。NFBLMS算法采用一階AR模型的形式在自適應迭代過程中對輸入信號功率進行遞推估計,如下表聲^ PX(n)=1/L ∑_(I=0)^(L-1)?X2} (n—I ) ?(1一1/L) ^ Px(n一1)+ 1/Lx2 (n)
(5) 由此可得NFBLMS算法濾波器權矢量更新公式為W(k+1)=W(K)+μ(n)FFT[?(K)0]
(6)其中 μ(n)=α/dx ,它是濾波器長度 和輸入信號功率X (n)功率歸一化后的時變步長,a 為一個常數,px (n)是輸入信號 X(n)在時刻n的功率估計。
2.2 自適應回聲消除算法的主要性質
穩定條件:由最陡下降法的結果可知,FBLMS算法的穩定條件是
其中B 為塊長度,A 為矩陣R 7 的最大特征值,由于(7)式中分母多了一個 ,所以FBLMS算法的穩定條件比LMS算法受到的限制較多。
收斂速度:
實際應用中總是希望自適應濾波器的收斂速度應盡可能快的跟蹤未知系統,使正常通話開始后,通話者很快就聽不到有明顯的回聲存在;當回聲信道發生變化時,自適應濾波器應有快速的跟蹤能力,盡量讓通話者感覺不到信道發生了變化。由文獻[4]知FBLMS算法平均收斂時間為
(8)
其中A 為矩陣R的特征值的平均值。計算復雜度:根據FBLMS算法和典型LMS算法的特點,對于每個N點數據塊來說,FBLMS濾波器要求有五次2N點的FFvr運算和2次2N點的復數乘法。同時,2N點的FFT運算可以用N點FFT和N次復數相乘來實現。N點基2的FFT大約需要(N/2)log N~N次復數乘法。對于復數權矢量更新大約需要2N次。為了產生Ⅳ個輸出點,LMS算法大約需要2.)、『2次實數乘法。假設一次復數乘法等效于4次實數乘法,則兩者計算復雜度之比為復雜度之比=
3 ITU—T G.168一數字網絡回聲消除器
IrI1u就回聲消除技術先后發布了一系列規范,分別包括電學回聲和聲學回聲的消除。其中2007年1月公布的是關于數字網絡回聲消除器的最新規范。該建議書針對數字網絡回聲消除器提出了一般的設計要求,定義了相關的測試項目,以保證其能夠在各種網絡條件下提供足夠的回聲消除能力。該建議書覆蓋了比G.165更加廣泛的網絡情況,包括話音、傳真、殘余的聲學回聲等。
3.1 基于G.168的復合信號源
G.168中規定了一種特定的復合信號源(CompositeSource Signal,CSS),帶限CSS是具有與話音類似的功率密度譜的信號,它可以仿真話音信號的特征,用它作測試信號可以測量回聲消除器對話音信號的處理能力。由于信號的起始和終止都有明確定義,因此可以方便地測出同一方向上的切換時間,以及整個系統的切換和延遲時間。復合信號源有三部分組成,分別是語音信號(Voice Sound)、偽噪聲信號(Pseudo Noise)、停頓(Pause)。MATLAB中生成的單端通話(single talk)復合信號源如圖2所示,其中采樣頻率為441kHz,偽噪聲信號由8192點傅里葉反變換生成。
3.2 回聲路徑的模擬
回聲路徑是由一個線性數字濾波器的沖擊響應g( )來模擬實現。
g(k)=(10 K)m (k一6)(i=1,2,?,8) (10)其中,i=1,2,? ,8代表不同的回聲路徑模型,比例因子K 依賴于測試中的輸入信號,6表示延時,目的是當g(k)不等于0時,它能被回聲消除器日寄存器捕獲,m (k)表示回聲路徑的各種發散特征。按照G.168規定,當輸入信號為CSS或者白噪聲時,選擇i=1的回聲路徑模型,該回聲路徑模型是在模擬一種混合型網絡情況下生成的。此時K1等于1.39×10-5,ERL等于6dB,m 1( K)代表短時發散。則沖擊響應g(k)
如圖3所示
4 仿真結果與分析
下面MATLAB中的仿真結果都是在遠端語音模式下實現的。
4.1 計算復雜度
以CSS輸人為例,當輸入樣本N等于32768時,由(9)式知復雜度之比為0.00241。另外,在MATLAB中也提供了‘ cputime’命令,它用來計算MATLAB進程運行的時間,例如,在算法運行之前執行starttime:eputime,運行算法之后執行cputime—starttime就可以得出CPU執行該算法所耗用的時間,為了減小CPU執行時的誤差,對樣本多次取值求期望,本次實驗中自適應濾波器的長度L等于512,塊的長度為32,實驗得到的結果如圖4所示
從計算效率來看,當塊的長度Ⅳ等于濾波器長度工時,計算效率最高。由于本次實驗選擇的塊長度小于濾波器長度,雖然這對于降低處理延遲是有利的,但在計算效率方面要小于L:Ⅳ 時的情況。從實驗計算結果來看,即便N <£,FBLMS算法的復雜度遠遠小于LMS算法,由于NFBLMS算法相對FBLMS算法只是對收斂因子 進行歸一化,這樣做的目的是為了優化收斂速度,但在算法的復雜度方面,NFBLMS算法的計算量較之FBLMS算法稍有些增加。因此對于IP會議電話,綜合各個性能指標,NFBLMS算法將是一個非常好的選擇。
4.2 算法的收斂速度
算法的收斂速度是反映回聲消除器的性能一個重要指標。由(8)式知,收斂因子 決定算法的收斂速度, 越大,收斂速度越快,但/.t的選擇不能太大,太大也會導致算法不穩定。圖5(Ⅱ)為LMS算法的收斂特性,(b)為NFBLMS算法的收斂特性,初始收斂因子 =0.04,由圖可知,經過肛歸一化后,NFBLMS算法的收斂速度優于LMS算法。
4.3 回聲返回損耗增益(ERLE)比較
回聲返回損耗增益(ERLE)是對回聲消除器中回聲電平改進的描述,實際總是希望ERLE越高越好。ERLE的定義如下Σd2(n— )ERLE(n)=lOlg J.—一 (11)Σ ( — )將(5)式代入上式,~ERLE( )=l。lg孝 ,即ERLE為期望信號與誤差信號的功率之比。LMS算法和NFB! MS算法ERLE曲線如圖6所示,由圖可知,采用NFBLMS算法的ERLE要高于LMS算法,并且收斂速度也有所改善。
5 結束語
回聲消除技術在IP電話中占有非常重要的地位,特別在IP會議電話中用于回聲消除的自適應濾波器需要進行大量的運算。但實際應用中總是在算法復雜度、算法穩定性和收斂速度三者中做出選擇,一般小的 值能獲得更高的穩定性,但會導致收斂速度過慢。本文采用NFBLMS算法可以有效降低算法的復雜度,大大減輕了DSP開銷,但由于受到算法穩定性的影響, 的選擇不能太大,這樣也就導致收斂速度不可能過快,尤其在雙端語音模式下表現更為明顯。因此要在雙端語音模式下獲得更快的收斂速度,還需對算法加以改進。
40088 411661033743080@qq.com
中國廣東省深圳市南山區西麗九祥嶺工業區10棟3樓