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