基于LMS算法的回聲消除系統(tǒng)仿真研究
作者 / 于偉健1 程穎菲2 王心怡3 王建明3
本文引用地址:http://www.ex-cimer.com/article/201809/392397.htm1.西安恒飛電子科技有限公司(陜西 西安 710068)2.西安鐵路職業(yè)技術(shù)學院(陜西 西安 710014)
3.西安鐵一中學(陜西 西安 710048)
于偉健(1991),男,碩士,助理工程師,電源管理;程穎菲(1990),女,本科,講師,有源濾波;王心怡(2001),女,高中在讀;王建明(1989),男,碩士,工程師,VoIP通話。
摘要:在通信行業(yè)日漸發(fā)達的今天,回聲消除的應(yīng)用十分廣泛。常見的回聲消除方法一般有三種。一是對周圍環(huán)境進行特殊的處理,二是采用回聲隔離器,三是采用回聲抵消器。當下最熱門的三種回聲消除算法分別是維納濾波算法,最陡下降算法,LMS算法。本文基于LMS算法,應(yīng)用MATLAB進行仿真研究,并改進了LMS算法,得出更好的回聲消除系統(tǒng)。
0 引言
現(xiàn)在,各種各樣的通訊方式越來越多,極大的方便了人們的生活。然而,消除使用免提通信設(shè)備時的回聲,面臨多面挑戰(zhàn),它不僅和通信系統(tǒng)終端設(shè)備的外部環(huán)境有關(guān),還和運行通信系統(tǒng)的主機性能以及網(wǎng)絡(luò)狀況密切相關(guān)。對回聲消除進行研究,不但具有理論意義,而且還能產(chǎn)生巨大的經(jīng)濟效益。
1 回聲消除技術(shù)的基本原理
衡量聲學回聲消除質(zhì)量的指標通常有收斂時間、回聲消除抑制比、雙端通話的健壯性[1]三個參數(shù),其中收斂時間最為重要。常見的回聲消除方法一般有[2]:對周圍環(huán)境進行特殊的處理、采用回聲隔離器、采用回聲抵消器。圖1是網(wǎng)絡(luò)傳輸中經(jīng)典的聲學回聲抵消器的模型[3]。
自適應(yīng)算法通過回聲信號和濾波器輸出信號相減以后的誤差信號e(n)來調(diào)整自適應(yīng)濾波器的權(quán)值,從而使得濾波器的輸出信號更接近于回聲信號r(n)。當輸入信號的特征隨時變化或者輸入信號的特征未知時,自適應(yīng)濾波器能夠根據(jù)某種算法來自動迭代,實時更新濾波器系數(shù),跟蹤目標輸出信號,使得濾波器的輸出達到最優(yōu)化[4]。
2 回聲消除中自適應(yīng)算法的研究
2.1 LMS算法
將式(3)代入到式(1)中,就可以得到LMS算法的迭代形式為:
將最大時間常數(shù)定義成衡量LMS算法收斂速度的指標,限定步長因子的取值范圍,則能得到最大時間常數(shù)下界的表達式,為:
可見矩陣R的特征值的發(fā)散程度就可以決定LMS算法的收斂速度。當R具有相等的特征值時,就具有最為理想的收斂速度指標,然而當R的特征值的分散程度變大時,算法所對應(yīng)的性能指標將會惡化。同時式(5)表明,收斂時間常數(shù)和步長因子成反比。
(2)穩(wěn)態(tài)誤差
失調(diào)系數(shù)就是用來衡量收斂后穩(wěn)態(tài)均方誤差和維納誤差之間偏差程度的一個指標[10]。則表示LMS算法收斂時的穩(wěn)態(tài)均方誤差,而表示求得維納-霍夫(Wiener-hopf)解時的均方誤差(即維納誤差)。
2.2 LMS算法的仿真
在MATLAB窗口環(huán)境下編寫LMS算法程序,仿真環(huán)境設(shè)置如下:
用MATLAB生成一個角頻率為0.8,幅度為15的單一頻率正弦信號作為濾波器的目標輸出信號,再生成一個隨機噪聲信號作為干擾信號,把正弦信號和噪聲信號疊加以后的信號當作濾波器的輸入信號(即參考信號)。自適應(yīng)濾波器的階數(shù)取M=4。分別將正弦信號、干擾信號、二者的疊加信號(參考信號)、自適應(yīng)濾波器的輸出信號和誤差信號的波形在MATLAB上顯示出來,所得結(jié)果如圖2、圖3、圖4所示。
圖4中,曲線①是濾波器的目標輸出信號,曲線②是濾波器的實際輸出信號。從圖中可以很明顯得看出,這兩條曲線幾乎重合在了一起。所以,仿真結(jié)果表明基于LMS算法的自適應(yīng)濾波器可以較好地跟蹤預(yù)期的目標輸出信號。圖中的曲線③是誤差信號,可以看出最大誤差信號幅度在1上下徘徊,可以算出相對誤差小于10%,達到了比較好的自適應(yīng)結(jié)果。
以上的仿真實驗所采用的輸入信號是正弦信號和噪聲信號的疊加信號,預(yù)期信號是正弦信號。然而,實際通信中的人的語音信號的頻譜主要集中在300~3400 Hz的頻率范圍以內(nèi)。另外在時域內(nèi),語音信號的特征隨時間而變化。以下用真實的語音來做LMS算法的仿真實驗。
用MATLAB自帶的庫函數(shù)編寫一個語音采集程序,采樣率為8000 Hz,采樣時間為20 s。將采集到的實際語音信號存入計算機,并在MATLAB中畫出采樣波形,如圖5所示。把該信號作為遠端語音信號。
將遠端語音信號按照一定的比例縮小,作為回聲信號r(n)?;芈曅盘柕牟ㄐ稳鐖D6所示。
評論