午夜毛片免费看,老师老少妇黄色网站,久久本道综合久久伊人,伊人黄片子

回聲抵消方法和裝置的制作方法

文檔序號:7638239閱讀:426來源:國知局
專利名稱:回聲抵消方法和裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及語音通信系統(tǒng)中回聲抵消的方法和裝置。此外,本發(fā)明涉及存儲用于回聲抵消程序的記錄介質(zhì)。
在兩個相對側(cè)之間的典型語音通信系統(tǒng)中,每側(cè)都有擴音器和話筒。如果擴音器產(chǎn)生的聲音進入話筒并且被增強,則導(dǎo)致回聲。
為語音通信系統(tǒng)配備聲學(xué)回聲抵消器是已知的。普通的聲學(xué)回聲抵消器由自適應(yīng)濾波器構(gòu)成。自適應(yīng)濾波器可以使回聲抵消器跟隨影響回波生成的條件而變化。普通回波抵消器在回波生成條件下跟隨變化的速度較低。
本發(fā)明的第一個目標(biāo)是提供一種改進的回聲抵消方法。
本發(fā)明的第二個目標(biāo)是提供一種改進的回聲抵消裝置。
本發(fā)明的第三個目標(biāo)是提供一種存儲用于回聲抵消的改進程序的記錄介質(zhì)。
本發(fā)明的第一方面是提供一種回聲抵消方法。該方法包括以下步驟利用內(nèi)部系數(shù)更新自適應(yīng)濾波器的系數(shù)以響應(yīng)遠端信號和誤差信號,自適應(yīng)濾波器和內(nèi)部系數(shù)具有抽頭(tap)長度;提供自適應(yīng)濾波器以響應(yīng)遠端信號產(chǎn)生第一偽回聲信號;提供主濾波器以響應(yīng)遠端信號產(chǎn)生第二偽回聲信號;判斷更新步驟中的自適應(yīng)濾波器系數(shù)和內(nèi)部系數(shù)是否應(yīng)該初始化;如果判斷更新步驟中的自適應(yīng)濾波器系數(shù)和內(nèi)部系數(shù)應(yīng)該初始化,則將自適應(yīng)濾波器的抽頭長度和更新步長設(shè)定為小于原始值的非原始值,并且在更新步驟內(nèi)執(zhí)行自適應(yīng)濾波器系數(shù)和內(nèi)部系數(shù)的初始化;判斷自適應(yīng)濾波器的系數(shù)是否應(yīng)該傳送至主濾波器;如果判斷自適應(yīng)濾波器的系數(shù)應(yīng)該傳送至主濾波器,則將自適應(yīng)濾波器的系數(shù)傳送至主濾波器;以及如果是在自適應(yīng)濾波器的抽頭長度和更新步長設(shè)定為非原始值之后執(zhí)行自適應(yīng)濾波器的系數(shù)至主濾波器的傳送,則將自適應(yīng)濾波器的抽頭長度和更新步長設(shè)定為原始值,并且隨后在更新步驟中執(zhí)行自適應(yīng)濾波器系數(shù)和內(nèi)部系數(shù)的初始化。
本發(fā)明的第二方面基于第一方面,并且提供的方法進一步包括以下步驟將遠端信號分割為子帶信號;將回聲信號分割為子帶信號;響應(yīng)遠端信號的子帶信號產(chǎn)生第二子帶偽回聲信號;產(chǎn)生對應(yīng)回聲信號的子帶信號與第二子帶偽回聲信號之間差異的子帶誤差信號;以及將子帶誤差信號組合成全帶誤差信號;其中對每個子帶信號施行回聲抵消。
本發(fā)明的第三方面基于第一方面,并且提供的方法進一步包括以下步驟如果在將自適應(yīng)濾波器的抽頭長度和更新步長設(shè)定為非原始值之后預(yù)定時間內(nèi)未執(zhí)行自適應(yīng)濾波器系數(shù)傳送至主濾波器,則使自適應(yīng)濾波器的抽頭長度和更新步長返回原始值。
本發(fā)明的第四方面提供了一種初始化回聲抵消器中系數(shù)的方法。該方法包括以下步驟對于每個樣本計算回聲信號與主濾波器產(chǎn)生的誤差信號之間功率的ERLE(回聲返回損失增強)比率;計算當(dāng)前樣本與緊靠其前樣本的ERLE比率之差;以及如果計算的差值大于預(yù)定閾值,則初始化更新自適應(yīng)濾波器系數(shù)中所用的自適應(yīng)濾波器系數(shù)和內(nèi)部系數(shù)。
本發(fā)明的第五方面提供了一種初始化回聲抵消器中系數(shù)的方法。該方法包括以下步驟對于每個樣本計算回聲信號與主濾波器產(chǎn)生的誤差信號之間功率的ERLE(回聲返回損失增強)比率;以及如果計算的連續(xù)多個樣本的ERLE比率繼續(xù)跌落,則初始化更新自適應(yīng)濾波器系數(shù)中所用的自適應(yīng)濾波器系數(shù)和內(nèi)部系數(shù)。
本發(fā)明的第六方面基于第一方面,并且提供一種方法,其中執(zhí)行初始化的步驟包括以下步驟對于每個樣本計算回聲信號與主濾波器產(chǎn)生的誤差信號之間功率的ERLE(回聲返回損失增強)比率;計算當(dāng)前樣本與緊靠其前樣本的ERLE比率之差;以及如果計算的差值大于預(yù)定閾值,則初始化更新步驟中所用的自適應(yīng)濾波器系數(shù)和內(nèi)部系數(shù)。
本發(fā)明的第七方面基于第一方面,并且提供了一種方法,其中初始化步驟包括以下步驟對于每個樣本計算回聲信號與主濾波器產(chǎn)生的誤差信號之間功率的ERLE(回聲返回損失增強)比率;以及如果計算的連續(xù)多個樣本的ERLE比率繼續(xù)跌落,則初始化更新步驟中所用的自適應(yīng)濾波器系數(shù)和內(nèi)部系數(shù)。
本發(fā)明的第八方面基于第一方面,并且提供一種方法,其中更新步驟采用最小平方法的系數(shù)更新算法。
本發(fā)明的第九方面是提供一種回聲抵消裝置。該裝置包括利用內(nèi)部系數(shù)更新自適應(yīng)濾波器的系數(shù)以響應(yīng)遠端信號和誤差信號的裝置,自適應(yīng)濾波器和內(nèi)部系數(shù)具有抽頭長度;提供自適應(yīng)濾波器以響應(yīng)遠端信號產(chǎn)生第一偽回聲信號的裝置;提供主濾波器以響應(yīng)遠端信號產(chǎn)生第二偽回聲信號的裝置;判斷更新方法中的自適應(yīng)濾波器系數(shù)和內(nèi)部系數(shù)是否應(yīng)該初始化的裝置;如果判斷更新方法中的自適應(yīng)濾波器系數(shù)和內(nèi)部系數(shù)應(yīng)該初始化,則將自適應(yīng)濾波器的抽頭長度和更新步長設(shè)定為小于原始值的非原始值,并且在更新方法內(nèi)執(zhí)行自適應(yīng)濾波器系數(shù)和內(nèi)部系數(shù)的初始化的裝置;判斷自適應(yīng)濾波器的系數(shù)是否應(yīng)該傳送至主濾波器的裝置;如果判斷自適應(yīng)濾波器的系數(shù)應(yīng)該傳送至主濾波器,則將自適應(yīng)濾波器的系數(shù)傳送至主濾波器的裝置;以及如果是在自適應(yīng)濾波器的抽頭長度和更新步長設(shè)定為非原始值之后執(zhí)行自適應(yīng)濾波器的系數(shù)至主濾波器的傳送,則將自適應(yīng)濾波器的抽頭長度和更新步長設(shè)定為原始值,并且隨后在更新步驟中執(zhí)行自適應(yīng)濾波器系數(shù)和內(nèi)部系數(shù)的初始化的裝置。
本發(fā)明的第十方面基于第九方面,并且提供的裝置進一步包括將遠端信號分割為子帶信號的裝置;將回聲信號分割為子帶信號的裝置;響應(yīng)遠端信號的子帶信號產(chǎn)生第二子帶偽回聲信號的裝置;產(chǎn)生對應(yīng)回聲信號的子帶信號與第二子帶偽回聲信號之間差異的子帶誤差信號的裝置;以及將子帶誤差信號組合成全帶誤差信號的裝置;其中對每個子帶信號施行回聲抵消。
本發(fā)明的第十一方面基于第九方面,并且提供的裝置進一步包括如果在將自適應(yīng)濾波器的抽頭長度和更新步長設(shè)定為非原始值之后預(yù)定時間內(nèi)未執(zhí)行自適應(yīng)濾波器系數(shù)傳送至主濾波器,則使自適應(yīng)濾波器的抽頭長度和更新步長返回原始值的裝置。
本發(fā)明的第十二方面提供了一種初始化回聲抵消器中系數(shù)的裝置。該裝置包括對于每個樣本計算回聲信號與主濾波器產(chǎn)生的誤差信號之間功率的ERLE(回聲返回損失增強)比率的裝置;計算當(dāng)前樣本與緊靠其前樣本的ERLE比率之差的裝置;以及如果計算的差值大于預(yù)定閾值,則初始化更新自適應(yīng)濾波器系數(shù)中所用的自適應(yīng)濾波器系數(shù)和內(nèi)部系數(shù)的裝置。
本發(fā)明的第十三方面提供了一種初始化回聲抵消器中系數(shù)的裝置。該裝置包括對于每個樣本計算回聲信號與主濾波器產(chǎn)生的誤差信號之間功率的ERLE(回聲返回損失增強)比率的裝置;以及如果計算的連續(xù)多個樣本的ERLE比率繼續(xù)跌落,則初始化更新自適應(yīng)濾波器系數(shù)中所用的自適應(yīng)濾波器系數(shù)和內(nèi)部系數(shù)的裝置。
本發(fā)明的第十四方面基于第九方面,并且提供一種裝置,其中執(zhí)行初始化的裝置包括對于每個樣本計算回聲信號與主濾波器產(chǎn)生的誤差信號之間功率的ERLE(回聲返回損失增強)比率的裝置;計算當(dāng)前樣本與緊靠其前樣本的ERLE比率之差的裝置;以及如果計算的差值大于預(yù)定閾值,則初始化更新方法中所用的自適應(yīng)濾波器系數(shù)和內(nèi)部系數(shù)的裝置。
本發(fā)明的第十五方面基于第九方面,并且提供了一種裝置,其中初始化裝置包括對于每個樣本計算回聲信號與主濾波器產(chǎn)生的誤差信號之間功率的ERLE(回聲返回損失增強)比率的裝置;以及如果計算的連續(xù)多個樣本的ERLE比率繼續(xù)跌落,則初始化更新方法中所用的自適應(yīng)濾波器系數(shù)和內(nèi)部系數(shù)的裝置。
本發(fā)明的第十六方面基于第九方面,并且提供一種裝置,其中更新裝置采用最小平方法的系數(shù)更新算法。
本發(fā)明的第十七方面提供一種記錄介質(zhì),存儲了實現(xiàn)本發(fā)明第一~第八方面的方法的程序。


圖1為現(xiàn)有技術(shù)回聲抵消器的示意圖。
圖2為按照本發(fā)明第一實施例的回聲抵消器的框圖。
圖3為圖2中回聲抵消器的操作流程圖。
圖4為用于圖2內(nèi)DSP的控制程序段的流程圖。
圖5為按照本發(fā)明第二實施例的回聲抵消器的框圖。
圖6為圖5中回聲抵消器的操作流程圖。
圖7為用于圖5內(nèi)DSP的控制程序段的流程圖。
圖8為圖7內(nèi)方框的流程圖。
圖9為按照本發(fā)明第三實施例的回聲抵消器的框圖。
圖10為圖9中回聲抵消器的操作流程圖。
圖11為用于圖9內(nèi)DSP的控制程序段的流程圖。
圖12為按照本發(fā)明第四實施例的回聲抵消器的框圖。
圖13為圖12中回聲抵消器的操作流程圖。
圖14為用于圖12內(nèi)DSP的控制程序段的流程圖。
圖15為按照本發(fā)明第五實施例的回聲抵消器的框圖。
圖16為圖15中回聲抵消器的操作流程圖。
圖17為用于圖15內(nèi)DSP的控制程序段的流程圖。
為了更好地理解本發(fā)明,以下描述現(xiàn)有技術(shù)的回聲抵消器。
圖1示出了語音通信系統(tǒng)中現(xiàn)有技術(shù)的回聲抵消器。語音通信系統(tǒng)將近端側(cè)與遠端側(cè)相連。近端側(cè)有位于聲學(xué)空間內(nèi)的擴音器SS和話筒MM。擴音器SS接收遠端信號x(n)。擴音器SS將遠端信號x(n)轉(zhuǎn)換為相應(yīng)的聲音。話筒MM產(chǎn)生近端信號。當(dāng)擴音器SS產(chǎn)生的聲音部分沿回聲路徑送至話筒MM并且被采集時,產(chǎn)生的近端信號包含回聲信號d(n)。圖1的現(xiàn)有技術(shù)回聲抵消器是前臺/后臺型(FG/BG型)的。
圖1內(nèi)的現(xiàn)有技術(shù)回聲抵消器包括更新部分1101、自適應(yīng)濾波器1102、主濾波器1103和判斷部分1104。自適應(yīng)濾波器1102構(gòu)成后臺濾波器,其工作特性由系數(shù)(抽頭系數(shù))確定。部分1101更新自適應(yīng)濾波器1102的系數(shù)以響應(yīng)誤差信號e1(n)和遠端信號x(n)。更新部分1101和自適應(yīng)濾波器1102協(xié)同識別或估計回聲路徑,并且產(chǎn)生第一偽回聲信號y1(n)以響應(yīng)遠端信號x(n)和誤差信號e1(n)。誤差信號e1(n)是回聲信號d(n)與第一偽回聲信號y1(n)的差值。
主濾波器1103構(gòu)成前臺濾波器,其工作特性由系數(shù)(抽頭系數(shù))確定。主濾波器1103產(chǎn)生第二偽回聲信號y2(n)以響應(yīng)遠端信號x(n)。第二偽回聲信號y2(n)設(shè)計為抵消返回遠端側(cè)的回聲信號d(n)。部分1104判斷預(yù)定條件是否滿足。預(yù)定條件是誤差信號e1(n)是否小于回聲信號d(n)某一水平以上和誤差信號e1(n)是否小于誤差信號e2(n),它是回聲信號d(n)與第二偽回聲信號y2(n)之差。如果部分1104判斷預(yù)定條件滿足,則部分1104將系數(shù)從自適應(yīng)濾波器1102傳送至主濾波器1103。因此,在這種情況下,主濾波器1103根據(jù)新傳送的系數(shù)產(chǎn)生第二偽回聲信號y2(n)。作為回聲信號d(n)與第二偽回聲信號y2(n)之差的誤差信號e2(n)被送至遠端側(cè)。另一方面,如果部分1104判斷不滿足預(yù)定條件,則部分1104不執(zhí)行系數(shù)從自適應(yīng)濾波器1102至主濾波器1103的傳送。
當(dāng)移動話筒MM和擴音器SS中至少一個從而改變回聲路徑時,自動啟動自適應(yīng)濾波器1102內(nèi)反復(fù)更新系數(shù)的過程。如果在反復(fù)更新過程中采用FRLS算法,則自適應(yīng)濾波器1102內(nèi)系數(shù)收斂至可接收值需要給定次數(shù)的重復(fù)系數(shù)更新步驟,它等于抽頭長度(回聲抵消時間)乘以3。例如,如果采樣頻率為16kHz并且抽頭長度等于4000次抽頭,因此回波取消時間較為250毫秒,需要花費750毫秒的時間使系數(shù)收斂至可接收的數(shù)值。
第一實施例圖2示出了按照本發(fā)明第一實施例的語音通信系統(tǒng)內(nèi)的回聲抵消器。語音通信系統(tǒng)將近端側(cè)與遠端側(cè)相連。近端側(cè)有位于聲學(xué)空間內(nèi)的擴音器S和話筒M。具有樣本序列的數(shù)字遠端信號x(n)發(fā)送至數(shù)字信號處理器(DSP)20和數(shù)字-模擬(D/A)轉(zhuǎn)換器22。這里“n”表示當(dāng)前樣本。D/A轉(zhuǎn)換器22將數(shù)字遠端信號x(n)轉(zhuǎn)換為相應(yīng)的模擬信號。D/A轉(zhuǎn)換器22向擴音器S輸出模擬信號。擴音器S將D/A轉(zhuǎn)換器22的輸出信號轉(zhuǎn)換為相應(yīng)的聲音。話筒M產(chǎn)生模擬的近端信號。當(dāng)擴音器S產(chǎn)生的聲音部分沿回聲路徑送至話筒M并且被采集時,模擬的近端信號包含回聲信號。話筒M向模擬一數(shù)字(A/D)轉(zhuǎn)換器24輸出模擬的近端信號。A/D轉(zhuǎn)換器24將模擬的近端信號轉(zhuǎn)換為相應(yīng)的數(shù)字信號。A/D轉(zhuǎn)換器24向DSP20輸出數(shù)字信號。當(dāng)擴音器S產(chǎn)生的聲音部分沿回聲路徑送至話筒M并且被采集時,A/D轉(zhuǎn)換器24的輸出信號包含數(shù)字回聲信號d(n)。數(shù)字回聲信號d(n)包含樣本序列。
DSP20包括輸入/輸出端口的組合、處理部分、ROM和RAM。DSP20按照存儲在ROM內(nèi)的控制程序工作。按照控制程序,DSP20構(gòu)成將回聲分量從A/D轉(zhuǎn)換器24輸出信號中去除的回聲抵消器。DSP20產(chǎn)生數(shù)字無回聲信號作為數(shù)字誤差信號e2(n)。DSP20輸出向遠端側(cè)發(fā)送的數(shù)字誤差信號e2(n)。
圖3示出的更象是DSP20的操作流程圖而非DSP硬件細節(jié)。參見圖3,DSP編程為構(gòu)成更新部分101、數(shù)字自適應(yīng)濾波器102、數(shù)字主濾波器103、判斷部分104、控制部分105和減法器107和109。
自適應(yīng)濾波器102構(gòu)成后臺濾波器,其工作特性由系數(shù)(抽頭系數(shù))確定。更新部分101根據(jù)預(yù)定算法(例如NLMS算法、FRLS算法或者基于另一最小平方法算法)更新自適應(yīng)濾波器102的系數(shù)以響應(yīng)誤差信號e1(n)和遠端信號x(n)。更新部分101具有作為產(chǎn)生自適應(yīng)濾波器102系數(shù)的基礎(chǔ)的內(nèi)部系數(shù)(內(nèi)部抽頭系數(shù))。更新部分101和自適應(yīng)濾波器102協(xié)同識別或估計回聲路徑,并且產(chǎn)生第一偽回聲信號y1(n)以響應(yīng)遠端信號x(n)和誤差信號e1(n)。減法器107產(chǎn)生作為回聲信號d(n)與第一偽回聲信號y1(n)的差值的誤差信號e1(n)。
主濾波器103構(gòu)成前臺濾波器,其工作特性由系數(shù)(抽頭系數(shù))確定。主濾波器103產(chǎn)生第二偽回聲信號y2(n)以響應(yīng)遠端信號x(n)。第二偽回聲信號y2(n)設(shè)計為抵消返回遠端側(cè)的回聲信號d(n)。判斷部分104周期性地判斷系數(shù)是否應(yīng)該從自適應(yīng)濾波器102傳送至主濾波器103,具體而言即是否滿足預(yù)定條件。判斷部分104作出判斷的周期等于遠端信號x(n)的一個樣本。判斷部分104作出判斷的周期可以等于另一預(yù)定數(shù)值。判斷部分104所用預(yù)定條件與誤差信號e1(n)與誤差信號e2(n)之比、誤差信號e1(n)與誤差信號e2(n)之差和第一偽回聲信號y1(n)與回聲信號d(n)之間的相關(guān)值有關(guān)。預(yù)定條件的典型例子是誤差信號e1(n)小于回聲信號d(n)某一水平以上和誤差信號e1(n)是否小于誤差信號e2(n)。如果判斷部分104判斷預(yù)定條件滿足,則判斷部分104將系數(shù)從自適應(yīng)濾波器102傳送至主濾波器103。因此,在這種情況下,主濾波器103根據(jù)新傳送的系數(shù)產(chǎn)生第二偽回聲信號y2(n)。減法器109產(chǎn)生作為回聲信號d(n)與第二偽回聲信號y2(n)之差的誤差信號e2(n)。誤差信號e2(n)作為無回聲信號被送至遠端側(cè)。另一方面,如果判斷部分104判斷不滿足預(yù)定條件,則判斷部分104不執(zhí)行系數(shù)從自適應(yīng)濾波器102至主濾波器103的傳送。判斷部分104將判斷結(jié)果通知控制部分。
控制部分105判斷更新部分101內(nèi)的內(nèi)部系數(shù)(內(nèi)部抽頭系數(shù))和自適應(yīng)濾波器102內(nèi)的系數(shù)是否應(yīng)該初始化。當(dāng)判斷結(jié)果為正時,控制部分105將更新部分101和自適應(yīng)濾波器102的抽頭長度(抽頭總數(shù))從原始值M0改變?yōu)轭A(yù)定值M1,并且初始化更新部分101內(nèi)的內(nèi)部系數(shù)和自適應(yīng)濾波器102內(nèi)的系數(shù)。預(yù)定值M1小于原始值M0。預(yù)定值M1也稱為較小的值M1。選定較小的值M1從而可以減弱直接的聲音和初始反射聲音。當(dāng)判斷結(jié)果為負時,控制部分105不執(zhí)行初始化。如果當(dāng)前抽頭長度等于較小值M1并且控制部分105被告知判斷部分104的判斷結(jié)果為正時,控制部分105將更新部分101和自適應(yīng)濾波器102的抽頭長度返回至原始值M0,并且初始化更新部分101內(nèi)的內(nèi)部系數(shù)和自適應(yīng)濾波器102內(nèi)的系數(shù)。
控制部分105判斷的第一實例如下??刂撇糠?05計算回聲信號d(n)與誤差信號e2(n)之間功率的ERLE(回聲返回損失增強)之比??刂撇糠?05計算ERLE之比的當(dāng)前樣本值與ERLE之比緊隨其后樣本值之差D(n)。控制部分105將差值D(n)與預(yù)定閾值比較。當(dāng)差值D(n)超過閾值時,控制部分105判定更新部分101內(nèi)的內(nèi)部系數(shù)和自適應(yīng)濾波器102內(nèi)的系數(shù)應(yīng)該初始化。否則,控制部分105判斷更新部分101內(nèi)的內(nèi)部系數(shù)和自適應(yīng)濾波器102內(nèi)的系數(shù)不應(yīng)該初始化。
控制部分105判斷的第二實例如下??刂撇糠?05計算回聲信號d(n)與誤差信號e2(n)之間功率的ERLE(回聲返回損失增強)之比??刂撇糠?05判斷ERLE之比是否在預(yù)定數(shù)量的連續(xù)樣本內(nèi)持續(xù)下跌。如果ERLE之比在預(yù)定數(shù)量的連續(xù)樣本內(nèi)持續(xù)跌落,則控制部分105判斷更新部分101內(nèi)的內(nèi)部系數(shù)和自適應(yīng)濾波器102內(nèi)的系數(shù)應(yīng)該初始化。否則,控制部分105判斷更新部分101內(nèi)的內(nèi)部系數(shù)和自適應(yīng)濾波器102內(nèi)的系數(shù)不應(yīng)該初始化。
圖4為DSP20控制程序段的流程圖。通常情況下,對于遠端信號x(n)和回聲信號d(n)的每個樣本都執(zhí)行程序段。如圖4所示,程序段的第一步驟201是根據(jù)預(yù)定算法(例如NLMS算法、FRLS算法或基于最小平方法的算法)更新自適應(yīng)濾波器內(nèi)的系數(shù)(抽頭系數(shù))以響應(yīng)誤差信號e1(n)和遠端信號x(n)。步驟201將內(nèi)部系數(shù)(內(nèi)部抽頭系數(shù))用作產(chǎn)生自適應(yīng)濾波器內(nèi)系數(shù)的基礎(chǔ)。
步驟201后面的步驟202根據(jù)步驟201更新的系數(shù)執(zhí)行自適應(yīng)濾波過程,從而產(chǎn)生第一偽回聲信號y1(n)以響應(yīng)遠端信號x(n)和誤差信號e1(n)。此外,步驟202產(chǎn)生作為回聲信號d(n)與第一偽回聲信號y1(n)之差的誤差信號e1(n)。
步驟202之后的步驟203根據(jù)系數(shù)(抽頭系數(shù))執(zhí)行主濾波過程,并且產(chǎn)生第二偽回聲信號y2(n)以響應(yīng)遠端信號x(n)。此外,步驟203產(chǎn)生作為回聲信號d(n)與第二偽回聲信號y2(n)之差的誤差信號e2(n)。步驟203向遠端側(cè)輸出誤差信號e2(n)作為無回聲信號。
第一系數(shù)控制塊204包括步驟204-1、204-2和204-3。步驟204-1跟隨步驟203之后。步驟204-1判斷系數(shù)更新步驟201所用內(nèi)部系數(shù)和自適應(yīng)濾波步驟202所用系數(shù)是否應(yīng)該初始化。當(dāng)判斷結(jié)果為正時,程序從步驟204-1進入步驟204-2。當(dāng)判斷結(jié)果為負時,程序從步驟204-1進入步驟205。
在第一系數(shù)控制塊204中,步驟204-2將系數(shù)更新步驟201和自適應(yīng)濾波步驟202內(nèi)所用的抽頭長度(抽頭總數(shù))從原始值M0改變?yōu)檩^小值M1。選擇較小值M1使得可以減弱直接聲音和初始反射聲音。
在第一系數(shù)控制塊204中,步驟204-3在步驟204-2之后。步驟204-3初始化系數(shù)更新步驟201所用的內(nèi)部系數(shù)和自適應(yīng)濾波步驟202所用的系數(shù)。在步驟204-3之后,程序進入步驟205。
步驟204-1判斷的第一實例如下。步驟204-1計算回聲信號d(n)與誤差信號e2(n)之間功率的ERLE(回聲返回損失增強)之比。步驟204-1計算ERLE之比的當(dāng)前樣本值與ERLE之比緊靠其前樣本值之差D(n)。步驟204-1將差值D(n)與預(yù)定閾值比較。當(dāng)差值D(n)超過閾值時,步驟204-1判斷更新部分101內(nèi)的內(nèi)部系數(shù)和自適應(yīng)濾波器102內(nèi)的系數(shù)應(yīng)該初始化。否則,步驟204-1判斷更新部分101內(nèi)的內(nèi)部系數(shù)和自適應(yīng)濾波器102內(nèi)的系數(shù)不應(yīng)該初始化。
步驟204-1判斷的第二實例如下。步驟204-1計算回聲信號d(n)與誤差信號e2(n)之間功率的ERLE(回聲返回損失增強)之比。步驟204-1判斷ERLE之比是否在預(yù)定數(shù)量的連續(xù)樣本內(nèi)持續(xù)下跌。如果ERLE之比在預(yù)定數(shù)量的連續(xù)樣本內(nèi)持續(xù)跌落,則步驟204-1判斷更新部分101內(nèi)的內(nèi)部系數(shù)和自適應(yīng)濾波器102內(nèi)的系數(shù)應(yīng)該初始化。否則,步驟204-1判斷更新部分101內(nèi)的內(nèi)部系數(shù)和自適應(yīng)濾波器102內(nèi)的系數(shù)不應(yīng)該初始化。
步驟205周期性地判斷系數(shù)是否應(yīng)該從自適應(yīng)濾波步驟202傳送至主濾波過程203,具體而言即是否滿足預(yù)定條件。步驟205作出判斷的周期等于遠端信號x(n)的一個樣本。步驟205作出判斷的周期可以等于另一預(yù)定數(shù)值。步驟205所用預(yù)定條件涉及誤差信號e1(n)與誤差信號e2(n)之比、誤差信號e1(n)與誤差信號e2(n)之差和第一偽回聲信號y1(n)與回聲信號d(n)之間的相關(guān)值中的至少一個。預(yù)定條件的典型例子是誤差信號e1(n)小于回聲信號d(n)某一水平以上和誤差信號e1(n)是否小于誤差信號e2(n)。當(dāng)步驟205判斷預(yù)定條件滿足,則程序從步驟205進入步驟206。否則程序從步驟205返回步驟201。
步驟206將系數(shù)從自適應(yīng)濾波步驟202傳送至主濾波步驟203。因此,在這種情況下,主濾波步驟203在程序段下一執(zhí)行周期內(nèi)根據(jù)新傳送的系數(shù)產(chǎn)生第二偽回聲信號y2(n)。
第二系數(shù)控制塊207包括步驟207-1、207-2和207-3。步驟207-1在步驟206之后。步驟207-1檢查系數(shù)更新步驟201和自適應(yīng)濾波步驟202中所用當(dāng)前抽頭長度是否等于較小值M1。當(dāng)當(dāng)前抽頭長度等于較小值M1時,程序從步驟207-1進入步驟207-2。否則,程序從步驟207-1返回步驟201。
在第二系數(shù)控制塊207內(nèi),步驟207-2將抽頭長度(用于系數(shù)更新步驟201和自適應(yīng)濾波步驟202)返回原始值M0。步驟207-3在步驟207-2之后。步驟207-3初始化系數(shù)更新步驟201所用的內(nèi)部系數(shù)和自適應(yīng)濾波步驟202所用的系數(shù)。在步驟207-3之后,程序返回步驟201。
如上所述,抽頭長度可以在原始值M0與較小值M1之間改變。按照這種設(shè)計,回聲抵消器可以快速跟隨回聲產(chǎn)生條件的變化。
第二實施例圖5示出了按照本發(fā)明第二實施例,它除了下述設(shè)計變化以外與第一實施例類似。本發(fā)明第二實施例包括DSP20A代替DSP20(參見圖2)。
DSP20A包括輸入/輸出端口的組合、處理部分、ROM和RAM。DSP20A按照存儲在ROM內(nèi)的控制程序工作。按照控制程序,DSP20A構(gòu)成對數(shù)字遠端信號x(n)響應(yīng)并將回聲分量從A/D轉(zhuǎn)換器24輸出信號中去除的回聲抵消器。DSP20A產(chǎn)生數(shù)字無回聲信號作為數(shù)字誤差信號e(n)。數(shù)值遠端信號x(n)包含樣本序列。而且數(shù)值誤差信號e(n)包含樣本序列。這里“n”表示當(dāng)前樣本。DSP20A輸出向遠端側(cè)發(fā)送的數(shù)字誤差信號2(n)。
圖6示出的更象是DSP20A的操作流程圖而非DSP20A的硬件細節(jié)。參見圖6,DSP20A編程為構(gòu)成帶分濾波器310、疏化部分3201、3202…和320k、帶分濾波器330、疏化部分3401、3402…和340k、子帶回聲抵消塊3501、3502…和350k、插值部分3601、3602…和360k、頻帶組合濾波器370和減法器3901、3902…和390k。這里“k”表示等于或大于2的預(yù)設(shè)自然數(shù)。
子帶回聲抵消塊3501、3502…和350k在結(jié)構(gòu)上相互相同。因此只詳細描述子帶回聲抵消塊3501的結(jié)構(gòu)。子帶回聲抵消塊3501包括更新部分3511、數(shù)字自適應(yīng)濾波器3521、數(shù)字主濾波器3531、判斷部分3541、控制部分3551和減法器3801。
帶分濾波器310將遠端信號x(n)的頻帶分割為“k”個子帶。帶分濾波器310將最終的子帶信號分別送至疏化部分3201、3202…和320k。帶分濾波器310例如包括多相濾波器。疏化部分3201、3202…和320k以1/L的速率疏化或抽選子帶信號,從而分別產(chǎn)生疏化的最終子帶遠端信號x1(n)、x2(n)…和xk(n)。最終子帶遠端信號x1(n)、x2(n)…和xk(n)被分別送至子帶回聲抵消塊3501、3502…和350k。
帶分濾波器330將遠端信號x(n)的頻帶分割為“k”個子帶。帶分濾波器330將最終的子帶信號分別送至疏化部分3401、3402…和340k。帶分濾波器330例如包括多相濾波器。疏化部分3401、3402…和340k以1/L的速率疏化或抽選子帶信號,從而分別產(chǎn)生疏化的最終子帶遠端信號d1(n)、d2(n)…和dk(n)。最終子帶遠端信號d1(n)、d2(n)…和dk(n)被分別送至子帶回聲抵消塊3501、3502…和350k。
子帶回聲抵消塊3501、3502…和350k在操作上相互相似。因此只詳細描述子帶回聲抵消塊3501的操作。
在子帶回聲抵消塊3501中,自適應(yīng)濾波器3501構(gòu)成后臺濾波器,其工作特性由系數(shù)(抽頭系數(shù))確定。更新部分3511根據(jù)預(yù)定算法(例如NLMS算法、FRLS算法或者基于另一最小平方法算法)更新自適應(yīng)濾波器3521的系數(shù)以響應(yīng)子帶誤差信號e1(n)和子帶遠端信號x(n)。更新部分3511具有作為產(chǎn)生自適應(yīng)濾波器3521內(nèi)系數(shù)的基礎(chǔ)的內(nèi)部系數(shù)(內(nèi)部抽頭系數(shù))。更新部分3511和自適應(yīng)濾波器3521協(xié)同識別或估計回聲路徑,并且產(chǎn)生第一子帶偽回聲信號y11(n)以響應(yīng)子帶遠端信號x1(n)和子帶誤差信號e11(n)。減法器3801產(chǎn)生作為子帶回聲信號d1(n)與第一子帶偽回聲信號y11(n)的差值的誤差信號e11(n)。
在子帶回聲抵消塊3501中,主濾波器3531構(gòu)成前臺濾波器,其工作特性由系數(shù)(抽頭系數(shù))確定。主濾波器3531產(chǎn)生第二子帶偽回聲信號y21(n)以響應(yīng)子帶遠端信號x1(n)。第二子帶偽回聲信號y21(n)設(shè)計為抵消返回遠端側(cè)的子帶回聲信號d1(n)。判斷部分3541周期性地判斷系數(shù)是否應(yīng)該從自適應(yīng)濾波器3521傳送至主濾波器3531,具體而言即是否滿足預(yù)定條件。判斷部分3541作出判斷的周期等于子帶遠端信號x1(n)一個樣本。判斷部分3541作出判斷的周期可以等于另一預(yù)定數(shù)值。判斷部分3541所用預(yù)定條件涉及子帶誤差信號e11(n)與子帶誤差信號e21(n)之比、子帶誤差信號e11(n)與子帶誤差信號e21(n)之差和第一子帶偽回聲信號y11(n)與子帶回聲信號d1(n)之間的相關(guān)值中至少一個。預(yù)定條件的典型例子是子帶誤差信號e11(n)小于子帶回聲信號d1(n)某一水平以上和子帶誤差信號e11(n)是否小于子帶誤差信號e21(n)。如果判斷部分3541判斷預(yù)定條件滿足,則判斷部分3541將系數(shù)從自適應(yīng)濾波器3521傳送至主濾波器3531。因此,在這種情況下,主濾波器3531根據(jù)新傳送的系數(shù)產(chǎn)生第二子帶偽回聲信號y21(n)。減法器3901產(chǎn)生作為子帶回聲信號d1(n)與第二子帶偽回聲信號y21(n)之差的誤差信號e21(n)。誤差信號e21(n)被發(fā)送至插值部分3601。另一方面,如果判斷部分3541判斷不滿足預(yù)定條件,則判斷部分3541不執(zhí)行系數(shù)從自適應(yīng)濾波器3521至主濾波器3531的傳送。判斷部分3541將判斷結(jié)果通知控制部分3551。
在子帶回聲抵消塊3501中,控制部分3551判斷更新部分3511內(nèi)的內(nèi)部系數(shù)(內(nèi)部抽頭系數(shù))和自適應(yīng)濾波器3521內(nèi)的系數(shù)是否應(yīng)該初始化。當(dāng)判斷結(jié)果為正時,控制部分3551將更新部分3511和自適應(yīng)濾波器3521的抽頭長度(抽頭總數(shù))從原始值M0改變?yōu)轭A(yù)定值M1,并且初始化更新部分3511內(nèi)的內(nèi)部系數(shù)和自適應(yīng)濾波器3521內(nèi)的系數(shù)。預(yù)定值M1小于原始值M0。選定較小的值M1從而可以減弱直接的聲音和初始反射聲音。當(dāng)判斷結(jié)果為負時,控制部分3551不執(zhí)行初始化。如果當(dāng)前抽頭長度等于較小值M1并且控制部分3551被告知判斷部分3541的判斷結(jié)果為正時,控制部分3551將更新部分3511和自適應(yīng)濾波器3521的抽頭長度返回至原始值M0,并且初始化更新部分3511內(nèi)的內(nèi)部系數(shù)和自適應(yīng)濾波器3521內(nèi)的系數(shù)。
控制部分3551判斷的第一實例如下??刂撇糠?551計算子帶回聲信號d1(n)與子帶誤差信號e21(n)之間功率的子帶ERLE(回聲返回損失增強)之比??刂撇糠?551計算子帶ERLE之比的當(dāng)前樣本值與子帶ERLE之比的緊靠其前樣本值之間的子帶差值D1(n)??刂撇糠?551將子帶差值D1(n)與預(yù)定子帶閾值比較。當(dāng)子帶差值D1(n)超過子帶閾值時,控制部分3551判斷更新部分3511內(nèi)的內(nèi)部系數(shù)和自適應(yīng)濾波器3521內(nèi)的系數(shù)應(yīng)該初始化。否則,控制部分3551判斷更新部分3511內(nèi)的內(nèi)部系數(shù)和自適應(yīng)濾波器3521內(nèi)的系數(shù)不應(yīng)該初始化。
控制部分3551判斷的第二實例如下??刂撇糠?551計算子帶回聲信號d1(n)與子帶誤差信號e21(n)之間功率的子帶ERLE(回聲返回損失增強)之比??刂撇糠?551判斷子帶ERLE之比是否在預(yù)定數(shù)量的連續(xù)樣本內(nèi)持續(xù)下跌。如果子帶ERLE之比在預(yù)定數(shù)量的連續(xù)樣本內(nèi)持續(xù)跌落,則控制部分3551判斷更新部分3511內(nèi)的內(nèi)部系數(shù)和自適應(yīng)濾波器3521內(nèi)的系數(shù)應(yīng)該初始化。否則,控制部分3551判斷更新部分3511內(nèi)的內(nèi)部系數(shù)和自適應(yīng)濾波器102內(nèi)的系數(shù)不應(yīng)該初始化。
子帶回聲抵消塊3502…和350k的操作與子帶回聲抵消塊3501類似。子帶回聲抵消塊3502…和350k產(chǎn)生第二子帶偽回聲信號y22(n)…和y2k(n)以分別響應(yīng)子帶遠端信號x2(n)…和xk(n)以及子帶回聲信號d2(n)…和dk(n)。減法器3902…和390k產(chǎn)生子帶誤差信號e22(n)…和e2k(n),它們是子帶回聲信號d2(n)…和dk(n)與第二子帶偽回聲信號y22(n)…和y2k(n)之差。子帶誤差信號e22(n)…和e2k(n)分別發(fā)送至插值部分3602…和360k。
插值部分3061,3602…和360k分別相對子帶誤差信號e22(n)…和e2k(n)執(zhí)行插值。插值的因子為L。插值部分3602…和360k將插值后的最終子帶誤差信號送至帶組合濾波器370。帶組合濾波器370通過合適的加法過程將插值后的最終子帶誤差信號組合為全帶誤差信號,即數(shù)字誤差信號e(n)。數(shù)字誤差信號e(n)被發(fā)送至遠端側(cè)。
圖7為DSP20A控制程序段的流程圖。通常情況下,對于遠端信號x(n)和回聲信號d(n)的每個樣本都執(zhí)行程序段。如圖7所示,程序段的第一塊410包括步驟411和412。步驟411將遠端信號x(n)的頻帶通過例如多相濾波處理分割為“k”個子帶。
在塊410中,步驟412在步驟411之后。步驟412以1/L的速率疏化或抽選子帶信號,從而分別產(chǎn)生疏化的最終子帶遠端信號x1(n)、x2(n)…和xk(n)。
塊420包括步驟421和422。步驟421在步驟412之后。步驟421通過例如多相濾波處理將回聲信號d(n)的頻帶分割為“k”個子帶。
在塊420中,步驟422在步驟421之后。步驟422以1/L的速率疏化或抽選子帶信號,從而分別產(chǎn)生疏化的最終子帶遠端信號d1(n)、d2(n)…和dk(n)。
塊422之后的塊430分別產(chǎn)生子帶誤差信號e21(n)、e22(n)…和e2k(n)以響應(yīng)子帶遠端信號x1(n)、x2(n)…和xk(n)以及子帶回聲信號d1(n)、d2(n)…和dk(n)。
塊440包括步驟441和442。步驟441在塊430之后。步驟441分別對子帶誤差信號e21(n)、e22(n)…和e2k(n)執(zhí)行插值。插值具有因子L。
在塊440中,步驟442在步驟441之后。步驟442通過合適的加法過程將插值后的最終子帶誤差信號組合為全帶誤差信號,即數(shù)字誤差信號e(n)。步驟442將作為無回聲信號的數(shù)字誤差信號e(n)發(fā)送至遠端側(cè)。在步驟442之后,程序返回步驟411。
塊430包含分別分配至“k”個子帶的步驟序列。步驟序列相互類似。圖8示出了塊430中步驟序列“j”的細節(jié)。
參見圖8,步驟431根據(jù)預(yù)定算法(例如NLMS算法、FRLS算法或基于最小平方法的算法)更新自適應(yīng)濾波器內(nèi)的系數(shù)(抽頭系數(shù))以響應(yīng)子帶誤差信號e1j(n)和子帶遠端信號xj(n)。步驟431將內(nèi)部系數(shù)(內(nèi)部抽頭系數(shù))用作產(chǎn)生自適應(yīng)濾波器內(nèi)系數(shù)的基礎(chǔ)。
步驟431后面的步驟432根據(jù)步驟431更新的系數(shù)執(zhí)行自適應(yīng)濾波過程,從而產(chǎn)生第一子帶偽回聲信號y1j(n)以響應(yīng)遠端信號xj(n)和誤差信號e1j(n)。此外,步驟432產(chǎn)生作為子帶回聲信號dj(n)與第一子帶偽回聲信號y1(n)之差的子帶誤差信號e1j(n)。
步驟432之后的步驟433根據(jù)系數(shù)(抽頭系數(shù))執(zhí)行主濾波過程,并且產(chǎn)生第二子帶偽回聲信號y2(n)以響應(yīng)子帶遠端信號xj(n)。此外,步驟433產(chǎn)生作為子帶回聲信號dj(n)與第二子帶偽回聲信號y2j(n)之差的誤差信號e2j(n)。
第一系數(shù)控制塊434包括步驟434-1、434-2和434-3。步驟434-1在步驟433之后。步驟434-1判斷系數(shù)更新步驟431所用內(nèi)部系數(shù)和自適應(yīng)濾波步驟202所用系數(shù)是否應(yīng)該初始化。當(dāng)判斷結(jié)果為正時,程序從步驟434-1進入步驟434-2。當(dāng)判斷結(jié)果為負時,程序從步驟434-1進入步驟435。
在第一系數(shù)控制塊434中,步驟434-2將系數(shù)更新步驟431和自適應(yīng)濾波步驟432內(nèi)所用的抽頭長度(抽頭總數(shù))從原始值M0改變我較小值M1。選擇較小值M1使得可以減弱直接聲音和初始反射聲音。
在第一系數(shù)控制塊434中,步驟434-3在步驟434-2之后。步驟434-3初始化系數(shù)更新步驟431所用的系數(shù)和自適應(yīng)濾波步驟432所用的系數(shù)。在步驟434-3之后,程序進入步驟435。
步驟434-1判斷的第一實例如下。步驟434-1計算子帶回聲信號dj(n)與子帶誤差信號e2j(n)之間功率的子帶ERLE(回聲返回損失增強)之比。步驟434-1計算子帶ERLE之比的當(dāng)前樣本值與子帶ERLE之比緊靠其前樣本值的子帶差值Dj(n)。步驟434-1將差值Dj(n)與預(yù)定閾值比較。當(dāng)子帶差值D(n)超過閾值時,步驟434-1判斷更新部分431內(nèi)的內(nèi)部系數(shù)和自適應(yīng)濾波器432內(nèi)的系數(shù)應(yīng)該初始化。否則,步驟434-1判斷更新系數(shù)部分431使用的內(nèi)部系數(shù)和自適應(yīng)濾波器432使用的系數(shù)不應(yīng)該初始化。
步驟434-1判斷的第二實例如下。步驟434-1計算子帶回聲信號dj(n)與子帶誤差信號e2j(n)之間功率的子帶ERLE(回聲返回損失增強)之比。步驟434-1判斷子帶ERLE之比是否在預(yù)定數(shù)量的連續(xù)樣本內(nèi)持續(xù)下跌。如果子帶ERLE之比在預(yù)定數(shù)量的連續(xù)樣本內(nèi)持續(xù)跌落,則步驟434-1判斷更新部分431內(nèi)的內(nèi)部系數(shù)和自適應(yīng)濾波器432內(nèi)的系數(shù)應(yīng)該初始化。否則,步驟434-1判斷更新部分431內(nèi)的內(nèi)部系數(shù)和自適應(yīng)濾波器432內(nèi)的系數(shù)不應(yīng)該初始化。
步驟435周期性地判斷系數(shù)是否應(yīng)該從自適應(yīng)濾波步驟432傳送至主濾波過程433,具體而言即是否滿足預(yù)定條件。步驟435作出判斷的周期等于子帶遠端信號xj(n)的一個樣本。步驟435作出判斷的周期可以等于另一預(yù)定數(shù)值。步驟435所用預(yù)定條件涉及子帶誤差信號e1j(n)與子帶誤差信號e2j(n)之比、子帶誤差信號e1j(n)與子帶誤差信號e2j(n)之差和第一子帶偽回聲信號y1j(n)與子帶回聲信號dj(n)之間的相關(guān)值中的至少一個。預(yù)定條件的典型例子是子帶誤差信號e1j(n)小于子帶回聲信號dj(n)某一水平以上和子帶誤差信號e1j(n)是否小于子帶誤差信號e2j(n)。當(dāng)步驟435判斷預(yù)定條件滿足,則程序從步驟435進入步驟436。否則程序從步驟435進入開始退出本步驟序列。
步驟436將系數(shù)從自適應(yīng)濾波步驟432傳送至主濾波步驟433。因此,在這種情況下,主濾波步驟433在程序段下一執(zhí)行周期內(nèi)根據(jù)新傳送的系數(shù)產(chǎn)生第二子帶偽回聲信號y2j(n)。
第二系數(shù)控制塊437包括步驟437-1、437-2和437-3。步驟437-1在步驟436之后。步驟437-1檢查系數(shù)更新步驟431和自適應(yīng)濾波步驟432中所用當(dāng)前抽頭長度是否等于較小值M1。當(dāng)當(dāng)前抽頭長度等于較小值M1時,程序從步驟437-1進入步驟437-2。否則,程序從步驟437-1返回步驟431。
在第二系數(shù)控制塊437內(nèi),步驟437-2將抽頭長度(用于系數(shù)更新步驟431和自適應(yīng)濾波步驟432)返回原始值M0。步驟437-3在步驟437-2之后。步驟437-3初始化系數(shù)更新步驟431所用的內(nèi)部系數(shù)和自適應(yīng)濾波步驟432所用的系數(shù)。在步驟437-3之后,進入開始退出本步驟序列。
如上所述,抽頭長度可以在原始值M0與較小值M1之間改變。按照這種設(shè)計,回聲抵消器可以快速跟隨回聲產(chǎn)生條件的變化。
如上所述,每個遠端信號x(n)和回聲信號d(n)的頻帶被分割為子帶。回聲抵消過程逐個子帶地實現(xiàn)。這種設(shè)計可以使回聲抵消器快速跟隨回聲產(chǎn)生條件的變化。
第三實施例圖9示出了按照本發(fā)明第三實施例,它除了下述設(shè)計變化以外與第一實施例類似。本發(fā)明第三實施例包括DSP20B代替DSP20(參見圖2)。
DSP20B包括輸入/輸出端口的組合、處理部分、ROM和RAM。DSP20B按照存儲在ROM內(nèi)的控制程序工作。按照控制程序,DSP20B構(gòu)成響應(yīng)數(shù)字遠端信號x(n)并將回聲分量從A/D轉(zhuǎn)換器24輸出信號中去除的回聲抵消器。DSP20B產(chǎn)生數(shù)字無回聲信號作為數(shù)字誤差信號e2(n)。數(shù)字遠端信號x(n)包含樣本序列。而且數(shù)字誤差信號e2(n)具有樣本序列。這里“n”表示當(dāng)前樣本。DSP20B輸出向遠端側(cè)發(fā)送的數(shù)字誤差信號e2(n)。
圖10示出的更象是DSP20B的操作流程圖而非DSP20B硬件細節(jié)。參見圖10,DSP20B編程為構(gòu)成更新部分501、數(shù)字自適應(yīng)濾波器502、數(shù)字主濾波器503、判斷部分504、控制部分505、計數(shù)器506和減法器507和509。
自適應(yīng)濾波器502構(gòu)成后臺濾波器,其工作特性由系數(shù)(抽頭系數(shù))確定。更新部分501根據(jù)預(yù)定算法(例如NLMS算法、FRLS算法或者基于另一最小平方法算法)更新自適應(yīng)濾波器502的系數(shù)以響應(yīng)誤差信號e1(n)和遠端信號x(n)。更新部分501具有作為產(chǎn)生自適應(yīng)濾波器502內(nèi)系數(shù)的基礎(chǔ)的內(nèi)部系數(shù)(內(nèi)部抽頭系數(shù))。更新部分501和自適應(yīng)濾波器502協(xié)同識別或估計回聲路徑,并且產(chǎn)生第一偽回聲信號y1(n)以響應(yīng)遠端信號x(n)和誤差信號e1(n)。減法器507產(chǎn)生作為回聲信號d(n)與第一偽回聲信號y1(n)的差值的誤差信號e1(n)。數(shù)字回聲信號d(n)包含樣本序列。
主濾波器503構(gòu)成前臺濾波器,其工作特性由系數(shù)(抽頭系數(shù))確定。主濾波器503產(chǎn)生第二偽回聲信號y2(n)以響應(yīng)遠端信號x(n)。第二偽回聲信號y2(n)設(shè)計為抵消返回遠端側(cè)的回聲信號d(n)。判斷部分504周期性地判斷系數(shù)是否應(yīng)該從自適應(yīng)濾波器502傳送至主濾波器503,具體而言即是否滿足預(yù)定條件。判斷部分504作出判斷的周期等于遠端信號x(n)的一個樣本。判斷部分504作出判斷的周期可以等于另一預(yù)定數(shù)值。判斷部分504所用預(yù)定條件涉及誤差信號e1(n)與誤差信號e2(n)之比、誤差信號e1(n)與誤差信號e2(n)之差和第一偽回聲信號y1(n)與回聲信號d(n)之間的相關(guān)值。預(yù)定條件的典型例子是誤差信號e1(n)小于回聲信號d(n)某一水平以上和誤差信號e1(n)是否小于誤差信號e2(n)。如果判斷部分504判斷預(yù)定條件滿足,則判斷部分504將系數(shù)從自適應(yīng)濾波器502傳送至主濾波器503。因此,在這種情況下,主濾波器503根據(jù)新傳送的系數(shù)產(chǎn)生第二偽回聲信號y2(n)。減法器509產(chǎn)生作為回聲信號d(n)與第二偽回聲信號y2(n)之差的誤差信號e2(n)。誤差信號e2(n)作為無回聲信號被送至遠端側(cè)。另一方面,如果判斷部分504判斷不滿足預(yù)定條件,則判斷部分504不執(zhí)行系數(shù)從自適應(yīng)濾波器502至主濾波器503的傳送。判斷部分504將判斷結(jié)果通知控制部分。
控制部分505判斷更新部分501內(nèi)的內(nèi)部系數(shù)(內(nèi)部抽頭系數(shù))和自適應(yīng)濾波器502內(nèi)的系數(shù)是否應(yīng)該初始化。當(dāng)判斷結(jié)果為正時,控制部分505將更新部分501和自適應(yīng)濾波器502的抽頭長度(抽頭總數(shù))從原始值M0改變?yōu)轭A(yù)定值M1,并且初始化更新部分501內(nèi)的內(nèi)部系數(shù)和自適應(yīng)濾波器502內(nèi)的系數(shù)。此外,控制部分505饋送復(fù)位信號到計數(shù)器506。預(yù)定值M1小于原始值M0。選定較小的值M1從而可以減弱直接的聲音和初始反射聲音。當(dāng)判斷結(jié)果為負時,控制部分505不執(zhí)行初始化。
控制部分505判斷的第一實例如下??刂撇糠?05計算回聲信號d(n)與誤差信號e2(n)之間功率的ERLE(回聲返回損失增強)之比??刂撇糠?05計算ERLE之比的當(dāng)前樣本值與ERLE之比緊靠其前樣本值之差D(n)。控制部分505將差值D(n)與預(yù)定閾值比較。當(dāng)差值D(n)超過閾值時,控制部分505更新部分501內(nèi)的內(nèi)部系數(shù)和自適應(yīng)濾波器502內(nèi)的系數(shù)應(yīng)該初始化。否則,控制部分505判斷更新部分501內(nèi)的內(nèi)部系數(shù)和自適應(yīng)濾波器502內(nèi)的系數(shù)不應(yīng)該初始化。
控制部分505判斷的第二實例如下??刂撇糠?05計算回聲信號d(n)與誤差信號e2(n)之間功率的ERLE(回聲返回損失增強)之比??刂撇糠?05判斷ERLE之比是否在預(yù)定數(shù)量的連續(xù)樣本內(nèi)持續(xù)下跌。如果ERLE之比在預(yù)定數(shù)量的連續(xù)樣本內(nèi)持續(xù)跌落,則控制部分505判斷更新部分501內(nèi)的內(nèi)部系數(shù)和自適應(yīng)濾波器502內(nèi)的系數(shù)應(yīng)該初始化。否則,控制部分505判斷更新部分501內(nèi)的內(nèi)部系數(shù)和自適應(yīng)濾波器502內(nèi)的系數(shù)不應(yīng)該初始化。
計數(shù)器506對遠端信號x(n)的樣本進行計數(shù)。計數(shù)器506將代表計數(shù)樣本數(shù)的信號送至控制部分505。計數(shù)的樣本數(shù)在計數(shù)器506從控制部分505接收到復(fù)位信號時復(fù)位。
如果當(dāng)前抽頭長度等于較小值M1并且控制部分505被通知判斷部分504的判斷結(jié)果為正,則控制部分505使更新部分501和自適應(yīng)濾波器502的抽頭長度返回原始值M0,并且初始化更新部分501內(nèi)的內(nèi)部系數(shù)和自適應(yīng)濾波器502內(nèi)的系數(shù)。
如果從計數(shù)器506輸送的信號所代表的計數(shù)樣本數(shù)超過預(yù)定閾值數(shù)但是控制部分505未被通知判斷部分504的判斷結(jié)果為正,即如果具有較小抽頭長度M1的系數(shù)未在給定時間內(nèi)從自適應(yīng)濾波器502傳送至主濾波器503,則控制部分505使更新部分501和自適應(yīng)濾波器502的抽頭長度返回原始值M0,并且初始化更新部分501內(nèi)的內(nèi)部系數(shù)和自適應(yīng)濾波器502內(nèi)的系數(shù)。當(dāng)更新部分501采用FRLS算法時,閾值數(shù)設(shè)定為等于較小值M1乘以3。
圖11為DSP20B控制程序段的流程圖。通常情況下,對于遠端信號x(n)和回聲信號d(n)的每個樣本都執(zhí)行程序段。如圖11所示,程序段的第一塊包括步驟601-1和601-2。步驟601-1判斷當(dāng)前抽頭長度是否等于較小值M1。當(dāng)當(dāng)前抽頭長度等于較小值M1時,程序從步驟601-1進入步驟601-2。否則,程序從步驟601-1進入步驟602。
步驟601-2使計數(shù)樣本數(shù)遞增“1”。在步驟601-2之后,程序進入步驟602。
步驟602根據(jù)預(yù)定算法(例如NLMS算法、FRLS算法或基于最小平方法的算法)更新自適應(yīng)濾波器內(nèi)的系數(shù)(抽頭系數(shù))以響應(yīng)誤差信號e1(n)和遠端信號x(n)。步驟602將內(nèi)部系數(shù)(內(nèi)部抽頭系數(shù))用作產(chǎn)生自適應(yīng)濾波器內(nèi)系數(shù)的基礎(chǔ)。
步驟602后面的步驟603根據(jù)步驟602更新的系數(shù)執(zhí)行自適應(yīng)濾波過程,從而產(chǎn)生第一偽回聲信號y1(n)以響應(yīng)遠端信號x(n)和誤差信號e1(n)。此外,步驟603產(chǎn)生作為回聲信號d(n)與第一偽回聲信號y1(n)之差的誤差信號e1(n)。
步驟603之后的步驟604根據(jù)系數(shù)(抽頭系數(shù))執(zhí)行主濾波過程,并且產(chǎn)生第二偽回聲信號y2(n)以響應(yīng)遠端信號x(n)。此外,步驟604產(chǎn)生作為回聲信號d(n)與第二偽回聲信號y2(n)之差的誤差信號e2(n)。步驟604向遠端側(cè)輸出誤差信號e2(n)作為無回聲信號。
第一系數(shù)控制塊605包括步驟605-1、605-2、605-3和605-4。步驟605-1跟隨步驟604之后。步驟605-1判斷系數(shù)更新步驟602所用內(nèi)部系數(shù)和自適應(yīng)濾波步驟603所用系數(shù)是否應(yīng)該初始化。當(dāng)判斷結(jié)果為正時,程序從步驟605-1進入步驟605-2。當(dāng)判斷結(jié)果為負時,程序從步驟605-1進入步驟606。
在第一系數(shù)控制塊605中,步驟605-2將系數(shù)更新步驟602和自適應(yīng)濾波步驟603內(nèi)所用的抽頭長度(抽頭總數(shù))從原始值M0改變?yōu)檩^小值M1。選擇較小值M1使得可以減弱直接聲音和初始反射聲音。
在第一系數(shù)控制塊605中,步驟605-3在步驟605-2之后。步驟605-3初始化系數(shù)更新步驟602所用的系數(shù)和自適應(yīng)濾波步驟603所用的系數(shù)。步驟605-4在605-3之后。步驟605-4將計數(shù)的樣本數(shù)復(fù)位至“0”,在步驟605-4之后程序進入步驟606。
步驟605-1判斷的第一實例如下。步驟605-1計算回聲信號d(n)與誤差信號e2(n)之間功率的ERLE(回聲返回損失增強)之比。步驟605-1計算ERLE之比的當(dāng)前樣本值與ERLE之比緊隨其后樣本值之差D(n)。步驟605-1將差值D(n)與預(yù)定閾值比較。當(dāng)差值D(n)超過閾值時,步驟605-1判斷系數(shù)更新步驟602所用內(nèi)部系數(shù)和自適應(yīng)濾波步驟603所用系數(shù)應(yīng)該初始化。否則,步驟605-1判斷系數(shù)更新步驟602內(nèi)所用內(nèi)部系數(shù)和自適應(yīng)濾波步驟603所用系數(shù)不應(yīng)該初始化。
步驟605-1判斷的第二實例如下。步驟605-1計算回聲信號d(n)與誤差信號e2(n)之間功率的ERLE(回聲返回損失增強)之比。步驟605-1判斷ERLE之比是否在預(yù)定數(shù)量的連續(xù)樣本內(nèi)持續(xù)下跌。如果ERLE之比在預(yù)定數(shù)量的連續(xù)樣本內(nèi)持續(xù)跌落,則步驟605-1判斷系數(shù)更新步驟602所用內(nèi)部系數(shù)和自適應(yīng)濾波步驟603所用系數(shù)應(yīng)該初始化。否則,步驟605-1判斷系數(shù)更新步驟602內(nèi)所用內(nèi)部系數(shù)和自適應(yīng)濾波步驟603所用系數(shù)不應(yīng)該初始化。
步驟606周期性地判斷系數(shù)是否應(yīng)該從自適應(yīng)濾波步驟603傳送至主濾波步驟604,具體而言即是否滿足預(yù)定條件。步驟606作出判斷的周期等于遠端信號x(n)的一個樣本。步驟606作出判斷的周期可以等于另一預(yù)定數(shù)值。步驟606所用預(yù)定條件涉及誤差信號e1(n)與誤差信號e2(n)之比、誤差信號e1(n)與誤差信號e2(n)之差和第一偽回聲信號y1(n)與回聲信號d(n)之間的相關(guān)值中的至少一個。預(yù)定條件的典型例子是誤差信號e1(n)小于回聲信號d(n)某一水平以上和誤差信號e1(n)是否小于誤差信號e2(n)。當(dāng)步驟606判斷預(yù)定條件滿足,則程序從步驟606進入步驟607。否則程序從步驟606進入第三系數(shù)控制塊609。
步驟607將系數(shù)從自適應(yīng)濾波步驟603傳送至主濾波步驟604。因此,在這種情況下,主濾波步驟604在程序段下一執(zhí)行周期內(nèi)根據(jù)新傳送的系數(shù)產(chǎn)生第二偽回聲信號y2(n)。
第二系數(shù)控制塊608包括步驟608-1、608-2和608-3。步驟608-1在步驟607之后。步驟608-1檢查系數(shù)更新步驟602和自適應(yīng)濾波步驟603中所用當(dāng)前抽頭長度是否等于較小值M1。當(dāng)當(dāng)前抽頭長度等于較小值M1時,程序從步驟608-1進入步驟608-2。否則,程序從步驟608-1返回塊601內(nèi)的步驟601-1。
在第二系數(shù)控制塊608內(nèi),步驟608-2將抽頭長度(用于系數(shù)更新步驟602和自適應(yīng)濾波步驟603)返回原始值M0。步驟608-3在步驟608-2之后。步驟608-3初始化系數(shù)更新步驟602所用的內(nèi)部系數(shù)和自適應(yīng)濾波步驟603所用的系數(shù)。在步驟608-3之后,程序返回塊601內(nèi)的步驟601-1。
第三系數(shù)控制塊609包括步驟609-1、609-2和609-3。步驟609-1在步驟606之后。步驟609-1檢查系數(shù)更新步驟602和自適應(yīng)濾波步驟603中所用當(dāng)前抽頭長度是否等于較小值M1。當(dāng)當(dāng)前抽頭長度等于較小值M1時,程序從步驟609-1進入步驟609-2。否則,程序從步驟609-1返回塊601內(nèi)的步驟601-1。
在第三系數(shù)控制塊609內(nèi),步驟609-2判斷計數(shù)樣本數(shù)是否超過預(yù)定閾值數(shù)T1。當(dāng)計數(shù)樣本數(shù)超過閾值數(shù)T1時,程序從步驟609-2進入步驟609-3。否則,程序從步驟609-2返回塊601內(nèi)的步驟601-1。
在第三系數(shù)控制塊609內(nèi),步驟609-3將抽頭長度(用于系數(shù)更新步驟602和自適應(yīng)濾波步驟603)返回原始值M0。步驟609-4在步驟609-3之后。步驟609-4初始化系數(shù)更新步驟602所用的內(nèi)部系數(shù)和自適應(yīng)濾波步驟603所用的系數(shù)。步驟609-5在步驟609-4之后,步驟609-5將計數(shù)樣本數(shù)復(fù)位為零。在步驟609-5之后,程序返回塊601內(nèi)的步驟601-1。
如上所述,抽頭長度可以在原始值M0與較小值M1之間改變。按照這種設(shè)計,回聲抵消器可以快速跟隨回聲產(chǎn)生條件的變化。
第四實施例圖12示出了按照本發(fā)明第四實施例,它除了下述設(shè)計變化以外與第一實施例類似。本發(fā)明第四實施例包括DSP20C代替DSP20(參見圖2)。
DSP20C包括輸入/輸出端口的組合、處理部分、ROM和RAM。DSP20C按照存儲在ROM內(nèi)的控制程序工作。按照控制程序,DSP20C構(gòu)成響應(yīng)數(shù)字遠端信號x(n)并將回聲分量從A/D轉(zhuǎn)換器24輸出信號中去除的回聲抵消器。DSP20C產(chǎn)生數(shù)字無回聲信號作為數(shù)字誤差信號e2(n)。數(shù)字遠端信號x(n)包含樣本序列。而且數(shù)字誤差信號e2(n)具有樣本序列。這里“n”表示當(dāng)前樣本。DSP20C輸出向遠端側(cè)發(fā)送的數(shù)字誤差信號e2(n)。
圖13示出的更象是DSP20C的操作流程圖而非DSP20C硬件細節(jié)。參見圖13,DSP20C編程為構(gòu)成更新部分701、數(shù)字自適應(yīng)濾波器702、數(shù)字主濾波器703、判斷部分704、控制部分705和減法器717和719。
自適應(yīng)濾波器702構(gòu)成后臺濾波器,其工作特性由系數(shù)(抽頭系數(shù))確定。更新部分701根據(jù)預(yù)定算法(例如NLMS算法、FRLS算法或者基于另一最小平方法算法)更新自適應(yīng)濾波器702的系數(shù)以響應(yīng)誤差信號e1(n)和遠端信號x(n)。更新部分701具有作為產(chǎn)生自適應(yīng)濾波器702系數(shù)的基礎(chǔ)的內(nèi)部系數(shù)(內(nèi)部抽頭系數(shù))。更新部分701和自適應(yīng)濾波器702協(xié)同識別或估計回聲路徑,并且產(chǎn)生第一偽回聲信號y1(n)以響應(yīng)遠端信號x(n)和誤差信號e1(n)。減法器717產(chǎn)生作為回聲信號d(n)與第一偽回聲信號y1(n)的差值的誤差信號e1(n)。數(shù)字回聲信號d(n)包含樣本序列。
主濾波器703構(gòu)成前臺濾波器,其工作特性由系數(shù)(抽頭系數(shù))確定。主濾波器703產(chǎn)生第二偽回聲信號y2(n)以響應(yīng)遠端信號x(n)。第二偽回聲信號y2(n)設(shè)計為抵消返回遠端側(cè)的回聲信號d(n)。判斷部分704周期性地判斷系數(shù)是否應(yīng)該從自適應(yīng)濾波器702傳送至主濾波器703,具體而言即是否滿足預(yù)定條件。判斷部分704作出判斷的周期等于遠端信號x(n)的一個樣本。判斷部分704作出判斷的周期可以等于另一預(yù)定數(shù)值。判斷部分704所用預(yù)定條件涉及誤差信號e1(n)與誤差信號e2(n)之比、誤差信號e1(n)與誤差信號e2(n)之差和第一偽回聲信號y1(n)與回聲信號d(n)之間的相關(guān)值。預(yù)定條件的典型例子是誤差信號e1(n)小于回聲信號d(n)某一水平以上和誤差信號e1(n)是否小于誤差信號e2(n)。如果判斷部分704判斷預(yù)定條件滿足,則判斷部分704將系數(shù)從自適應(yīng)濾波器702傳送至主濾波器703。因此,在這種情況下,主濾波器703根據(jù)新傳送的系數(shù)產(chǎn)生第二偽回聲信號y2(n)。減法器719產(chǎn)生作為回聲信號d(n)與第二偽回聲信號y2(n)之差的誤差信號e2(n)。誤差信號e2(n)作為無回聲信號被送至遠端側(cè)。另一方面,如果判斷部分704判斷不滿足預(yù)定條件,則判斷部分704不執(zhí)行系數(shù)從自適應(yīng)濾波器702至主濾波器703的傳送。判斷部分704將判斷結(jié)果通知控制部分。
控制部分705根據(jù)回聲信號d(n)和誤差信號e2(n)判斷更新部分701內(nèi)的內(nèi)部系數(shù)(內(nèi)部抽頭系數(shù))和自適應(yīng)濾波器702內(nèi)的系數(shù)是否應(yīng)該初始化??刂茐K705包括計算部分706、存儲部分707、減法部分708和比較部分709。
在控制塊705中,計算部分706按照下列方程從當(dāng)前和前一回聲信號d(n)和誤差信號e2(n)的樣本計算ERLE(回聲返回損失增強)值ERLE(n)。
ERLE(n)=10*log10(Ad/Ae)…(1)Ad=Σi=0N{d(n-i)}2···(2)]]>Ae=Σi=0N{e2(n-i)}2···(3)]]>計算值ERLE(n)對應(yīng)當(dāng)前樣本。計算部分706將當(dāng)前計算值ERLE(n)通知給存儲部分707和減法部分708。存儲部分707暫時存儲計算值ERLE(n)。存儲部分707向減法部分708輸送作為前一計算值ERLE(n-1)的存儲值,它對應(yīng)緊靠在當(dāng)前樣本的前一樣本。減法器708將減法結(jié)果通知比較部分709。比較部分709將減法結(jié)果與預(yù)定正閾值“α”比較。當(dāng)減法結(jié)果大于閾值“α”時,比較部分709判斷更新部分701內(nèi)的內(nèi)部系數(shù)和自適應(yīng)濾波器702內(nèi)的系數(shù)應(yīng)該初始化。在這種情況下,比較部分709執(zhí)行更新部分701內(nèi)內(nèi)部系數(shù)和自適應(yīng)濾波器702內(nèi)系數(shù)的初始化。計算的ERLE值的劇烈下降導(dǎo)致減法結(jié)果超過閾值“α”。另一方面,當(dāng)減法結(jié)果未超過閾值“α”時,比較部分709判斷更新部分701內(nèi)的內(nèi)部系數(shù)和自適應(yīng)濾波器702內(nèi)的系數(shù)應(yīng)該初始化。在這種情況下,比較部分709不執(zhí)行初始化。
圖14為DSP20C控制程序段的流程圖。通常情況下,對于遠端信號x(n)和回聲信號d(n)的每個樣本都執(zhí)行程序段。如圖14所示,程序段的第一步驟801根據(jù)預(yù)定算法(例如NLMS算法、FRLS算法或基于最小平方法的算法)更新自適應(yīng)濾波器內(nèi)的系數(shù)(抽頭系數(shù))以響應(yīng)誤差信號e1(n)和遠端信號x(n)。步驟801將內(nèi)部系數(shù)(內(nèi)部抽頭系數(shù))用作產(chǎn)生自適應(yīng)濾波器內(nèi)系數(shù)的基礎(chǔ)。
步驟801后面的步驟802根據(jù)步驟801更新的系數(shù)執(zhí)行自適應(yīng)濾波過程,從而產(chǎn)生第一偽回聲信號y1(n)以響應(yīng)遠端信號x(n)和誤差信號e1(n)。此外,步驟802產(chǎn)生作為回聲信號d(n)與第一偽回聲信號y1(n)之差的誤差信號e1(n)。
步驟802之后的步驟803根據(jù)系數(shù)(抽頭系數(shù))執(zhí)行主濾波過程,并且產(chǎn)生第二偽回聲信號y2(n)以響應(yīng)遠端信號x(n)。此外,步驟803產(chǎn)生作為回聲信號d(n)與第二偽回聲信號y2(n)之差的誤差信號e2(n)。步驟803向遠端側(cè)輸出誤差信號e2(n)作為無回聲信號。
控制塊804包括步驟804-1、804-2和804-3。步驟804-1跟隨步驟803之后。步驟804-1按照上述方程(1)、(2)和(3)從當(dāng)前和前一回聲信號d(n)和誤差信號e2(n)的樣本計算ERLE(回聲返回損失增強)值ERLE(n)。計算值ERLE(n)對應(yīng)本樣本。步驟804-1將計算值ERLE(n)存入DSP20C內(nèi)的RAM中。
在控制塊804內(nèi),步驟804-2在步驟804-1之后。步驟804-2從DSP20C內(nèi)的RAM中讀取前一計算值ERLE(n),它在程序段緊接在前面的執(zhí)行周期內(nèi)被存儲下來。步驟804-2將當(dāng)前計算值ERLE(n)從前一計算值ERLE(n-1)中減去。步驟804-2將減法結(jié)果與預(yù)定正閾值“α”比較。當(dāng)減法結(jié)果大于閾值“α”時,步驟804-2判斷更新部分801所用內(nèi)部系數(shù)和自適應(yīng)濾波器802所用系數(shù)應(yīng)該初始化。在這種情況下,程序從步驟804-2進入步驟804-3。另一方面,當(dāng)減法結(jié)果未超過閾值“α”時,步驟804-2判斷更新部分801所用內(nèi)部系數(shù)和自適應(yīng)濾波器802所用系數(shù)不應(yīng)該初始化。在這種情況下,程序從步驟804-2進入步驟805。
在控制塊804內(nèi),步驟804-3初始化系數(shù)更新步驟801所用系數(shù)和自適應(yīng)濾波步驟802所用系數(shù)。在步驟804-3之后,程序進入步驟805。
步驟805周期性地判斷系數(shù)是否應(yīng)該從自適應(yīng)濾波步驟802傳送至主濾波步驟803,具體而言即是否滿足預(yù)定條件。步驟805作出判斷的周期等于遠端信號x(n)的一個樣本。步驟805作出判斷的周期可以等于另一預(yù)定數(shù)值。步驟805所用預(yù)定條件涉及誤差信號e1(n)與誤差信號e2(n)之比、誤差信號e1(n)與誤差信號e2(n)之差和第一偽回聲信號y1(n)與回聲信號d(n)之間的相關(guān)值中的至少一個。預(yù)定條件的典型例子是誤差信號e1(n)小于回聲信號d(n)某一水平以上和誤差信號e1(n)是否小于誤差信號e2(n)。當(dāng)步驟805判斷預(yù)定條件滿足,則程序從步驟805進入步驟806。否則程序從步驟805返回步驟801。
步驟806將系數(shù)從自適應(yīng)濾波步驟802傳送至主濾波步驟803。因此,在這種情況下,主濾波步驟803在程序段下一執(zhí)行周期內(nèi)根據(jù)新傳送的系數(shù)產(chǎn)生第二偽回聲信號y2(n)。在步驟806之后,程序返回步驟801。
第五實施例圖15示出了按照本發(fā)明第五實施例,它除了下述設(shè)計變化以外與第一實施例類似。本發(fā)明第五實施例包括DSP20D代替DSP20(參見圖2)。
DSP20D包括輸入/輸出端口的組合、處理部分、ROM和RAM。DSP20D按照存儲在ROM內(nèi)的控制程序工作。按照控制程序,DSP20D構(gòu)成響應(yīng)數(shù)字遠端信號x(n)并將回聲分量從A/D轉(zhuǎn)換器24輸出信號中去除的回聲抵消器。DSP20D產(chǎn)生數(shù)字無回聲信號作為數(shù)字誤差信號e2(n)。數(shù)字遠端信號x(n)包含樣本序列。而且數(shù)字誤差信號e2(n)具有樣本序列。這里“n”表示當(dāng)前樣本。DSP20D輸出向遠端側(cè)發(fā)送的數(shù)字誤差信號e2(n)。
圖16示出的更象是DSP20D的操作流程圖而非DSP20D硬件細節(jié)。參見圖16,DSP20D編程為構(gòu)成更新部分901、數(shù)字自適應(yīng)濾波器902、數(shù)字主濾波器903、判斷部分904、控制部分905和減法器917和919。
自適應(yīng)濾波器902構(gòu)成后臺濾波器,其工作特性由系數(shù)(抽頭系數(shù))確定。更新部分901根據(jù)預(yù)定算法(例如NLMS算法、FRLS算法或者基于另一最小平方法算法)更新自適應(yīng)濾波器902的系數(shù)以響應(yīng)誤差信號e1(n)和遠端信號x(n)。更新部分901具有作為產(chǎn)生自適應(yīng)濾波器902內(nèi)系數(shù)的基礎(chǔ)的內(nèi)部系數(shù)(內(nèi)部抽頭系數(shù))。更新部分901和自適應(yīng)濾波器902協(xié)同識別或估計回聲路徑,并且產(chǎn)生第一偽回聲信號y1(n)以響應(yīng)遠端信號x(n)和誤差信號e1(n)。減法器917產(chǎn)生作為回聲信號d(n)與第一偽回聲信號y1(n)的差值的誤差信號e1(n)。數(shù)字回聲信號d(n)包含樣本序列。
主濾波器903構(gòu)成前臺濾波器,其工作特性由系數(shù)(抽頭系數(shù))確定。主濾波器903產(chǎn)生第二偽回聲信號y2(n)以響應(yīng)遠端信號x(n)。第二偽回聲信號y2(n)設(shè)計為抵消返回遠端側(cè)的回聲信號d(n)。判斷部分904周期性地判斷系數(shù)是否應(yīng)該從自適應(yīng)濾波器902傳送至主濾波器903,具體而言即是否滿足預(yù)定條件。判斷部分904作出判斷的周期等于遠端信號x(n)的一個樣本。判斷部分904作出判斷的周期可以等于另一預(yù)定數(shù)值。判斷部分904所用預(yù)定條件涉及誤差信號e1(n)與誤差信號e2(n)之比、誤差信號e1(n)與誤差信號e2(n)之差和第一偽回聲信號y1(n)與回聲信號d(n)之間的相關(guān)值。預(yù)定條件的典型例子是誤差信號e1(n)小于回聲信號d(n)某一水平以上和誤差信號e1(n)是否小于誤差信號e2(n)。如果判斷部分904判斷預(yù)定條件滿足,則判斷部分904將系數(shù)從自適應(yīng)濾波器902傳送至主濾波器903。因此,在這種情況下,主濾波器903根據(jù)新傳送的系數(shù)產(chǎn)生第二偽回聲信號y2(n)。減法器919產(chǎn)生作為回聲信號d(n)與第二偽回聲信號y2(n)之差的誤差信號e2(n)。誤差信號e2(n)作為無回聲信號被送至遠端側(cè)。另一方面,如果判斷部分904判斷不滿足預(yù)定條件,則判斷部分904不執(zhí)行系數(shù)從自適應(yīng)濾波器902至主濾波器903的傳送。
控制部分905根據(jù)回聲信號d(n)和誤差信號e2(n)判斷更新部分901內(nèi)的內(nèi)部系數(shù)(內(nèi)部抽頭系數(shù))和自適應(yīng)濾波器902內(nèi)的系數(shù)是否應(yīng)該初始化??刂茐K905包括計算部分906、存儲部分907、比較部分908以及存儲/判斷部分909。
在控制塊905中,計算部分906按照上述方程(1)、(2)和(3)從當(dāng)前和前一回聲信號d(n)和誤差信號e2(n)的樣本計算ERLE(回聲返回損失增強)值ERLE(n)。計算值ERLE(n)對應(yīng)當(dāng)前樣本。計算部分906將當(dāng)前計算值ERLE(n)通知給存儲部分907和減法部分908。存儲部分907暫時存儲計算值ERLE(n)。存儲部分907向比較部分908輸送作為前一計算值ERLE(n-1)的存儲值,它對應(yīng)緊靠在當(dāng)前樣本的前一樣本。比較部分908將當(dāng)前計算值ERLE(n)與前一計算值ERLE(n-1)進行比較。具體而言,比較部分908判斷當(dāng)前計算值ERLE(n)是否小于前一計算值ERLE(n-1),即是否ERLE(n)<ERLE(n-1)。比較部分908將判斷結(jié)果(比較結(jié)果)通知存儲/判斷部分909。從當(dāng)前樣本開始的連續(xù)預(yù)定數(shù)量“m”個樣本的比較結(jié)果存儲在存儲/判斷部分909內(nèi)。存儲/判斷部分909判斷是否所有存儲的比較結(jié)果(所有的存儲判斷結(jié)果)都為正,即是否滿足下列關(guān)系。
ERLE(n)<ERLE(n-1)<ERLE(n-2)<…<ERLE(n-m+1)…(4)關(guān)系式(4)意味著計算的ERLE值持續(xù)預(yù)定數(shù)量“m”個連續(xù)樣本減小。當(dāng)滿足關(guān)系式(4)時,存儲/判斷部分909判斷更新部分901內(nèi)的內(nèi)部系數(shù)和自適應(yīng)濾波器902內(nèi)的系數(shù)應(yīng)該初始化。在這種情況下,存儲/判斷部分909執(zhí)行更新部分901內(nèi)內(nèi)部系數(shù)和自適應(yīng)濾波器902內(nèi)系數(shù)的初始化。另一方面,當(dāng)不滿足關(guān)系式(4)時,存儲/判斷部分909判斷更新部分901內(nèi)的內(nèi)部系數(shù)和自適應(yīng)濾波器902內(nèi)的系數(shù)不應(yīng)該初始化。在這種情況下,存儲/判斷部分909不執(zhí)行初始化。
圖17為DSP20D控制程序段的流程圖。通常情況下,對于遠端信號x(n)和回聲信號d(n)的每個樣本都執(zhí)行程序段。如圖17所示,程序段的第一步驟1001根據(jù)預(yù)定算法(例如NLMS算法、FRLS算法或基于最小平方法的算法)更新自適應(yīng)濾波器內(nèi)的系數(shù)(抽頭系數(shù))以響應(yīng)誤差信號e1(n)和遠端信號x(n)。步驟1001將內(nèi)部系數(shù)(內(nèi)部抽頭系數(shù))用作產(chǎn)生自適應(yīng)濾波器內(nèi)系數(shù)的基礎(chǔ)。
步驟1001后面的步驟1002根據(jù)步驟1001更新的系數(shù)執(zhí)行自適應(yīng)濾波過程,從而產(chǎn)生第一偽回聲信號y1(n)以響應(yīng)遠端信號x(n)和誤差信號e1(n)。此外,步驟1002產(chǎn)生作為回聲信號d(n)與第一偽回聲信號y1(n)之差的誤差信號e1(n)。
步驟1002之后的步驟1003根據(jù)系數(shù)(抽頭系數(shù))執(zhí)行主濾波過程,并且產(chǎn)生第二偽回聲信號y2(n)以響應(yīng)遠端信號x(n)。此外,步驟1003產(chǎn)生作為回聲信號d(n)與第二偽回聲信號y2(n)之差的誤差信號e2(n)。步驟1003向遠端側(cè)輸出誤差信號e2(n)作為無回聲信號。
控制塊1004包括步驟1004-1、1004-2(n)、1004-2(n-1)…和1004-2(n-m+2)和1004-3。步驟1004-1跟隨步驟1003之后。步驟1004-1按照上述方程(1)、(2)和(3)從當(dāng)前和前一回聲信號d(n)和誤差信號e2(n)的樣本計算ERLE(回聲返回損失增強)值ERLE(n)。計算值ERLE(n)對應(yīng)本樣本。步驟804-1將計算值ERLE(n)存入DSP20D內(nèi)的RAM中。
在控制塊1004內(nèi),步驟1004-2(n)在步驟1004-1之后。步驟1004-2(n)從DSP20D內(nèi)的RAM中讀取當(dāng)前計算值ERLE(n)和前一計算值ERLE(n-1)。步驟1004-2(n)判斷當(dāng)前計算值ERLE(n)是否小于前一計算值ERLE(n-1),即是否ERLE(n)<ERLE(n-1)。當(dāng)ERLE(n)<ERLE(n-1)。時,程序從步驟1004-2(n)進入步驟1004-2(n-1)。否則,程序從步驟1004-2(n)進入步驟1005。
在控制塊1004內(nèi),步驟1004-2(n)后連續(xù)跟隨步驟1004-2(n-1)、…、1004-2(n-m+2)。步驟1004-2(n-1)、…1004-2(n-m+2)的功能與步驟1004-2(n)基本相同。例如步驟1004-2(n-1)判斷是否ERLE(n-1)<ERLE(n-2)。當(dāng)ERLE(n-1)<ERLE(n-2)時,程序從步驟1004-2(n-1)進入步驟1004-2(n-2)。否則程序從步驟1004-2(n-1)進入步驟1005。例如步驟1004-2(n-m+2)判斷是否ERLE(n-m+2)<ERLE(n-m+1)。當(dāng)ERLE(n-m+2)<ERLE(n-m+1)時,程序從步驟1004-2(n-m+2)進入步驟1004-2(n-2)。否則程序從步驟1004-2(n-m+2)進入步驟1005。
在控制塊1004內(nèi),步驟1004-3判斷更新步驟1001所用系數(shù)和自適應(yīng)濾波步驟1002所用系數(shù)是否應(yīng)該初始化。步驟1004-3執(zhí)行系數(shù)更新步驟1001所用的內(nèi)部系數(shù)和自適應(yīng)濾波步驟1002所用系數(shù)的初始化。在步驟1004-3之后,程序進入步驟1005。
步驟1005周期性地判斷系數(shù)是否應(yīng)該從自適應(yīng)濾波步驟802傳送至主濾波步驟1003,具體而言即是否滿足預(yù)定條件。步驟1005作出判斷的周期等于遠端信號x(n)的一個樣本。步驟1005作出判斷的周期可以等于另一預(yù)定數(shù)值。步驟1005所用預(yù)定條件涉及誤差信號e1(n)與誤差信號e2(n)之比、誤差信號e1(n)與誤差信號e2(n)之差和第一偽回聲信號y1(n)與回聲信號d(n)之間的相關(guān)值中的至少一個。預(yù)定條件的典型例子是誤差信號e1(n)小于回聲信號d(n)某一水平以上和誤差信號e1(n)是否小于誤差信號e2(n)。當(dāng)步驟1005判斷預(yù)定條件滿足,則程序從步驟1005進入步驟1006。否則程序從步驟1005返回步驟1001。
步驟1006將系數(shù)從自適應(yīng)濾波步驟1002傳送至主濾波步驟1003。因此,在這種情況下,主濾波步驟1003在程序段下一執(zhí)行周期內(nèi)根據(jù)新傳送的系數(shù)產(chǎn)生第二偽回聲信號y2(n)。在步驟1006之后,程序返回步驟1001。
權(quán)利要求
1.一種回聲抵消方法,其特征在于包括以下步驟對遠端信號和誤差信號響應(yīng)利用內(nèi)部系數(shù)更新自適應(yīng)濾波器的系數(shù),自適應(yīng)濾波器和內(nèi)部系數(shù)具有抽頭(tap)長度;提供自適應(yīng)濾波器以響應(yīng)遠端信號產(chǎn)生第一偽回聲信號;提供主濾波器以響應(yīng)遠端信號產(chǎn)生第二偽回聲信號;判斷更新步驟中的自適應(yīng)濾波器系數(shù)和內(nèi)部系數(shù)是否應(yīng)該初始化;如果判斷更新步驟中的自適應(yīng)濾波器系數(shù)和內(nèi)部系數(shù)應(yīng)該初始化,則將自適應(yīng)濾波器的抽頭長度和更新步長設(shè)定為小于原始值的非原始值,并且在更新步驟內(nèi)執(zhí)行自適應(yīng)濾波器系數(shù)和內(nèi)部系數(shù)的初始化;判斷自適應(yīng)濾波器的系數(shù)是否應(yīng)該傳送至主濾波器;如果判斷自適應(yīng)濾波器的系數(shù)應(yīng)該傳送至主濾波器,則將自適應(yīng)濾波器的系數(shù)傳送至主濾波器;以及如果是在自適應(yīng)濾波器的抽頭長度和更新步長設(shè)定為非原始值之后執(zhí)行自適應(yīng)濾波器的系數(shù)至主濾波器的傳送,則將自適應(yīng)濾波器的抽頭長度和更新步長設(shè)定為原始值,并且隨后在更新步驟中執(zhí)行自適應(yīng)濾波器系數(shù)和內(nèi)部系數(shù)的初始化。
2.如權(quán)利要求1所述的方法,其特征在于進一步包括以下步驟將遠端信號分割為子帶信號;將回聲信號分割為子帶信號;對于各子帶信號,響應(yīng)遠端信號的子帶信號分別產(chǎn)生第二子帶偽回聲信號;分別產(chǎn)生對應(yīng)回聲信號的子帶信號與第二子帶偽回聲信號之間差異的子帶誤差信號;以及將各子帶誤差信號組合成全帶誤差信號;其中對每個子帶信號施行回聲抵消。
3.如權(quán)利要求1所述的方法,其特征在于進一步包括以下步驟如果在將自適應(yīng)濾波器的抽頭長度和更新步長設(shè)定為非原始值之后預(yù)定時間內(nèi)未執(zhí)行自適應(yīng)濾波器系數(shù)傳送至主濾波器,則使自適應(yīng)濾波器的抽頭長度和更新步長返回原始值。
4.一種初始化回聲抵消器中系數(shù)的方法,其特征在于包括以下步驟對于每個樣本計算回聲信號與主濾波器產(chǎn)生的誤差信號之間功率的ERLE(回聲返回損失增強)比率;計算當(dāng)前樣本與緊靠其前樣本的ERLE比率之差;以及如果計算的差值大于預(yù)定閾值,則初始化更新自適應(yīng)濾波器中所用的自適應(yīng)濾波器系數(shù)和內(nèi)部系數(shù)。
5.一種初始化回聲抵消器中系數(shù)的方法,其特征在于包括以下步驟對于每個樣本計算回聲信號與主濾波器產(chǎn)生的誤差信號之間功率的ERLE(回聲返回損失增強)比率;以及如果計算的連續(xù)多個樣本的ERLE比率繼續(xù)跌落,則初始化更新自適應(yīng)濾波器中所用的自適應(yīng)濾波器系數(shù)和內(nèi)部系數(shù)。
6.如權(quán)利要求1所述的方法,其特征在于執(zhí)行初始化的步驟包括以下步驟對于每個樣本計算回聲信號與主濾波器產(chǎn)生的誤差信號之間功率的ERLE(回聲返回損失增強)比率;計算當(dāng)前樣本與緊靠其前樣本的ERLE比率之差;以及如果計算的差值大于預(yù)定閾值,則初始化更新步驟中所用的自適應(yīng)濾波器系數(shù)和內(nèi)部系數(shù)。
7.如權(quán)利要求1所述的方法,其特征在于初始化步驟包括以下步驟對于每個樣本計算回聲信號與第二偽誤差信號之間功率的ERLE(回聲返回損失增強)比率;以及如果計算的連續(xù)多個樣本的ERLE比率繼續(xù)跌落,則初始化更新步驟中所用的自適應(yīng)濾波器系數(shù)和內(nèi)部系數(shù)。
8.如權(quán)利要求1所述的方法,其特征在于更新步驟采用最小平方法的系數(shù)更新算法。
9.一種回聲抵消裝置,其特征在于包括對遠端信號和誤差信號響應(yīng)利用內(nèi)部系數(shù)更新自適應(yīng)濾波器的系數(shù)的裝置,自適應(yīng)濾波器和內(nèi)部系數(shù)具有一抽頭長度;提供自適應(yīng)濾波器以響應(yīng)遠端信號產(chǎn)生第一偽回聲信號的裝置;提供主濾波器以響應(yīng)遠端信號產(chǎn)生第二偽回聲信號的裝置;判斷更新方法中的自適應(yīng)濾波器系數(shù)和內(nèi)部系數(shù)是否應(yīng)該初始化的裝置;如果判斷更新方法中的自適應(yīng)濾波器系數(shù)和內(nèi)部系數(shù)應(yīng)該初始化,則將自適應(yīng)濾波器的抽頭長度和更新方法設(shè)定為小于原始值的非原始值,并且在更新方法內(nèi)執(zhí)行自適應(yīng)濾波器系數(shù)和內(nèi)部系數(shù)的初始化的裝置;判斷自適應(yīng)濾波器的系數(shù)是否應(yīng)該傳送至主濾波器的裝置;如果判斷自適應(yīng)濾波器的系數(shù)應(yīng)該傳送至主濾波器,則將自適應(yīng)濾波器的系數(shù)傳送至主濾波器的裝置;以及如果是在自適應(yīng)濾波器的抽頭長度和更新方法設(shè)定為非原始值之后執(zhí)行自適應(yīng)濾波器的系數(shù)至主濾波器的傳送,則將自適應(yīng)濾波器的抽頭長度和更新方法設(shè)定為原始值,并且隨后在更新方法中執(zhí)行自適應(yīng)濾波器系數(shù)和內(nèi)部系數(shù)的初始化的裝置。
10.如權(quán)利要求9所述的裝置,其特征在于進一步包括將遠端信號分割為子帶信號的裝置;將回聲信號分割為子帶信號的裝置;對各子帶信號,響應(yīng)遠端信號的子帶信號分別產(chǎn)生第二子帶偽回聲信號的裝置;分別產(chǎn)生對應(yīng)回聲信號的子帶信號與第二子帶偽回聲信號之間差異的子帶誤差信號的裝置;以及將各子帶誤差信號組合成全帶誤差信號的裝置;其中對每個子帶信號施行回聲抵消。
11.如權(quán)利要求9所述的裝置,其特征在于進一步包括如果在將自適應(yīng)濾波器的抽頭長度和更新方法設(shè)定為非原始值之后預(yù)定時間內(nèi)未執(zhí)行自適應(yīng)濾波器系數(shù)傳送至主濾波器,則使自適應(yīng)濾波器的抽頭長度和更新方法返回原始值的裝置。
12.一種初始化回聲抵消器中系數(shù)的裝置,其特征在于包括對于每個樣本計算回聲信號與主濾波器產(chǎn)生的誤差信號之間功率的ERLE(回聲返回損失增強)比率的裝置;計算當(dāng)前樣本與緊靠其前樣本的ERLE比率之差的裝置;以及如果計算的差值大于預(yù)定閾值,則初始化更新自適應(yīng)濾波器中所用的自適應(yīng)濾波器系數(shù)和內(nèi)部系數(shù)的裝置。
13.一種初始化回聲抵消器中系數(shù)的裝置,其特征在于包括對于每個樣本計算回聲信號與主濾波器產(chǎn)生的誤差信號之間功率的ERLE(回聲返回損失增強)比率的裝置;以及如果計算的連續(xù)多個樣本的ERLE比率繼續(xù)跌落,則初始化更新自適應(yīng)濾波器中所用的自適應(yīng)濾波器系數(shù)和內(nèi)部系數(shù)的裝置。
14.如權(quán)利要求9所述的裝置,其特征在于執(zhí)行初始化的裝置包括對于每個樣本計算回聲信號與主濾波器產(chǎn)生的誤差信號之間功率的ERLE(回聲返回損失增強)比率的裝置;計算當(dāng)前樣本與緊靠其前樣本的ERLE比率之差的裝置;以及如果計算的差值大于預(yù)定閾值,則初始化更新方法中所用的自適應(yīng)濾波器系數(shù)和內(nèi)部系數(shù)的裝置。
15.如權(quán)利要求9所述的裝置,其特征在于執(zhí)行初始化的裝置包括對于每個樣本計算回聲信號與主濾波器產(chǎn)生的誤差信號之間功率的ERLE(回聲返回損失增強)比率的裝置;以及如果計算的連續(xù)多個樣本的ERLE比率繼續(xù)跌落,則初始化更新方法中所用的自適應(yīng)濾波器系數(shù)和內(nèi)部系數(shù)的裝置。
16.如權(quán)利要求9所述的裝置,其特征在于更新裝置采用最小平方法的系數(shù)更新算法。
17.一種記錄介質(zhì),其特征在于存儲了實現(xiàn)如權(quán)利要求1-8中任意一項所述方法的程序。
全文摘要
一種回聲抵消方法,包括以下步驟:利用內(nèi)部系數(shù)更新自適應(yīng)濾波器的系數(shù);提供自適應(yīng)濾波器;提供主濾波器;判斷更新步驟中的自適應(yīng)濾波器系數(shù)和內(nèi)部系數(shù)是否應(yīng)初始化;如果應(yīng)初始化,則將其抽頭長度設(shè)定為小于原始值的非原始值,并且執(zhí)行初始化;判斷自適應(yīng)濾波器的系數(shù)是否應(yīng)該傳送至主濾波器;如果判斷應(yīng)該傳送,則執(zhí)行傳送;以及如果是在抽頭長度設(shè)定為非原始值之后未執(zhí)行傳送,則將抽頭長度設(shè)定為原始值,并且隨后執(zhí)行初始化。
文檔編號H04M9/08GK1292617SQ0011999
公開日2001年4月25日 申請日期2000年6月30日 優(yōu)先權(quán)日1999年7月1日
發(fā)明者寺田泰宏 申請人:松下電器產(chǎn)業(yè)株式會社
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1