《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動態(tài) > 用C5402 DSP實現(xiàn)的G.168自適應(yīng)回聲消除器

用C5402 DSP實現(xiàn)的G.168自適應(yīng)回聲消除器

2008-12-29
作者:蔣 彥1, 陳 健2

  摘? 要:敘述網(wǎng)絡(luò)電話系統(tǒng)" title="電話系統(tǒng)">電話系統(tǒng)的回聲特點,介紹了ITU-T G.168建議書的有關(guān)要點?;谛詢r比方面的考慮,提出了利用nLMS算法構(gòu)成的橫向濾波器" title="橫向濾波器">橫向濾波器組成自適應(yīng)回聲消除" title="回聲消除">回聲消除器,并在TMS320C5402 DSP上實現(xiàn)了該算法。經(jīng)過測試,主要性能均達到G.168規(guī)范要求。

  關(guān)鍵詞: 橫向濾波器? 回聲消除器? nLMS算法? 數(shù)字信號處理? ITU-T標準

?

  過去,通過衛(wèi)星打國際長途電話時,因為同步靜止衛(wèi)星的通話路徑長,引起通話延遲(單跳250ms,雙跳500ms),因電路失配所引起的線路回聲就很明顯,所以從二十世紀80年代起人們就研究回聲消除的辦法。由簡單的回聲抑制器發(fā)展到自適應(yīng)回聲消除器,國際電聯(lián)(ITU)也相應(yīng)地制訂了回聲消除器的國際標準,如G.164?G.165和G.167等。進入90年代后期,通過英特網(wǎng)撥打長途電話,即IP電話流行。IP電話是以數(shù)據(jù)包的格式在英特網(wǎng)中與其它數(shù)據(jù)信息按TCP/IP協(xié)議一起傳輸,從發(fā)話端到受話端延時較長,并且是不確定的。這里的延時包括算法延遲?處理延遲?網(wǎng)絡(luò)延遲等,算法延遲從0.125ms~30ms不等,處理延遲約30ms,網(wǎng)絡(luò)延遲高達70~100ms,總的延遲在100ms以上,而人耳對于大于50ms的回聲就能鑒別出來,因此IP電話系統(tǒng)的回聲影響相當(dāng)嚴重,如何消除IP電話中的回聲成為非常重要的問題。

  在IP電話系統(tǒng)中,自適應(yīng)回聲消除器成為不可缺少的設(shè)備。鑒于IP電話與普通國際長途電話的不同,ITU于1997年通過了G.168回聲消除器的標準,該標準是G.165標準的發(fā)展,而更多地考慮到網(wǎng)絡(luò)情況,包括話音?傳真?固定和移動用戶等應(yīng)用,所以G.165和G.168均為IP電話系統(tǒng)采用的標準。

1 ITU-T G.168

  國際電聯(lián)就回聲消除技術(shù)先后發(fā)布了一系列規(guī)范,分別包括電學(xué)回聲和聲學(xué)回聲的消除,其中1997年公布的G.168是關(guān)于電學(xué)回聲消除的最新規(guī)范。該建議書針對數(shù)字回聲消除器提出了一般的設(shè)計要求,定義了相關(guān)的測試項目,以保證其能夠在各種網(wǎng)絡(luò)條件下提供足夠的回聲消除能力。該建議書覆蓋了比G.165更加廣泛的網(wǎng)絡(luò)情況,包括話音?傳真?殘余的聲學(xué)回聲和移動網(wǎng)等不同應(yīng)用。同時,該建議書還定義了一系列客觀測試項目(objective tests),如果回聲消除器通過這些測試,那么當(dāng)其安裝在網(wǎng)絡(luò)中,起碼就可以完成最低限度的回聲消除功能。一個能夠通過這些測試的回聲消除器,不應(yīng)該影響話音信號的傳輸或其它設(shè)備的工作。圖1是回聲消除器的基本組成和參數(shù)。

?

?

  為了客觀地評價各種回聲消除器的性能,G.168中規(guī)定了一種特定的復(fù)合信號源(Composite Source Signals: CCS),帶限CCS是具有與話音類似的功率密度譜的信號,可以仿真話音信號的特征,用它來作測試信號可以測量回聲消除器對話音信號的處理能力。由于信號的起始和終止都有明確定義,因此可以方便地測出同一方向上的切換時間,和整個系統(tǒng)的切換和延遲時間。

  在MATLAB中,利用程序生成了符合G.168要求的帶限CCS信號,如圖2所示。

?

?

2 回聲消除器的算法原理

  一般而言,回聲消除器就是一個自適應(yīng)辨識系統(tǒng),它通過特定的方法辨識未知的目標系統(tǒng),即:回聲經(jīng)過的路徑。通常,先設(shè)定“自適應(yīng)辨識網(wǎng)絡(luò)”的結(jié)構(gòu)形式,再通過對輸入序列和輸出序列的計算,不斷地調(diào)整網(wǎng)絡(luò)參數(shù)。這種自適應(yīng)辨識要求在盡量短的輸入數(shù)字序列期間,以某種合理定義下的辨識誤差為準則,解出各待定參數(shù)。

  自適應(yīng)網(wǎng)絡(luò)結(jié)構(gòu)的常用形式為“橫向(Transverse)濾波器”,如圖3所示。T是延時器,W(n)=[w0(n),w1(n),...,wL-1(n)]是加權(quán)因子(n為時間序號),即待定的網(wǎng)絡(luò)參數(shù),它隨著辨識誤差等而改變,每隔一個碼元間隔(每時間序號)調(diào)整一次。

????最陡梯度法是以最小估計誤差平方為準則的自適應(yīng)信號處理算法,但是它要求知道輸入/輸出數(shù)據(jù)的二階統(tǒng)計特性,并且要求這些數(shù)據(jù)信號是平穩(wěn)的,通常不易滿足。于是,在最陡梯度法的基礎(chǔ)上引入適當(dāng)?shù)慕?,即得到LMS算法。由于在最陡梯度法中應(yīng)用的是統(tǒng)計平均特性,而在LMS法應(yīng)用的是瞬間數(shù)據(jù),只是在統(tǒng)計平均的意義下才與最陡梯度法等效,故解所反映的過程是隨機的,即它為一隨機自適應(yīng)算法。雖說輸入信號" title="輸入信號">輸入信號的二階統(tǒng)計特性彼此相同,所得解(指權(quán)值)與最陡梯度法相比卻呈現(xiàn)波動,且波動瞬間時值隨輸入信號的不同而異。LMS算法的特點是:每次迭代的計算量小,所需的存儲量也小,易于實現(xiàn)。

?

?

  在圖3的情況下,設(shè)X(n)=[x(n),x(n-1),...,x(n-L+1)]T是時刻n的輸入信號矢量,由最近的L個信號采樣值構(gòu)成,L是橫向濾波器的長度。y(n)是回聲消除器的期望(估計)輸出值,d(n)是Sin點的實際輸出值,e(n)是減法器得到的估計誤差。μ是回聲消除器控制穩(wěn)定性和收斂速度的參量,稱為步長因子。

  LMS算法的基本方程歸納如下:

  ????

  由于輸入信號的大小對LMS算法存在影響,即同樣情況下,能量高的信號會引起梯度噪放大,而能量低的信號算法收斂較慢。因此在實際應(yīng)用中,將輸入信號按照自身的平均能量進行歸一化處理,得到歸一化的LMS算法,即nLMS。如式(4)所示。

  

  這里的參數(shù)a是nLMS所特有的,為了避免在輸入信號矢量過小時可能產(chǎn)生的數(shù)值計算問題,而特意引入的,它是一個很小的正數(shù)。

  從方程看,LMS算法的優(yōu)點是運算簡便,但它只有一個可調(diào)整參數(shù),即步長因子μ,用來控制收斂速度。由于μ的選擇受系統(tǒng)穩(wěn)定性的限制,因此,算法的收斂速度受到較大限制。

3 用DSP實現(xiàn)的G.168回聲消除器

3.1 TMS320VC5402 DSP的特點介紹

  TMS320VC5402是TI C5000系列DSP芯片族中使用最廣的一種,具有以下特點:

  · TMS320VC5402 DSP,它的最高時鐘頻率達到100MHz,內(nèi)核電壓是1.8V,I/O電壓是3.3V。它的片內(nèi)存儲器為:16KB DARAM,4KB ROM,功耗低,平均約為0.32mW/MIPS。

  · DSP內(nèi)部采用改進的哈佛結(jié)構(gòu),即:程序空間和數(shù)據(jù)空間分開,允許同時取指令和取操作數(shù),而且,還允許在程序和數(shù)據(jù)空間之間相互傳送數(shù)據(jù)。

  · DSP芯片內(nèi)部采用多總線結(jié)構(gòu),C54x內(nèi)部有P?C?D和E等4條總線(每條總線包括地址總線和數(shù)據(jù)總線),可以在一個機器周期內(nèi)從程序存儲區(qū)取1條指令,從數(shù)據(jù)存儲區(qū)讀2個操作數(shù)并向數(shù)據(jù)存儲區(qū)寫1個操作數(shù),大大提高了DSP的運行速度。

  · 在DSP中,采用流水線結(jié)構(gòu),將一條指令執(zhí)行所需要的取指?譯碼?取操作數(shù)并執(zhí)行等幾個步驟同時完成,使指令周期" title="指令周期">指令周期降低到最小值。

  · DSP內(nèi)部有多個處理單元,如算術(shù)邏輯運算單元(ALU)?輔助運算單元(ARCU)?累加器(ACC)和硬件乘法器(MUL)等,它們可以在一個指令周期內(nèi)同時進行運算,特別適用于FIR和IIR濾波器。

  · 在DSP的指令系統(tǒng)中,設(shè)計了一些特殊高效的DSP指令,如FIRS和LMS指令,專門用于對稱FIR濾波器和LMS算法。

3.2 編程介紹

  DSP中實現(xiàn)的nLMS算法就是上面介紹的(1)~(4)式,但其中的歸一化方法需要說明。首先,考慮到數(shù)值計算的有限精度,將(4)式分母中的平方項拆開,組成兩個分式相乘。拆開后的信號能量記為POWER(y(n)),由(6)式的時間估計值進行迭代計算。

  

  以下為采用C5000匯編語言實現(xiàn)nLMS算法的基本代碼:

  STM#(TAPS-2),BRC?       ;根據(jù)橫向濾波器的長度TAPS,循環(huán)(TAPS-1)次,但是另有一次

                   在RPTBD指令后的流水線中完成。

????SSBX FRCT

????XC 2, NTC??????????????   ?。蝗绻笸V垢聻V波器系數(shù),

????????????????????????????????  則將(5)式的更迭項置零

????ST #0, n_error_mu?

????LD #0,B?

????LD n_error_mu, T?????????????? ;norm_error * mu -> T?

????RPTBD $nLMS_end-1

  MPY *n_ref_ptr+0%,A?

  LMS *filter_ptr,*ref_ptr+0%?

  ST A,*filter_ptr+

?????? || MPY *n_ref_ptr+0%,A?

???????????? ??????????????? ????? ;error (in T) * n_ref_sample->A

  LMS *filter_ptr,*ref_ptr+0%?

?????????????????????????????????? ?;A+coef<<16+round.->A

?????????????????????????????????? ?;coef*ref+B->B

  $nLMS_end:

  ST A,*filter_ptr

  || SUB *AR5,A

????    ??????????????????????? ;S0<<16-B (est.echo) -> A?

  STH A,error_out

  ABS A

  STH A,ABSE0 ???    ????????;abs value for power estimate.

  在程序的主要循環(huán)體內(nèi),每次循環(huán)只需要兩個指令周期,因此對于nLMS算法的每次系數(shù)更新需要的指令周期約為(2×TAPS)個。這里,DSP處理器的優(yōu)越性能起了決定作用。

  在實際應(yīng)用中,回聲消除器所需要的處理能力取決于回聲路徑容量,即自適應(yīng)濾波器的抽頭個數(shù),以及在穩(wěn)定情況下是否繼續(xù)更新濾波器系數(shù)。如果僅僅是在話路建立初期激活濾波器系數(shù)的迭代,而在系數(shù)收斂以后,凍結(jié)迭代過程,維持當(dāng)前系數(shù),則可以節(jié)省系統(tǒng)的處理能力,完成對更多信道的回聲消除。在表1中,對利用C5000匯編語言實現(xiàn)的nLMS算法進行了一些評估。從中可以看出,如果采用單片100MIPS的C5402,則可以并行處理11條64ms的回聲路徑。

?

?

3.3 測試結(jié)果

  按照G.168的要求,采用帶限CCS信號進行了有關(guān)的測試,并將輸入/輸出信號的功率作圖示意。均方根(RMS功率)的估計范圍是0.7s。

  (1)測試項目1A,穩(wěn)定工作時,殘余回聲電平測試(NLP暫停);

  (2)測試項目2B,收斂性能測試(NLP暫停)。

  這兩個項目可以在一次測試中完成,結(jié)果如圖4所示。這里,中間一條線是輸入信號的均方根,最下方一條線是估計誤差的均方根,最上方一條線是兩者的差值。顯然,采用帶限CCS信號,當(dāng)濾波器穩(wěn)定工作時,殘余回聲電平(最下方曲線)低于輸入信號(中間曲線)30dB以上,達到G.168的要求。

?

?

  根據(jù)G.168要求,系統(tǒng)工作1s后,殘余回聲電平低于輸入信號16dB,從圖4可見,實際結(jié)果略低于規(guī)范要求。其原因在于,所選的步長因子為0.001,取值較小,導(dǎo)致系統(tǒng)收斂時間較長。測試項目3A,近端低電平的雙講性能測試(NLP暫停)。

  如圖5所示,這里,中間一條線是輸入信號的均方根,最下方一條線(殘余回聲)是估計誤差的均方根,最上方一條線是兩者的差值。殘余回聲的功率與近端話音相當(dāng),符合規(guī)范要求。

?

?

  本文介紹了回聲消除中的LMS算法,以及在DSP上如何實現(xiàn),最后按照G.168的各項測試要求進行了性能檢測,主要指標都符合規(guī)范要求。因為IP電話系統(tǒng)發(fā)展很快,回聲消除器是該系統(tǒng)不可缺少的模塊,因此如何取得最佳的性價比是業(yè)界最為關(guān)心的。LMS不是回聲消除中的最佳算法,但是它具有算法簡便快速?DSP開銷小等優(yōu)點,并且在此基礎(chǔ)上,通過一些改進可以得到性能較好的算法。如果是應(yīng)用于局端的大容量IP電話終端,可以采用性能更高的C62xx DSP芯片。

?

參考文獻

1 德州儀器公司應(yīng)用報告 SPRA188.Implementing a Line-Echo Canceller Using the Block Update and NLMS Algorithms on the TMS320C54x DSP.1997;4ITU-T G.168.Apparatus associated with long-distance telephone circuits:Digital network echo cancellers.1997;4

3 陳尚勤. 快速自適應(yīng)信息處理. 北京:人民郵電出版社

4 覃景繁,韋崗.回波消除理論進展及其應(yīng)用.電路與系統(tǒng)學(xué)報.1998;3(3)

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。