專利名稱::一種自適應(yīng)回聲消除的方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及到移動(dòng)通信的回聲消除技術(shù),特別是涉及移動(dòng)通信終端采用改善的NLMS(歸一化最小均方)算法消除回聲。
背景技術(shù):
:回聲消除理論在二十世紀(jì)六十年代早期由貝爾實(shí)驗(yàn)室首先提出,隨后之前是實(shí)驗(yàn)室的一個(gè)部門(mén)在六十年代末推出了第一個(gè)回聲消除系統(tǒng)。到了二十世紀(jì)七十年代末,開(kāi)發(fā)了第一個(gè)商業(yè)模擬回聲消除器,它主要由數(shù)字設(shè)備組成,只不過(guò)連接網(wǎng)絡(luò)的接口是模擬的。二十世紀(jì)八十年代半導(dǎo)體技術(shù)的發(fā)展標(biāo)志著通信網(wǎng)絡(luò)從模擬向數(shù)字的轉(zhuǎn)變。人們開(kāi)發(fā)了更加復(fù)雜的數(shù)字接口的、多通道回聲消除器系統(tǒng)來(lái)解決與長(zhǎng)途數(shù)字電話系統(tǒng)相關(guān)的新的回聲問(wèn)題。具體做法是使用高速數(shù)字信號(hào)處理技術(shù)建?;芈暎姆祷芈窂街袦p去模擬回聲。它的性能遠(yuǎn)超過(guò)現(xiàn)有基于回聲抑制的技術(shù),顯著地改善了網(wǎng)絡(luò)性能。二十世紀(jì)九十年代,網(wǎng)絡(luò)運(yùn)營(yíng)商和電話公司向用戶提供了更好網(wǎng)絡(luò)性能和語(yǔ)音質(zhì)量。如今,面向二十一世紀(jì),如何更好地進(jìn)行回聲消除仍然是一個(gè)人們關(guān)心的問(wèn)題。目前用于回聲消除的自適應(yīng)算法有很多種。第一類是以LMS(LeastMeanSquare)算法為代表回聲消除算法和其他各種由此演變而來(lái)的回聲消除算法,包括NLMS算法、DNLMS(DecorrelatingNLMS)算法、PNLMS及其變型算法、仿射投影APA(AffmeProjectionAlgorithm)算法、SNLMS算法、變步長(zhǎng)LMS算法和FLMS算法等。這些算法都有一個(gè)共同的缺點(diǎn),就是其收斂速度高度依賴于輸入〗言號(hào)的功率譜密度分布。為此,人們把LMS算法和其他算法結(jié)合起來(lái),試圖消除掉LMS算法的缺點(diǎn)。這些新算法包括(1)變換域算法、子帶算法和格型算法。變換域算法(TransformDomainAdaptiveFilter,簡(jiǎn)稱TDAF)、子帶算法和格型算法都屬于正交算法,用于解決LMS算法的缺點(diǎn),它們將輸入信號(hào)分為若干個(gè)相互正交的子帶,在每個(gè)子帶內(nèi)進(jìn)行功率歸一,從而達(dá)到白化輸入信號(hào)的目的,這樣使得算法在有色信號(hào)下也能得到較快的收斂速度。(2)BLMS算法和FBLMS算法。BLMS(BlockLMS)算法與LMS算法在性能上是相同,LMS算法是逐點(diǎn)進(jìn)行的;而B(niǎo)LMS則是逐塊進(jìn)行的LMS算法。FBLMS(FastBlockLMS)算法是利用FFT來(lái)計(jì)算時(shí)域巻積的BLMS,可以大大降低計(jì)算量。FBLMS主要用于解決長(zhǎng)階自適應(yīng)濾波器帶來(lái)的大計(jì)算量等問(wèn)題。除了以LMS(LeastMeanSquare)算法為基礎(chǔ)的回聲消除算法之外,還有最小二乘RLS(RecursiveLeastSquare)算法。該算法收斂性較好,但運(yùn)算量正比于濾波器階數(shù)的平方,VoIP電話中的回聲信號(hào)有時(shí)達(dá)到幾十毫秒,甚至更多,這就要求濾波器階數(shù)達(dá)到上百,RLS算法的運(yùn)算量太大,硬件上難以實(shí)現(xiàn)?,F(xiàn)有市場(chǎng)上產(chǎn)品和專利的回聲消除方法大致可分為有以下三種:(1)增益調(diào)整。當(dāng)一方講話時(shí),將其信號(hào)傳送方向的增益提高,同時(shí)將其相反方向的增益降低,以降低回聲。但其結(jié)果是,當(dāng)雙方同時(shí)講話時(shí),只有一方的聲音能夠傳送出去,只有一方能聽(tīng)見(jiàn)對(duì)方;或是雙方的聲音斷斷續(xù)續(xù)。(2)最小二乘法(LMS,LeastMeanSquare)回聲消除。傳統(tǒng)的最小二乘法收斂慢,易發(fā)散,只能消除剩余的回聲(最大約為20db),不得不用非線性手法(NLP,NonlinearProcessing)來(lái)消除剩余的回聲。(3)采用子帶(Sub-Band)自適應(yīng)濾波(AdaptiveFilter)技術(shù)。將信號(hào)分割成多個(gè)不同的子帶(頻帶)分別進(jìn)行處理,這樣可提高收斂速度,降低發(fā)散速度,同時(shí)能改善回聲消除的能力(最大約為35db)。這樣,給非線性處理留下足夠的余地。因此,解決了回聲的問(wèn)題,同時(shí)保證的通話質(zhì)量。但是,該算法的計(jì)算復(fù)雜度較高。針對(duì)上述現(xiàn)有技術(shù)存在的問(wèn)題,需要一種穩(wěn)定性高,算法簡(jiǎn)單,及性能好的回聲消除算法。
發(fā)明內(nèi)容本發(fā)明的目的在于克服現(xiàn)有技術(shù)的缺點(diǎn),提出了一種改良的自適應(yīng)回聲消除機(jī)制和方法。為了實(shí)現(xiàn)發(fā)明目的,本發(fā)明采用的技術(shù)方案一種改良的自適應(yīng)回聲消除機(jī)制和方法,該方法包括以下步驟(1)確定進(jìn)化計(jì)算的時(shí)間精度、進(jìn)化計(jì)算的時(shí)間范圍、進(jìn)化計(jì)算的階數(shù)、以及步長(zhǎng)調(diào)節(jié)因子值;(2)定期進(jìn)化計(jì)算產(chǎn)生個(gè)體;其基本思想是隨機(jī)產(chǎn)生一批個(gè)體,在模擬環(huán)境中進(jìn)行評(píng)比篩選,保存較多的優(yōu)秀個(gè)體,然后模擬生物繁殖過(guò)程,反復(fù)從中選出一對(duì)個(gè)體作為父體和母體,產(chǎn)生出若干個(gè)新一代個(gè)體(并以一定的概率變異),以構(gòu)成一定數(shù)量的新一代,再進(jìn)行下一輪篩選,如此重復(fù),直到目標(biāo)個(gè)體的出現(xiàn)。通過(guò)這種篩選算法,可以求出最佳的個(gè)體。(3)根據(jù)個(gè)體采樣定期求出常數(shù)^結(jié)合計(jì)時(shí)機(jī)制的方式以達(dá)到了函數(shù)全局優(yōu)化的目標(biāo),同時(shí)引入了二進(jìn)制字符串,采用人工智能著名中的著名的仿生學(xué)進(jìn)化觀點(diǎn),求出了極佳的常數(shù)^。(4)求解步長(zhǎng)因子;借助步驟(3)獲取的常數(shù)^,可以通過(guò)可變的步長(zhǎng)因子通過(guò)公式,||2計(jì)算步長(zhǎng)因子。"|x(n)|(5)回聲消除;借助步驟(4)求得步長(zhǎng)因子,可以進(jìn)行權(quán)值調(diào)節(jié),以達(dá)到很好的回聲消除效果。上面所述步驟進(jìn)化計(jì)算產(chǎn)生個(gè)體通過(guò)以下方法得到(1)根據(jù)進(jìn)化計(jì)算的時(shí)間精度m和階數(shù)n,采用隨機(jī)算法產(chǎn)生n個(gè)個(gè)體(長(zhǎng)度為m的字符串);(2)n個(gè)個(gè)體之間交叉變異;交叉的具體做法是任意選取兩個(gè)字符串A和B,分別在兩個(gè)字串的某個(gè)位置k斷開(kāi),分別生成長(zhǎng)度為k和n-k的字符串A-k,A-(n-k),B-k和B-(n-k),A-k和B-(n-k)組成新的字符串,A-(n-k)和B-k組成新的字符串;變異的具體做法是任意選取一個(gè)字符串,在字符串上任意一個(gè)位置的數(shù)值進(jìn)行變換(0變成1,l變成0);(3)把步驟(2)生成的n個(gè)新個(gè)體進(jìn)行換算,根據(jù)確定的時(shí)間范圍k秒和定時(shí)器計(jì)第a個(gè)范圍的值,在時(shí)間(a-l"k-^k秒內(nèi),新個(gè)體數(shù)值換成n個(gè)取樣點(diǎn)(時(shí)間點(diǎn));(4)根據(jù)步驟(3)獲取的n個(gè)時(shí)間點(diǎn)的數(shù)值,對(duì)聲音文件進(jìn)行數(shù)據(jù)取樣,獲取n個(gè)時(shí)間點(diǎn)上的聲音數(shù)據(jù)。上面所述步驟常數(shù)3求解通過(guò)以下方法得到(1)在上述的進(jìn)化計(jì)算個(gè)體產(chǎn)生步驟結(jié)束后,可以得到聲音取樣的n個(gè)值,計(jì)算這n個(gè)值的平方的和(A);(2)計(jì)算回聲消除步驟中讀取的輸入向量的模的平方(B);(3)對(duì)值A(chǔ)和值B進(jìn)行比較,如果值A(chǔ)大于等于值B,則轉(zhuǎn)入步驟(4);否則,轉(zhuǎn)入步驟(6);(4)計(jì)算值A(chǔ)減去值B的差值k;(5)如果值k大于等于步長(zhǎng)調(diào)節(jié)因子n,則轉(zhuǎn)入步驟(7);否則,轉(zhuǎn)入步驟(6);(6)常數(shù)^賦值為B;(7)常數(shù)^賦值為A。上面所述回聲消除步驟通過(guò)以下方法得到(1)讀取相應(yīng)的聲音數(shù)據(jù);(2)根據(jù)回聲消除結(jié)構(gòu)的權(quán)值和步驟(1)讀取的聲音信號(hào),計(jì)算各個(gè)聲音信號(hào)值的加權(quán)和(濾波器的輸出聲音信號(hào)值);(3)根據(jù)步驟(1)的原始聲音信號(hào)和步驟(2)計(jì)算的聲音信號(hào),計(jì)算回聲消除的誤差值;(4)根據(jù)步驟(3)的誤差值和步驟(1)的原始聲音信號(hào),對(duì)權(quán)值進(jìn)行調(diào)節(jié);(5)進(jìn)入步驟(1)。上面所述計(jì)時(shí)機(jī)制步驟通過(guò)以下方法得到(1)根據(jù)進(jìn)化計(jì)算的時(shí)間范圍,定時(shí)器發(fā)出常數(shù)^求解的信號(hào)請(qǐng)求;(2)計(jì)時(shí)器發(fā)出時(shí)間信號(hào),為常數(shù)^求解步驟提供時(shí)間參數(shù);(3)定時(shí)器觸發(fā)常數(shù)a求解的聲音采樣步驟。本發(fā)明的技術(shù)特點(diǎn)主要體現(xiàn)如下1、它引入了人工智能中的進(jìn)化計(jì)算觀點(diǎn)。進(jìn)化計(jì)算是一種著名基于仿生學(xué)的學(xué)習(xí)方法。本文的改良的自適應(yīng)回聲消除算法的步長(zhǎng)因子值的計(jì)算就是基于這種思想?;舅枷胧请S機(jī)產(chǎn)生一批個(gè)體,在模擬環(huán)境中進(jìn)行評(píng)比篩選,保存較多的優(yōu)秀個(gè)體,然后模擬生物繁殖過(guò)程,反復(fù)從中選出一對(duì)個(gè)體作為父體和母體,產(chǎn)生出若干個(gè)新一代個(gè)體(并以一定的概率變異),以構(gòu)成一定數(shù)量的新一代,再進(jìn)行下一輪篩選,如此重復(fù),直到目標(biāo)個(gè)體的出現(xiàn)。通過(guò)這種篩選算法,可以求出最佳的步長(zhǎng)因子。2、改良的NLMS算法達(dá)到了函數(shù)全局優(yōu)化的目標(biāo)。以前的NLMS算法求出的步長(zhǎng)因子往往都不是最佳步長(zhǎng)因子。即使通過(guò)算法改良,可以求出最佳步長(zhǎng)因子。但是,求出的這種步長(zhǎng)因子也是局限于局部區(qū)域下求出的最佳步長(zhǎng)因子,不能達(dá)到函數(shù)全局優(yōu)化的目標(biāo)。本文提出的步長(zhǎng)因子求法,立足于函數(shù)全局優(yōu)化,采用時(shí)間驅(qū)動(dòng)的思想,在定期采樣的基礎(chǔ)上結(jié)合了交叉變異法(一種人工智能求隨機(jī)值的算法)的理念,達(dá)到了函數(shù)全局優(yōu)化的目標(biāo)。3、它解決了NLMS算法中如何確定常數(shù)^值的問(wèn)題。以往的NLMS算法對(duì)LMS算法的改進(jìn)地方在于用可變的步長(zhǎng)因子代替了LMS算法的固定步長(zhǎng)因子??勺兊牟介L(zhǎng)因子通過(guò)公式^+lx(n)lf計(jì)算。但是,并沒(méi)有給出求解該公式中常數(shù)^的方法。本文提出的自適應(yīng)回聲消除機(jī)制和方法,給出了該公式中常數(shù)^的求解方法。除了結(jié)合時(shí)間驅(qū)動(dòng)的方式以達(dá)到了函數(shù)全局優(yōu)化的目標(biāo),我們還創(chuàng)造性地引入了二進(jìn)制字符串,采用人工智能著名中的著名的仿生學(xué)進(jìn)化觀點(diǎn),求出了極佳的常數(shù)^。圖1描述了本發(fā)明自適應(yīng)的NLMS回聲消除方法的基本步驟;圖2描述了自適應(yīng)的NLMS回聲消除算法的核心步驟;圖3描述了進(jìn)化計(jì)算產(chǎn)生個(gè)體的步驟;圖4描述了常數(shù)^求解步驟;圖5是回聲消除器的結(jié)構(gòu)圖;圖6描述了回聲消除步驟;圖7描述了計(jì)時(shí)運(yùn)作步驟;圖8NLMS算法的啟動(dòng)階段;圖9NLMS算法的運(yùn)行階段。具體實(shí)施方式下面結(jié)合附圖對(duì)本發(fā)明做進(jìn)一步的說(shuō)明。自適應(yīng)回聲消除方法的基本步驟具體如圖1所示。圖1中,實(shí)線表示數(shù)據(jù)流,虛線表示控制流。在自適應(yīng)回聲消除方法的基本步驟中,首先確定進(jìn)化計(jì)算的時(shí)間精度、時(shí)間范圍和階數(shù),以及步長(zhǎng)調(diào)節(jié)因子值;接著,定時(shí)器負(fù)責(zé)定期求出常數(shù)^根據(jù)常數(shù)^,可以求解步長(zhǎng)因子的值;最后,根據(jù)步長(zhǎng)因子,根據(jù)NLMS算法的回聲消除公式,可以有效地進(jìn)行回聲消除。實(shí)施適應(yīng)的NLMS回聲消除方法運(yùn)行的核心步驟如圖2所示,借助計(jì)時(shí)器產(chǎn)生的時(shí)鐘信號(hào),本發(fā)明定期進(jìn)化計(jì)算產(chǎn)生個(gè)體;緊接著,求解常數(shù)5;最后,根據(jù)常數(shù)^的數(shù)值,進(jìn)行NLMS算法的回聲消除。通過(guò)進(jìn)行計(jì)算產(chǎn)生個(gè)體的步驟大致分為4個(gè)步驟(具體如圖3所示)(1)根據(jù)進(jìn)化計(jì)算的時(shí)間精度m和階數(shù)n,采用隨機(jī)算法產(chǎn)生n個(gè)個(gè)體(長(zhǎng)度為m的字符串);(2)n個(gè)個(gè)體之間交叉變異;交叉的具體做法是任意選取兩個(gè)字符串A和B,分別在兩個(gè)字串的某個(gè)位置k斷開(kāi),分別生成長(zhǎng)度為k和n-k的字符串A-k,A-(n-k),B-k和B-(n-k),A-k和B-(n-k)組成新的字符串,A-(n-k)和B-k組成新的字符串;變異的具體做法是任意選取一個(gè)字符串,在字符串上任意一個(gè)位置的數(shù)值進(jìn)行變換(0變成1,l變成0);(3)把步驟(2)生成的n個(gè)新個(gè)體進(jìn)行換算,根據(jù)確定的時(shí)間范圍k秒和定時(shí)器計(jì)第a個(gè)范圍的值,在時(shí)間(a-l^k-^k秒內(nèi),新個(gè)體數(shù)值換成n個(gè)取樣點(diǎn)(時(shí)間點(diǎn));(4)根據(jù)步驟(3)獲取的n個(gè)時(shí)間點(diǎn)的數(shù)值,對(duì)聲音文件進(jìn)行數(shù)據(jù)取樣,獲取n個(gè)時(shí)間點(diǎn)上的聲音數(shù)據(jù)。借助進(jìn)化計(jì)算求解常數(shù)^的步驟大致分為4個(gè)步驟(具體如圖4所示)(1)在上述的進(jìn)化計(jì)算個(gè)體產(chǎn)生步驟結(jié)束后,可以得到聲音取樣的n個(gè)值,計(jì)算這n個(gè)值的平方的和(A);(2)計(jì)算回聲消除步驟中讀取的輸入向量的模的平方(B);(3)對(duì)值A(chǔ)和值B進(jìn)行比較,如果值A(chǔ)大于等于值B,則轉(zhuǎn)入步驟(4);否則,轉(zhuǎn)入步驟(6);(4)計(jì)算值A(chǔ)減去值B的差值k;(5)如果值k大于等于步長(zhǎng)調(diào)節(jié)因子n,則轉(zhuǎn)入步驟(7);否則,轉(zhuǎn)入步驟(6);(6)常數(shù)^賦值為B;(7)常數(shù)^賦值為A。在闡述回聲消除步驟前,先說(shuō)明一下回聲消除器的結(jié)構(gòu)。回聲消除器采用自適應(yīng)FIR濾波器結(jié)構(gòu)。它是橫向?yàn)V波器,也稱抽頭延遲線濾波器,它利用正規(guī)直接形式實(shí)現(xiàn)全零點(diǎn)傳輸函數(shù),而不采用反饋環(huán)節(jié)?;芈曄惴ǖ慕Y(jié)構(gòu)如圖5所示。FIR濾波器中的抽頭的個(gè)數(shù)確定了脈沖響應(yīng)的有限持續(xù)時(shí)間。抽頭的個(gè)數(shù)(如圖5中N所示),稱為濾波器的階數(shù)。在該圖中,每個(gè)抽頭用單位延遲算子z-l表示。特別地,當(dāng)對(duì)x(k)進(jìn)行z-l運(yùn)算時(shí),其結(jié)果輸出為x(k-l)。濾波器中每個(gè)乘法器的作用是用濾波器系數(shù),也稱為抽頭權(quán)值(tapweight),乘以與其相連接的抽頭輸入。于是,連到第i個(gè)抽頭的輸入x(k-i)的乘法器產(chǎn)生w^x(k-i)的輸出,其中wi是抽頭權(quán)值,i=0,1,…,N,濾波器中加法器的合并作用是對(duì)各個(gè)乘法器輸出求和,并產(chǎn)生濾波器輸出?;芈曄襟E大致分為以下4個(gè)步驟(具體見(jiàn)圖6所示)(1)讀取相應(yīng)的聲音數(shù)據(jù);(2)根據(jù)回聲消除結(jié)構(gòu)的權(quán)值和步驟(1)讀取的聲音信號(hào),計(jì)算各個(gè)聲音信號(hào)值的加權(quán)和(濾波器的輸出聲音信號(hào)值);(3)根據(jù)步驟(1)的原始聲音信號(hào)和步驟(2)計(jì)算的聲音信號(hào),計(jì)算回聲消除的誤差值;(4)根據(jù)步驟(3)的誤差值和步驟(1)的原始聲音信號(hào),對(duì)權(quán)值進(jìn)行調(diào)節(jié);(5)進(jìn)入步驟(1)。計(jì)時(shí)流程是由通過(guò)計(jì)時(shí)器的時(shí)鐘信號(hào)驅(qū)動(dòng)而完成的,計(jì)時(shí)流程可以分為以下3個(gè)步驟(具體如圖7所示)(1)根據(jù)進(jìn)化計(jì)算的時(shí)間范圍,定時(shí)器發(fā)出常數(shù)^求解的信號(hào)請(qǐng)求;(2)計(jì)時(shí)器發(fā)出時(shí)間信號(hào),為常數(shù)a求解步驟提供時(shí)間參數(shù);(3)定時(shí)器觸發(fā)常數(shù)^求解的聲音采樣步驟。下面,描述整個(gè)自適應(yīng)的NLMS算法過(guò)程包括啟動(dòng)階段和運(yùn)行階段兩個(gè)過(guò)程。附圖8和附圖9共同說(shuō)明這個(gè)實(shí)施例。圖8描述了本發(fā)明方法的啟動(dòng)階段;圖9描述了本發(fā)明方法的運(yùn)行階段。自適應(yīng)NLMS算法的啟動(dòng)階段如圖8所示,具體步驟可以分為(1)確定進(jìn)化計(jì)算的時(shí)間精度m、進(jìn)化計(jì)算的時(shí)間范圍k秒、進(jìn)化計(jì)算的階數(shù)n,以及步長(zhǎng)調(diào)節(jié)因子值u—n。這些參數(shù)均存入寄存器中。(2)定時(shí)器從寄存器讀取時(shí)間范圍的數(shù)值k秒(用于控制常數(shù)^的產(chǎn)生)。(3)進(jìn)化計(jì)算個(gè)體產(chǎn)生步驟從寄存器讀取進(jìn)化計(jì)算的時(shí)間精度m和階數(shù)n,同時(shí)也從定時(shí)器讀取時(shí)間信號(hào),產(chǎn)生n個(gè)長(zhǎng)度為m的二進(jìn)制字符串;n個(gè)二進(jìn)制字符串進(jìn)行交叉變異,換算為n個(gè)小于l的正整數(shù)。(4)根據(jù)來(lái)自寄存器讀取得聲音樣本取樣范圍,并對(duì)原始聲音信號(hào)進(jìn)行取樣,獲取n個(gè)聲音信號(hào)數(shù)值。(5)計(jì)算n個(gè)聲音信號(hào)數(shù)值的平方的和nA,從回聲消除步驟中讀取輸入向量的模的平方n—B,通過(guò)判斷n—A和n—B之間的大小關(guān)系求得常數(shù)^。(6)基于常數(shù)^求解步長(zhǎng)因子。(7)基于步長(zhǎng)因子進(jìn)行回聲消除?;芈曄惴ǖ木唧w流程是(1)根據(jù)原始聲音信號(hào)和權(quán)值,計(jì)算濾波器的輸出聲音信號(hào)值;(2)根據(jù)濾波器讀取原始聲音信號(hào)和期望輸出的聲音信號(hào)值之間的查值,進(jìn)行誤差估計(jì);(3)根據(jù)誤差估計(jì)以及常數(shù)入進(jìn)行濾波器權(quán)值矢量更新;(4)進(jìn)入步驟(1)。詳見(jiàn)圖5、圖6和表1。表1自適應(yīng)的NLMS算法<table>tableseeoriginaldocumentpage15</column></row><table>自適應(yīng)NLMS算法的啟動(dòng)階段如圖9所示,具體步驟分為(1)在時(shí)間信號(hào)(周期性產(chǎn)生的一個(gè)時(shí)間信號(hào))驅(qū)動(dòng)下,定時(shí)器啟動(dòng)了進(jìn)化計(jì)算個(gè)體產(chǎn)生步驟。(2)進(jìn)化計(jì)算個(gè)體產(chǎn)生步驟讀取了定時(shí)器的時(shí)間信號(hào)和寄存器的進(jìn)化計(jì)算的時(shí)間精度m和階數(shù)n,產(chǎn)生n個(gè)長(zhǎng)度為m的二進(jìn)制字符串;n個(gè)二進(jìn)制字符串進(jìn)行交叉變異,換算為n個(gè)小于1的正整數(shù)。(3)根據(jù)來(lái)自寄存器讀取得聲音樣本取樣范圍,并對(duì)原始聲音信號(hào)進(jìn)行取樣,獲取n個(gè)聲音信號(hào)數(shù)值。(4)計(jì)算n個(gè)聲音信號(hào)數(shù)值的平方的和n—A,從回聲消除步驟中讀取輸入向量的模的平方n—B,通過(guò)判斷n—A和n_B之間的大小關(guān)系求得常數(shù)^。(5)基于常數(shù)^求解步長(zhǎng)因子。(6)基于步長(zhǎng)因子進(jìn)行回聲消除?;芈曄惴ǖ木唧w過(guò)程是(1)根據(jù)原始聲音信號(hào)和權(quán)值,計(jì)算濾波器的輸出聲音信號(hào)值;(2)根據(jù)濾波器讀取原始聲音信號(hào)和期望輸出的聲音信號(hào)值之間的査值,進(jìn)行誤差估計(jì);(3)根據(jù)誤差估計(jì)以及常數(shù)入進(jìn)行濾波器權(quán)值矢量更新;(4)進(jìn)入步驟(1)。詳見(jiàn)圖5、圖6和表1。總之,本發(fā)明適用于需要進(jìn)行回聲消除的移動(dòng)通信終端,可以在算法簡(jiǎn)單性和穩(wěn)定性的前提下,保證回聲消除的效果。權(quán)利要求1.一種自適應(yīng)回聲消除的方法,其特征在于,該方法包括以下步驟(1)確定進(jìn)化計(jì)算的時(shí)間精度、進(jìn)化計(jì)算的時(shí)間范圍、進(jìn)化計(jì)算的階數(shù)、以及步長(zhǎng)調(diào)節(jié)因子值;(2)定期進(jìn)化計(jì)算產(chǎn)生個(gè)體;其基本思想是隨機(jī)產(chǎn)生一批個(gè)體,在模擬環(huán)境中進(jìn)行評(píng)比篩選,保存較多的優(yōu)秀個(gè)體,然后模擬生物繁殖過(guò)程,反復(fù)從中選出一對(duì)個(gè)體作為父體和母體,產(chǎn)生出若干個(gè)新一代個(gè)體(并以一定的概率變異),以構(gòu)成一定數(shù)量的新一代,再進(jìn)行下一輪篩選,如此重復(fù),直到目標(biāo)個(gè)體的出現(xiàn),通過(guò)這種篩選算法,可以求出最佳的個(gè)體;(3)根據(jù)個(gè)體采樣定期求出常數(shù)δ;結(jié)合時(shí)間驅(qū)動(dòng)的方式以達(dá)到了函數(shù)全局優(yōu)化的目標(biāo),同時(shí)引入了二進(jìn)制字符串,采用人工智能著名中的著名的仿生學(xué)進(jìn)化觀點(diǎn),求出了極佳的常數(shù)δ;(4)求解步長(zhǎng)因子;借助步驟(3)獲取的常數(shù)δ,可以通過(guò)可變的步長(zhǎng)因子通過(guò)公式id="icf0001"file="S2008100277945C00011.gif"wi="18"he="10"top="185"left="80"img-content="drawing"img-format="tif"orientation="portrait"inline="no"/>計(jì)算步長(zhǎng)因子;(5)回聲消除;借助步驟(4)求得步長(zhǎng)因子,可以進(jìn)行權(quán)值調(diào)節(jié),以達(dá)到很好的回聲消除效果;其中,A.定期進(jìn)化計(jì)算產(chǎn)生個(gè)體,包括以下四個(gè)步驟(a)根據(jù)進(jìn)化計(jì)算的時(shí)間精度m和階數(shù)n,采用隨機(jī)算法產(chǎn)生n個(gè)個(gè)體(長(zhǎng)度為m的字符串);(b)n個(gè)個(gè)體之間交叉變異;交叉的具體做法是任意選取兩個(gè)字符串A和B,分別在兩個(gè)字串的某個(gè)位置k斷開(kāi),分別生成長(zhǎng)度為k和n-k的字符串A-k,A-(n-k),B-k和B-(n-k),A-k和B-(n-k)組成新的字符串,A-(n-k)和B-k組成新的字符串;變異的具體做法是任意選取一個(gè)字符串,在字符串上任意一個(gè)位置的數(shù)值進(jìn)行變換(0變成1,1變成0);(c)把步驟(b)生成的n個(gè)新個(gè)體進(jìn)行換算,根據(jù)確定的時(shí)間范圍k秒和定時(shí)器計(jì)第a個(gè)范圍的值,在時(shí)間(a-1)*k-a*k秒內(nèi),新個(gè)體數(shù)值換成n個(gè)取樣點(diǎn)(時(shí)間點(diǎn));(d)根據(jù)步驟(c)獲取的n個(gè)時(shí)間點(diǎn)的數(shù)值,對(duì)聲音文件進(jìn)行數(shù)據(jù)取樣,獲取n個(gè)時(shí)間點(diǎn)上的聲音數(shù)據(jù);B.根據(jù)個(gè)體采樣定期求出常數(shù)δ,包括以下7個(gè)步驟(a)在上述的進(jìn)化計(jì)算個(gè)體產(chǎn)生步驟結(jié)束后,可以得到聲音取樣的n個(gè)值,計(jì)算這n個(gè)值的平方的和(A);(b)計(jì)算回聲消除步驟中讀取的輸入向量的模的平方(B);(c)對(duì)值A(chǔ)和值B進(jìn)行比較,如果值A(chǔ)大于等于值B,則轉(zhuǎn)入步驟(d);否則,轉(zhuǎn)入步驟(f);(d)計(jì)算值A(chǔ)減去值B的差值k;(e)如果值k大于等于步長(zhǎng)調(diào)節(jié)因子n,則轉(zhuǎn)入步驟(g);否則,轉(zhuǎn)入步驟(f);(f)常數(shù)δ賦值為B;(g)常數(shù)δ賦值為A;C.回聲消除,包括以下5個(gè)步驟(a)讀取相應(yīng)的聲音數(shù)據(jù);(b)根據(jù)回聲消除結(jié)構(gòu)的權(quán)值和步驟(a)讀取的聲音信號(hào),計(jì)算各個(gè)聲音信號(hào)值的加權(quán)和(濾波器的輸出聲音信號(hào)值);(c)根據(jù)步驟(a)的原始聲音信號(hào)和步驟(b)計(jì)算的聲音信號(hào),計(jì)算回聲消除的誤差值;(d)根據(jù)步驟(c)的誤差值和步驟(a)的原始聲音信號(hào),對(duì)權(quán)值進(jìn)行調(diào)節(jié);(e)進(jìn)入步驟(a)。2、根據(jù)權(quán)利要求l所述的一種自適應(yīng)回聲消除的方法,其特征在于有一個(gè)良好的計(jì)時(shí)機(jī)制,該計(jì)時(shí)機(jī)制包括以下步驟(1)根據(jù)進(jìn)化計(jì)算的時(shí)間范圍,定時(shí)器發(fā)出常數(shù)^求解的信號(hào)請(qǐng)全文摘要本發(fā)明公開(kāi)了一種自適應(yīng)回聲消除的方法,該方法引入了人工智能中的進(jìn)化計(jì)算觀點(diǎn),同時(shí)利用交叉變異法以及函數(shù)全局優(yōu)化的理念,并結(jié)合了時(shí)間驅(qū)動(dòng)的思想,有效地解決了常規(guī)NLMS算法的參數(shù)不能確定常數(shù)δ值的問(wèn)題,從而改善回聲消除算法NLMS的性能。文檔編號(hào)H04B3/21GK101272161SQ20081002779公開(kāi)日2008年9月24日申請(qǐng)日期2008年4月30日優(yōu)先權(quán)日2008年4月30日發(fā)明者寧劉,羅笑南,鄭彥樹(shù),高成英申請(qǐng)人:中山大學(xué)