基于MCU的AEC算法實現(xiàn)
發(fā)布時間:2008/6/5 0:00:00 訪問次數(shù):488
引言
較之傳統(tǒng)電話,voip語音質量較差。影響因特網(wǎng)語音質量的關鍵因素之一是回聲。要提高因特網(wǎng)的語音質量,就必須在語音傳輸?shù)倪^程中進行回聲消除的處理。aec是基于自適應算法、可被應用于voip的回聲消除技術。
本文用于aec算法實現(xiàn)與研究的硬件平臺足以freescale公司的mcf5235為核心的開發(fā)板。mcf523x系列是以帶有增強型乘加運算單元(emac)的coldfire v2內核為核心,同時結合了增強型時序處理單元(etpu)和10/100m以太網(wǎng)多媒體通道控制模塊(mac)的mcu,具有強大的數(shù)據(jù)處理能力和豐富的接口,能夠滿足voip電話終端對于數(shù)據(jù)處理速度以及剛絡通信安全性的要求。
回聲消除器介紹
聲學回聲消除原理
aec是以揚聲器信號與由它產(chǎn)生的多路徑回聲的相關性為基礎,建立遠端信號的語音模型,利用它對回聲進行估計,并不斷修改濾波器的系數(shù),使得估計值更加逼近真實的回聲。然后,將回聲估計值從話筒的輸入信號中減去,從而達到消除回聲的目的。
聲學回聲消除器的結構如圖l所示。y(n)代表遠端語音信號,r(n)代表回聲,x(n)是近端語音信號。近端信號x(n)疊加了回聲信號r(n)。對同聲消除器來說,將遠端信號作為一個參考信號,自適應濾波器用它來產(chǎn)生回聲的估計值r'(n),從近端帶有回聲的語音信號中將r'(n)減去,估計出近端輸出信號μ(n)。在近端沒有說話的情況下,即當x(n)=0時,μ(n)為回聲的殘差信號e(n)。e(n)的計算方程為:
自適應fir濾波器
在聲學回聲消除器里,橫向結構的自適應濾波器通過采用參考信號來產(chǎn)生回聲的副本,如果這個橫向結構的自適應濾波器的轉換函數(shù)與回聲通道的函數(shù)模型一致,那么,回聲的副本與回聲就應該是一致的,通過兩者的抵消就可以達到消除回聲的目的。
fir濾波器的最主要特點是沒有反饋回路,是一種非遞歸系統(tǒng),它的沖激響應h(n)是一個有限長序列。下面的方程被用來計算fir濾波器的輸出:
自適應fir濾波器是根據(jù)上一時刻的近端輸出信號μ(n)以及遠端語音信號y(n),通過某種自適應算法來估算當前時刻fir濾波器的系數(shù)ak(n+1)。
lms和nlms算法
在輸入信號和參考信號都是平穩(wěn)隨機信號的情況下,自適應濾波器的均方誤差e[e(n)]性能曲面是濾波器加權系數(shù)ak的二次函數(shù)。其系數(shù)修正的算法通常是采用使均方誤差最小的最優(yōu)化求解算法,如最速下降算法。
由于實際的梯度值只能根據(jù)觀測數(shù)據(jù)估計,因此,lms算法提出的一個基本思想就是用平方誤差來代替均方誤差。它是對基本的最速下降算法的改進,其算法迭代公式為:
其中,y(n)為輸入信號,μ為迭代步長常量。
規(guī)一化lms(nlms)算法被用來在lms自適應濾波器方程里修正fir濾波器的系數(shù)。nlms算法與lms算法幾乎是一樣的,唯一的不同是在nlms算法中用可變的步長控制因予代替了lms算法中的常量因子,其目的是加快算法的收斂速度。其算法迭代公式為:
其中μ應由試驗來確定。μ的選取至關重要,為了確保收斂,必須滿足0<μ<2。本方案中的自適應算法就采用了nlms。
實現(xiàn)方案
聲學回聲消除器aec主要包括fir濾波模塊、geigle雙端語音判決模塊、nlms系數(shù)更新模塊、語音狀態(tài)控制模塊4個部分,圖2為aec簡要的結構。
|
首先,搭建aec的matlab模型并對該模型進行仿真驗證。然后,以已通過驗證的模犁為標準,搭建可在mcf5235開發(fā)板上運行的c語言模型。最后根據(jù)需要,將運算較為密集的那部分c語言程序轉化為coldfire芯片的專用匯編語言。
實驗結果及分析
在matlab環(huán)境下,對aec進行測試。將需要的三部分語音信號同時輸入到回聲消除器,測試回聲消除的相關性能。
輸入語音信號波形如圖4所示,從上到下依次表示遠端語音信號y(n)、近端語音信號x(n)和回聲信號echo(n),其中,echo(n)與x(n)之和作為近端輸入,與y(n)一同構成了回聲消除器的兩個輸入信號。
引言
較之傳統(tǒng)電話,voip語音質量較差。影響因特網(wǎng)語音質量的關鍵因素之一是回聲。要提高因特網(wǎng)的語音質量,就必須在語音傳輸?shù)倪^程中進行回聲消除的處理。aec是基于自適應算法、可被應用于voip的回聲消除技術。
本文用于aec算法實現(xiàn)與研究的硬件平臺足以freescale公司的mcf5235為核心的開發(fā)板。mcf523x系列是以帶有增強型乘加運算單元(emac)的coldfire v2內核為核心,同時結合了增強型時序處理單元(etpu)和10/100m以太網(wǎng)多媒體通道控制模塊(mac)的mcu,具有強大的數(shù)據(jù)處理能力和豐富的接口,能夠滿足voip電話終端對于數(shù)據(jù)處理速度以及剛絡通信安全性的要求。
回聲消除器介紹
聲學回聲消除原理
aec是以揚聲器信號與由它產(chǎn)生的多路徑回聲的相關性為基礎,建立遠端信號的語音模型,利用它對回聲進行估計,并不斷修改濾波器的系數(shù),使得估計值更加逼近真實的回聲。然后,將回聲估計值從話筒的輸入信號中減去,從而達到消除回聲的目的。
聲學回聲消除器的結構如圖l所示。y(n)代表遠端語音信號,r(n)代表回聲,x(n)是近端語音信號。近端信號x(n)疊加了回聲信號r(n)。對同聲消除器來說,將遠端信號作為一個參考信號,自適應濾波器用它來產(chǎn)生回聲的估計值r'(n),從近端帶有回聲的語音信號中將r'(n)減去,估計出近端輸出信號μ(n)。在近端沒有說話的情況下,即當x(n)=0時,μ(n)為回聲的殘差信號e(n)。e(n)的計算方程為:
自適應fir濾波器
在聲學回聲消除器里,橫向結構的自適應濾波器通過采用參考信號來產(chǎn)生回聲的副本,如果這個橫向結構的自適應濾波器的轉換函數(shù)與回聲通道的函數(shù)模型一致,那么,回聲的副本與回聲就應該是一致的,通過兩者的抵消就可以達到消除回聲的目的。
fir濾波器的最主要特點是沒有反饋回路,是一種非遞歸系統(tǒng),它的沖激響應h(n)是一個有限長序列。下面的方程被用來計算fir濾波器的輸出:
自適應fir濾波器是根據(jù)上一時刻的近端輸出信號μ(n)以及遠端語音信號y(n),通過某種自適應算法來估算當前時刻fir濾波器的系數(shù)ak(n+1)。
lms和nlms算法
在輸入信號和參考信號都是平穩(wěn)隨機信號的情況下,自適應濾波器的均方誤差e[e(n)]性能曲面是濾波器加權系數(shù)ak的二次函數(shù)。其系數(shù)修正的算法通常是采用使均方誤差最小的最優(yōu)化求解算法,如最速下降算法。
由于實際的梯度值只能根據(jù)觀測數(shù)據(jù)估計,因此,lms算法提出的一個基本思想就是用平方誤差來代替均方誤差。它是對基本的最速下降算法的改進,其算法迭代公式為:
其中,y(n)為輸入信號,μ為迭代步長常量。
規(guī)一化lms(nlms)算法被用來在lms自適應濾波器方程里修正fir濾波器的系數(shù)。nlms算法與lms算法幾乎是一樣的,唯一的不同是在nlms算法中用可變的步長控制因予代替了lms算法中的常量因子,其目的是加快算法的收斂速度。其算法迭代公式為:
其中μ應由試驗來確定。μ的選取至關重要,為了確保收斂,必須滿足0<μ<2。本方案中的自適應算法就采用了nlms。
實現(xiàn)方案
聲學回聲消除器aec主要包括fir濾波模塊、geigle雙端語音判決模塊、nlms系數(shù)更新模塊、語音狀態(tài)控制模塊4個部分,圖2為aec簡要的結構。
|
首先,搭建aec的matlab模型并對該模型進行仿真驗證。然后,以已通過驗證的模犁為標準,搭建可在mcf5235開發(fā)板上運行的c語言模型。最后根據(jù)需要,將運算較為密集的那部分c語言程序轉化為coldfire芯片的專用匯編語言。
實驗結果及分析
在matlab環(huán)境下,對aec進行測試。將需要的三部分語音信號同時輸入到回聲消除器,測試回聲消除的相關性能。
輸入語音信號波形如圖4所示,從上到下依次表示遠端語音信號y(n)、近端語音信號x(n)和回聲信號echo(n),其中,echo(n)與x(n)之和作為近端輸入,與y(n)一同構成了回聲消除器的兩個輸入信號。