0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于MCF5235開發(fā)板的AEC算法的實現(xiàn)與應(yīng)用研究

電子設(shè)計 ? 來源:電子元器件應(yīng)用 ? 作者:龔樂中;李廣軍;郭 ? 2021-06-08 16:53 ? 次閱讀

作者:龔樂中;李廣軍;郭志勇

引言

VoIP是在IP網(wǎng)絡(luò)上實現(xiàn)音視頻及傳真信號傳輸?shù)囊婚T全新的集成業(yè)務(wù)數(shù)據(jù)網(wǎng)絡(luò)技術(shù)。IP語音傳輸技術(shù)具有節(jié)省帶寬、話費低,可方便地集成智能型開放體系結(jié)構(gòu)以及多媒體業(yè)務(wù)等優(yōu)勢。但較之傳統(tǒng)電話,其語音質(zhì)量較差。事實上,影響因特網(wǎng)語音質(zhì)量的因素是多方面的,關(guān)鍵因素之一是回聲的影響。因此,要提高因特網(wǎng)的語音質(zhì)量,就必須在語音傳輸過程中進行回聲消除。AEC是基于自適應(yīng)算法并可用于VoIP的聲學(xué)回聲消除技術(shù)。而用于AEC算法的實現(xiàn)與研究的硬件平臺是以freescale公司的MCF5235為核心的開發(fā)板。MCF523x系列MCU是首個以帶有增強型乘加運算單元(eMAC)的ColdFire V2內(nèi)核為核心,該產(chǎn)品同時結(jié)合了增強型時序處理單元(eTPU)和10/100以太網(wǎng)多媒體通道控制模塊(MAC)的MCU,因而具有強大的數(shù)據(jù)處理能力和豐富的接口,能夠滿足VoIP電話終端對數(shù)據(jù)處理速度以及網(wǎng)絡(luò)通訊安全的要求。

1 回聲消除

1.1 聲學(xué)回聲消除原理

AEC是以揚聲器信號與由它產(chǎn)生的多路徑回聲的相關(guān)性為基礎(chǔ)建立的遠端信號語音模型,利用它可對回聲進行估計,并不斷地修改濾波器的系數(shù),以使估計值更逼近真實的回聲,然后,將回聲估計值從話筒的輸人信號中減去,從而達到消除回聲之目的。

聲學(xué)回聲消除器的結(jié)構(gòu)原理如圖1所示。其中y(n)代表遠端語音信號,r(n)代表回聲,x(n)是已經(jīng)疊加了回聲信號r(n)的近端語音信號。對回聲消除器來說,可將遠端信號作為一個參考信號,然后由自適應(yīng)濾波器通過它來產(chǎn)生回聲的估計值r′(n),再從近端帶有回聲的語音信號中減去r′(n),從而估計出近端輸出信號μ(n)。在近端未說話時,即當x(n)=0時,μ(n)即為回聲的殘差信號e(n)。e(n)的計算方程為:

poYBAGC_MKOASBAYAAA2tKXLAFw125.png

e(n)=r(n)-r′(n) (1)

此時,回聲的殘留信號的理想值應(yīng)為0。

1.2 自適應(yīng)FIR濾波器

在聲學(xué)回聲消除器里,橫向結(jié)構(gòu)的自適應(yīng)濾波器可通過參考信號來產(chǎn)生回聲的副本,其原理如圖2所示。如果這個橫向結(jié)構(gòu)的自適應(yīng)濾波器的轉(zhuǎn)換函數(shù)與回聲通道的函數(shù)模型一致,那么,回聲的副本與回聲就應(yīng)該是一致的,這樣,通過兩者的抵消便可達到消除回聲之目的。

pYYBAGC_MJ2AKMRQAAAk7ABCqm4724.png

FIR濾波器的最主要特點是沒有反饋回路,這是一種非遞歸系統(tǒng),它的沖激響應(yīng)是一個有限長序列。FIR濾波器的輸出計算公式為:

poYBAGC_MECAVp4pAAAJs9kV8dk842.png

自適應(yīng)FIR濾波器根據(jù)上一刻的近端輸出信號μ(n)及遠端語音信號y(n),并通過自適應(yīng)算法來估算當前時刻FIR濾波器的系數(shù)ak(n+1)。

1.3 LMS算法和NLMS算法

在輸入信號和參考信號都是平穩(wěn)隨機信號的情況下,自適應(yīng)濾波器的均方誤差E[e(n)]性能曲面是濾波器加權(quán)系數(shù)ak的二次函數(shù)。其系數(shù)修正算法通常采用可使均方誤差最小的最優(yōu)化求解算法。

由于實際的梯度值只能根據(jù)觀測數(shù)據(jù)估計,因此LMS算法提出的一個基本思想就是用平方誤差E[e2(n)]來代替均方誤差E[e(n)]。它是對基本的最速下降算法的改進,其算法迭代公式為:

ak(n+1)=ak(n)+2μe(e)*y(n) (3)

其中y(n)為輸入信號,μ為迭代步長常量。

規(guī)一化LMS (NLMS)算法可用來在LMS自適應(yīng)濾波器方程里修正FIR濾波器的系數(shù)。NLMS算法與LMS算法幾乎是一樣的,唯一的不同是NLMS算法中使用可變步長控制因子來代替LMS算法中的常量因子。其目的是加快算法的收斂速度。其算法迭代公式為:

pYYBAGC_ME-AAwWzAAAL4bgx4f0176.png

其中,μ可由試驗來確定。但應(yīng)注意,μ的選取至關(guān)重要,為了確保收斂,必須滿足0《μ《2。本方案中的自適應(yīng)算法就是采用NLMS算法。

1.4 語音檢測

語音活動檢測可用來確定三種語音狀態(tài):近端講話狀態(tài)、遠端講話狀態(tài)和雙端講話狀態(tài)。因為AEC要根據(jù)不同的語音活動狀態(tài)來進行相應(yīng)的處理。它在檢測到近端語音活動狀態(tài)時,濾波器既不進行濾波,也不進行系數(shù)更新;而在檢測到雙端語音活動狀態(tài)時,將停止濾波器系數(shù)的更新,但要進行濾波。由于在只有遠端語音活動的狀態(tài)下,既要進行濾波,又要進行系數(shù)更新。因此,語音活動狀態(tài)檢測的正確與否在很大程度上會影響回聲消除的效果。語音活動檢測流程如圖3所示。

pYYBAGC_MJSAPub1AAA_t9hQlys655.png

雙端講話情況可以通過設(shè)計近端話音檢測器,并采用Geigel算法來判決。利用該算法計算回聲延時大小范圍內(nèi)的瞬時能量比較,具有著良好的性能優(yōu)勢。其Geigel算法描述如下:

poYBAGC_MGSAMBNGAAATH4CbEqM155.png

式中,N是FIR延時級數(shù),之所以將r(i)和最近N個遠端輸入的最大值進行比較,而不是僅僅和當前遠端輸入點y(i)進行比較,是因為回聲路徑延時具有不確定性。

2 實現(xiàn)方案

聲學(xué)回聲消除器AEC主要包括FIR濾波模塊、Geigle雙端語音判決模塊、NLMS系數(shù)更新模塊、語音狀態(tài)控制模塊四個部分,圖4所示是該AEC的簡要工作流程。

poYBAGC_MIyAXC9HAACPqbNQqwQ716.png

Freescale公司的硬件開發(fā)平臺以Coldfire系列MCF5235為核心。該系列MCU支持標準C語言及其專用的匯編語言。因此,在該平臺上運行的功能模塊需要使用C語言或者專用匯編。AEC的開發(fā)及移植過程如圖5所示。

設(shè)計時。首先應(yīng)搭建AEC的Matlab模型并對該模型進行仿真驗證。然后以已通過驗證的模型為標準,搭建可在MCF5235開發(fā)板上運行的C語言模型。最后根據(jù)需要將運算較為密集的那部分C語言程序轉(zhuǎn)化為Coldfire芯片的專用匯編語言。

3 實驗結(jié)果及分析

在Matlab環(huán)境下對AEC進行測試時,可將需要的三部分語音信號同時輸入到回聲消除器,然后測試回聲消除的相關(guān)性能。

本測試所輸入的語音信號波形如圖6所示。從上到下依次是遠端語音信號y(n)、近端語音信號x(n)和回聲信號,其中與之和作為近端輸入與y(n)一同構(gòu)成了回聲消除器的兩個輸入信號。將濾波器的階數(shù)設(shè)置為512。即采取64 ms延時的回聲消除。通過回聲消除處理后所得到的殘差信號e(n)的波形如圖7所示。

pYYBAGC_MH-ADoo6AACPqbNQqwQ935.png

從圖6和圖7的對比可以發(fā)現(xiàn),當只存在遠端信號和回聲信號,而近端緘默的情況下,回聲消除器能夠快速收斂并消除絕大部分回聲;而當雙端都存在信號時,回聲消除器能在消除回聲的基礎(chǔ)上較好的保持近端語音波形。

將AEC功能模塊集成到用MCF5235開發(fā)板搭建的VoIP終端上,來建立兩個通信終端的語音通信,即可對AEC功能模塊進行實時免提通話測試。

4 結(jié)束語

本文介紹了聲學(xué)回聲消除的原理、聲學(xué)回聲消除器的設(shè)計以及AEC在基于freescale公司MCF5235開發(fā)平臺的VoIP語音通信終端上的集成方法。該AEC的實現(xiàn)包括語音檢測、自適應(yīng)濾波等語音處理算法。其程序執(zhí)行的實時性較好。通過Matlab模型的仿真結(jié)果和通話主觀測試結(jié)果證明,用該方案實現(xiàn)的聲學(xué)回聲消除器能夠滿足網(wǎng)絡(luò)通信對語音的要求。

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 濾波器
    +關(guān)注

    關(guān)注

    158

    文章

    7596

    瀏覽量

    176580
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    4771

    瀏覽量

    96170
收藏 人收藏

    評論

    相關(guān)推薦

    【FireBLE申請】基于FireBLE開發(fā)板的藍牙方面智能家居應(yīng)用研究實驗

    申請理由:看到論壇上有關(guān)于FireBLE開發(fā)板的試用,正在研究智能家居鏈接方向的我感覺用這種低壓版的藍牙開發(fā)板應(yīng)該會比較好點,1.FireBLE開發(fā)板具有低功耗等諸多優(yōu)點,希望通過此次
    發(fā)表于 07-16 13:06

    怎么實現(xiàn)基于MCF52235的RFID通用開發(fā)平臺設(shè)計?

    怎么實現(xiàn)基于MCF52235的RFID通用開發(fā)平臺設(shè)計?
    發(fā)表于 05-21 06:28

    基于MCF5213和uC/OS-II的低成本Zigbee無線

    基于MCF5213和uC/OS-II的低成本Zigbee無線、語音、工控應(yīng)用開發(fā)板
    發(fā)表于 07-13 21:18 ?51次下載

    飛思卡爾的MCF52235的開發(fā)板原理圖

    本內(nèi)容提供了飛思卡爾的MCF52235的開發(fā)板原理圖
    發(fā)表于 04-11 17:00 ?355次下載
    飛思卡爾的<b class='flag-5'>MCF</b>52235的<b class='flag-5'>開發(fā)板</b>原理圖

    冷火MCF52255開發(fā)板精華資料

    冷火MCF52255開發(fā)板精華資料
    發(fā)表于 09-23 14:35 ?181次下載

    如何使用開發(fā)板

    本文涵蓋了單片機開發(fā)板的各個部分,輕松教會你如何使用單片機開發(fā)板
    發(fā)表于 11-24 15:59 ?12次下載

    stm32開發(fā)板開發(fā)板原理圖

    stm32開發(fā)板開發(fā)板原理圖。
    發(fā)表于 12-21 15:38 ?61次下載

    lpc1700開發(fā)板_dsp算法

    lpc1700開發(fā)板_dsp算法庫,有需要的下來看看。
    發(fā)表于 01-13 17:02 ?6次下載

    蟻群算法在文本聚類中的應(yīng)用研究

    蟻群算法在文本聚類中的應(yīng)用研究_張海濤
    發(fā)表于 01-03 17:41 ?0次下載

    開發(fā)板是什么_開發(fā)板有什么用_開發(fā)板怎么用(使用步驟教程)

    開發(fā)板(demoboard)是用來進行嵌入式系統(tǒng)開發(fā)的電路,包括中央處理器、存儲器、輸入設(shè)備、輸出設(shè)備、數(shù)據(jù)通路/總線和外部資源接口等一系列硬件組件。開發(fā)板一般由嵌入式系統(tǒng)
    發(fā)表于 12-09 09:40 ?10.8w次閱讀

    ALIENTEK開發(fā)板的簡介

    本文檔的與內(nèi)容詳細介紹的是ALIENTEK開發(fā)板的簡介包括了:戰(zhàn)艦STM32開發(fā)板平臺介紹,Mini STM32開發(fā)板平臺介紹
    發(fā)表于 01-02 08:00 ?6次下載
    ALIENTEK<b class='flag-5'>開發(fā)板</b>的簡介

    EVAL-AD5235 EVAL-AD5235評估

    電子發(fā)燒友網(wǎng)為你提供ADI(ti)EVAL-AD5235相關(guān)產(chǎn)品參數(shù)、數(shù)據(jù)手冊,更有EVAL-AD5235的引腳圖、接線圖、封裝手冊、中文資料、英文資料,EVAL-AD5235真值表,EVAL-AD
    發(fā)表于 07-25 06:00

    聯(lián)控智能無刷電機開發(fā)板教程

    聯(lián)控智能無刷電機開發(fā)板教程(ups電源技術(shù))-聯(lián)控開源的電機開發(fā)教程,包括PCB設(shè)計原理、FOC控制算法等程序設(shè)計,交流分享使用
    發(fā)表于 09-16 15:07 ?87次下載
    聯(lián)控智能無刷電機<b class='flag-5'>開發(fā)板</b>教程

    基于SS928開發(fā)板算法移植分享

    最近在研究在易百納SS928的開發(fā)板上做算法移植,覺得可以向大家分享一下在易百納SS928開發(fā)板上做算法移植的一些方法及心得,希望能對大家后
    的頭像 發(fā)表于 08-16 09:35 ?1063次閱讀
    基于SS928<b class='flag-5'>開發(fā)板</b><b class='flag-5'>算法</b>移植分享

    fpga開發(fā)板與linux開發(fā)板區(qū)別

    (Field-Programmable Gate Array)是一種可編程邏輯器件,它可以通過編程改變硬件邏輯電路的功能和結(jié)構(gòu)。FPGA采用了可編程的門極,可以根據(jù)需要重新配置內(nèi)部電路,從而實現(xiàn)不同的功能和邏輯關(guān)系。而Linux開發(fā)板則是一種嵌入式計算機平臺,其核心是Li
    的頭像 發(fā)表于 02-01 17:09 ?1673次閱讀