python 回声程序_一种回声消除系统及回音消除方法与流程
本發(fā)明涉及通信技術(shù)領(lǐng)域,具體涉及一種回聲消除系統(tǒng)及回音消除方法。
背景技術(shù):
回聲消除器通常由濾波器和算法組成,根據(jù)具體應(yīng)用和性能要求的不同可以有多種選擇。
濾波器有FIR(有限長(zhǎng)度沖激晌應(yīng))濾波器和IIR(無限長(zhǎng)度沖激響應(yīng))濾波器兩種,在系數(shù)個(gè)數(shù)相同的條件下,IIR濾波器比FIR濾波器可以獲得更好收斂性,但是IIR濾波器存在穩(wěn)定性問題,因此實(shí)際中一般選用FIR濾波器。
回聲消除的基本原理是用一個(gè)自適應(yīng)濾波器模擬回聲路徑,通過調(diào)整自適應(yīng)濾波器預(yù)測(cè)的回聲路徑,仗其沖激響應(yīng)與實(shí)際回聲路徑相逼近,從而得到回聲預(yù)測(cè)信號(hào),再將預(yù)測(cè)信號(hào)從話筒〈近端)采樣的語音信號(hào)中減去.即可實(shí)現(xiàn)回聲消除。
由于回聲是一個(gè)連續(xù)變量,所以根據(jù)上一次誤差調(diào)整系數(shù)來對(duì)下一次回聲估計(jì)的方法,可以有效地達(dá)到盡量使得估計(jì)值接近實(shí)際回聲值的效果。
雖然許多自適應(yīng)算法理論上用于實(shí)現(xiàn)回聲抵消都是可行的,但在大多數(shù)情況下,簡(jiǎn)單、穩(wěn)健的算法比復(fù)雜的算法更可取。
因此,如何減少算法的計(jì)算復(fù)雜度,盡可能地降低算法計(jì)算量,是本領(lǐng)域技術(shù)人員一直需要考慮解決的問題。
技術(shù)實(shí)現(xiàn)要素:
為了克服背景技術(shù)的不足,本發(fā)明提供一種回聲消除系統(tǒng)及回音消除方法。
本發(fā)明所采用的技術(shù)方案:一種回聲消除系統(tǒng),包括
信號(hào)采集單元,用于獲取當(dāng)前時(shí)刻的近端信號(hào)s(i)和遠(yuǎn)端信號(hào)y(i);
直流偏離去除單元,用于去除近端信號(hào)s(i)的直流偏量,其去除直流偏量的計(jì)算公式為:
其中,γ表示濾波,sdC(i)表示近端輸入樣本的線性表示;
回聲信號(hào)估計(jì)單元,用于計(jì)算估計(jì)回聲信號(hào)回聲信號(hào)的估算公式為:其中,αk為誤差調(diào)整系數(shù),K為采樣項(xiàng);
近端輸出信號(hào)計(jì)算單元,用于計(jì)算近端輸出信號(hào)u(i),近端輸出信號(hào)的計(jì)算公式為:
誤差量計(jì)算單元,用于計(jì)算誤差量e(i),誤差量的計(jì)算公式為:r(i)為實(shí)際回聲;
信號(hào)更新單元,用于更新遠(yuǎn)端信號(hào)y(i)和近端輸出信號(hào)u(i),并歸一化近端輸出信號(hào)u(i);
系數(shù)更新單元,用于更新誤差調(diào)整系數(shù),其計(jì)算公式為:其中,Ly(i)為y(i)絕對(duì)值的長(zhǎng)期平均值,β1為步長(zhǎng)常數(shù)的折中值,M為塊長(zhǎng)度。
所述直流偏離去除單元為高通濾波器,該高通濾波器為一階濾波器,頻率為3dB,頻率為160Hz。
一種回音消除方法,具體包括如下步驟:
a.獲取近端信號(hào)s(i)和遠(yuǎn)端信號(hào)y(i),其中i表示當(dāng)前瞬時(shí);
b.對(duì)近端信號(hào)s(i)通過高通濾波器以去除任何殘余的直流偏移量,其計(jì)算公式為:
其中,γ表示濾波,sdC(i)表示近端輸入樣本的線性表示;
c.通過FIR濾波器程序,計(jì)算估計(jì)回聲信號(hào)其計(jì)算公式為:其中,αk為誤差調(diào)整系數(shù),K為采樣項(xiàng);
d.計(jì)算近端輸出信號(hào)u(i),其計(jì)算公式為:
e.計(jì)算誤差量e(i),其計(jì)算公式為:其中,r(i)為實(shí)際回聲;
f.更新估算遠(yuǎn)端信號(hào)y(i)和近端輸出信號(hào)u(i),歸一化近端輸出信號(hào)u(i);
g.更新FIR濾波器系數(shù)αk,其計(jì)算公式為:
其中,Ly(i)為y(i)絕對(duì)值的長(zhǎng)期平均值,β1為步長(zhǎng)常數(shù)的折中值,M為塊長(zhǎng)度。
采用高通濾波器對(duì)近端信號(hào)s(i)進(jìn)行直流偏量去除,高通濾波器為一階濾波器,γ為一階濾波,γ=2^(-3)。
所述塊長(zhǎng)度取16,即M=16。
所述采樣項(xiàng)取128,即K=128。
步驟e中,采用閉環(huán)系數(shù)自適應(yīng)算法來最小化回波與其復(fù)制品之間的平均或均方誤差e(i)。
當(dāng)近端沒有說話,s(i)近似為r(i)時(shí),才進(jìn)行FIR濾波器系數(shù)αk的更新。
本發(fā)明的有益效果是:上述方案的基本思路在于濾波器的每一個(gè)系數(shù)經(jīng)過M個(gè)輸入樣點(diǎn)才更新一次,而每輸入一個(gè)樣點(diǎn)時(shí)更新全部系數(shù)的1/M,從而大大減少了算法的計(jì)算復(fù)雜度,降低算法計(jì)算量,達(dá)到收斂速度快、穩(wěn)定性好和失調(diào)誤差小的效果。
附圖說明
圖1為本發(fā)明實(shí)施例回聲消除系統(tǒng)連接框圖。
圖2為本發(fā)明實(shí)施例回聲消除方法流程框圖。
具體實(shí)施方式
如圖1所示,一種回聲消除系統(tǒng),包括信號(hào)采集單元、直流偏離去除單元、回聲信號(hào)估計(jì)單元、近端輸出信號(hào)計(jì)算單元、誤差量計(jì)算單元、信號(hào)更新單元、系數(shù)更新單元。
所述信號(hào)采集單元用于采集獲取近端信號(hào)s(i)和遠(yuǎn)端信號(hào)y(i)。
所述直流偏離去除單元為高通濾波器,該高通濾波器為一階濾波器,頻率為3dB,頻率為160Hz,與信號(hào)采集單元連接,用于去除近端信號(hào)s(i)的直流偏量,其去除直流偏量的計(jì)算公式為:
其中,γ表示一階濾波,γ=2^(-3),sdC(i)表示近端輸入樣本的線性表示,
所述回聲信號(hào)估計(jì)單元用于計(jì)算估計(jì)回聲信號(hào)回聲信號(hào)的估算公式為:其中,αk為誤差調(diào)整系數(shù),K為采樣項(xiàng);
所述近端輸出信號(hào)計(jì)算單元用于計(jì)算近端輸出信號(hào)u(i),近端輸出信號(hào)的計(jì)算公式為:
所述誤差量計(jì)算單元用于計(jì)算誤差量e(i),誤差量的計(jì)算公式為:r(i)為實(shí)際回聲。
所述信號(hào)更新單元用于更新遠(yuǎn)端信號(hào)y(i)和近端輸出信號(hào)u(i),歸一化近端輸出信號(hào)u(i);
所述系數(shù)更新單元用于更新誤差調(diào)整系數(shù),其計(jì)算公式為:其中,Ly(i)為y(i)絕對(duì)值的長(zhǎng)期平均值,β1為步長(zhǎng)常數(shù)的折中值,M為塊長(zhǎng)度。
如圖2所示,一種回音消除方法,具體包括如下步驟:
a.獲取當(dāng)前的近端信號(hào)s(i)和遠(yuǎn)端信號(hào)y(i),其中i表示當(dāng)前瞬時(shí)時(shí)刻。
b.對(duì)近端信號(hào)s(i)通過高通濾波器以去除任何殘余的直流偏移量,高通濾波器是一階濾波器,頻率為3dB,頻率為160Hz,具體公式為:
上述公式中,,γ表示一階濾波,γ=2^(-3),sdC(i)表示近端輸入樣本的線性表示。
c.通過FIR濾波器程序,回聲信號(hào)進(jìn)行計(jì)算估計(jì),具體公式為:
其中,αk為FIR濾波器系數(shù),K為采樣項(xiàng),K的值一般為128。
d.計(jì)算近端輸出信號(hào)u(i),其具體計(jì)算公式為:
e.采用閉環(huán)系數(shù)自適應(yīng)算法來最小化回波與其復(fù)制品之間的平均或均方誤差e(i),其具體計(jì)算公式為:r(i)為實(shí)際回聲。
f.更新估算遠(yuǎn)端信號(hào)y(i)和近端輸出信號(hào)u(i),歸一化近端輸出信號(hào)u(i)。
g.更新FIR濾波器系數(shù)αk,其具體計(jì)算公式為:
其中,Ly(i)為y(i)絕對(duì)值的長(zhǎng)期平均值,β1為步長(zhǎng)常數(shù)的折中值,M為塊長(zhǎng)度,M的值一般取16。
通常實(shí)際回聲r(shí)(i)是未知的并且可能隨時(shí)間緩慢變化,因此需要閉環(huán)系數(shù)自適應(yīng)算法來使在特定的情況下才能計(jì)算,當(dāng)近端沒有說話時(shí),s(i)近似為r(i)時(shí),FIR濾波器系數(shù)αk更新。
上述方案的基本思路在于濾波器的每一個(gè)系數(shù)經(jīng)過M個(gè)輸入樣點(diǎn)才更新一次,而每輸入一個(gè)樣點(diǎn)時(shí)更新全部系數(shù)的1/M,從而大大減少了算法的計(jì)算復(fù)雜度,降低算法計(jì)算量,達(dá)到收斂速度快、穩(wěn)定性好和失調(diào)誤差小的效果。
各位技術(shù)人員須知:雖然本發(fā)明已按照上述具體實(shí)施方式做了描述,但是本發(fā)明的發(fā)明思想并不僅限于此發(fā)明,任何運(yùn)用本發(fā)明思想的改裝,都將納入本專利專利權(quán)保護(hù)范圍內(nèi)。
總結(jié)
以上是生活随笔為你收集整理的python 回声程序_一种回声消除系统及回音消除方法与流程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python画海绵宝宝_一步一步教你画章
- 下一篇: eclipse中文乱码解决_如何解决fi