<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > EDA/PCB > 設計應用 > 基于EasyEDA平臺設計FM1188消回音調試板

基于EasyEDA平臺設計FM1188消回音調試板

作者: 時(shí)間:2018-08-06 來(lái)源:網(wǎng)絡(luò ) 收藏

最近有在做一些設備,測試的時(shí)候,每次對著(zhù)講完話(huà),總能從面前的喇叭上聽(tīng)到自己講的話(huà)。想起偶爾打電話(huà)的時(shí)候也會(huì )出現相似的情況,就是不知道為什么電話(huà)里有自己的講話(huà)聲,之前只覺(jué)得電話(huà)出問(wèn)題了,或者是信號串了之類(lèi)的,沒(méi)思考過(guò)。這回是面對面碰到了這種現象,了解后才知道這個(gè)是系統設計中最棘手的問(wèn)題之一,問(wèn)題。經(jīng)過(guò)一段時(shí)間與問(wèn)題的抗爭,積累了不少消除方面的經(jīng)驗,而今天就將這些經(jīng)驗分享給大伙,主要是其中用到的一款消回音調試板。

本文引用地址:http://dyxdggzs.com/article/201808/385550.htm

這次為了分享完整的設計,我使用的工具是Easy。這個(gè)網(wǎng)站對硬件設計開(kāi)源支持非常好,和Github有點(diǎn)相似,不過(guò)側重于開(kāi)源硬件設計,而且個(gè)人覺(jué)得比Github親民很多,Github只有英文版本,天生就是為大神們量身打造的。Github側重的是軟件的開(kāi)源,有很強大的版本管理功能,能夠完全記錄每一個(gè)文本格式的文件的修改歷史,并比對不同版本文件間的不同點(diǎn),而且支持在線(xiàn)閱讀代碼。不過(guò)這種強大的管理功能也只限于文本格式的文件,對于非文本格式的文件,Github都認為它是一個(gè)文件,只記錄它的版本,如果你對這個(gè)文件修改的內容描述不夠 詳細,過(guò)段時(shí)間后需要回滾版本就得很麻煩,而且Github是不支持這種文件的在線(xiàn)瀏覽的。Easy支持在線(xiàn)進(jìn)行硬件設計,并且具有很好的項目管理和版本管理功能。挑兩張圖略略說(shuō)明一下Easy,因為下面主要是在它上面操作的。

花了點(diǎn)口水,描述了一下設計工具。工欲善其事必先利其器嘛,因此我再花點(diǎn)時(shí)間給剛遇到回音問(wèn)題的伙伴們普及一些基礎知識。

系統回音原理

它的基本原理就是這樣,如下圖,音源(用戶(hù)講話(huà))從本地設備的采集后,通過(guò)網(wǎng)絡(luò )發(fā)往遠端設備,遠端設備從喇叭中播放出來(lái)音源的聲音(通常會(huì )經(jīng)過(guò)放大),如果遠端設備沒(méi)有進(jìn)行消回音處理,那么這個(gè)遠端設備的喇叭播放出來(lái)的聲音,就會(huì )被遠端設備的采集到,并通過(guò)網(wǎng)絡(luò )傳回到本地設備,并經(jīng)過(guò)放大,從本地喇叭播放處理。

模擬對講系統比較少出現對講回音問(wèn)題,原因有兩個(gè):1、傳輸延時(shí)很小,即使有聲音,通常也會(huì )隱藏在自己的講話(huà)聲中,使用者不容易察覺(jué)。2、也由于第一點(diǎn)原因,模擬系統的消回音處理也相對簡(jiǎn)單(有了解過(guò)回音消除算法的伙伴們應該知道這個(gè)回音回來(lái)的時(shí)間上是關(guān)鍵參數,這里不討論回音算法,所以不贅述),直接將輸出和輸入做減法運算,消回音效果就基本能保證了。我們常用的模擬對講系統有傳統的固話(huà)系統,而IP電話(huà)則是(數字)網(wǎng)絡(luò )對講系統。

對講回音與嘯叫區別

下圖簡(jiǎn)單地示意了嘯叫的形成,基本的原因就是麥克風(fēng)采集的音頻通過(guò)放大后從揚聲器播出,若揚聲器放得比較靠近麥克風(fēng),那么聲波通過(guò)空間傳回麥克風(fēng),麥克風(fēng)將這些放大后的聲音再次采集送往功放放大,然后從揚聲器播出,以此反復,聲音越來(lái)越大,從觀(guān)察者的角度,就更喇叭叫了起來(lái)一樣,聽(tīng)到刺耳的巨響。這個(gè)和海嘯有點(diǎn)像,地震波推著(zhù)海浪向前,后來(lái)的波浪會(huì )疊加到前面的波浪上,最后越疊越高,形成巨型的海浪,造成驚人的破壞力。

回音也可以引起嘯叫,不過(guò)這個(gè)回傳的路徑不單只包括空間(聲學(xué)回聲傳播路徑)還包括電路線(xiàn)纜,不過(guò)“叫”起來(lái)的原因是一樣的,有音頻的回環(huán),并且在環(huán)上有放大環(huán)節。

消回音常用手段

早時(shí)候,算法還不夠完善,為了處理回音、嘯叫這種種音頻問(wèn)題,網(wǎng)絡(luò )對講系統曾經(jīng)為了繞過(guò)它們而采用單工的對講方式,就是我講的時(shí)候不能聽(tīng)你講,回想一下,在醫院打點(diǎn)滴,如果點(diǎn)針水快用完,就需要按邊上的按鈕呼叫護士,需要按下按鈕獲得講話(huà)的權限,而護士聽(tīng)到了呼話(huà)后,在總臺同樣需要按下按鈕進(jìn)行恢復。半雙工對講系統就是這么個(gè)令人糾結的系統。

目前消回音算法取得了極大的進(jìn)展,不用再使用半雙工的蹩腳方式避讓開(kāi)回音問(wèn)題了,了解了一圈,消回音通常有三種處理辦法,1、使用對講程序現成的消回音庫,這些庫有免的如webRTC或者freeswitch消回音庫開(kāi)源版本,也有收費的如 freeswitch的消回音庫商業(yè)版本;2、使用富迪的消回音芯片,這種芯片其實(shí)上就是一個(gè)專(zhuān)用DSP加上固化了的消回音程序(固件),并開(kāi)放參數調節接口;3、使用DSP跑自主開(kāi)發(fā)的消回音算法,因為這類(lèi)算法涉及的浮點(diǎn)運算比較多,通常需要使用高性能的DSP芯片才能支撐。第一種方式消回音效果好,但是通常使用的自適應算法需要收斂時(shí)間,這種方式收斂時(shí)間相對較長(cháng)。第二種方式簡(jiǎn)單易用,算法收斂快,效果也能滿(mǎn)足大多數使用情況下的要求。第三種方式,無(wú)論是消回音效果或收斂時(shí)間都能達到最優(yōu),不過(guò)技術(shù)門(mén)檻較高,成本也較高。

FM1188消回音調試板設計

科普了一大段,終于要進(jìn)入主題了,如何設計FM1188消回音調試板。

其實(shí)在消回音領(lǐng)域富迪的方案還是用得相當廣泛的,淘寶上也有各種已經(jīng)燒好了參數的小模塊,如下圖,可以直接嵌入電路使用。不過(guò)這種模塊不方便調試參數,而今天的調試板充分考慮了調試的各種情況。

如圖2所示,其中每張原理圖放置板子的一個(gè)功能模塊,接下來(lái)分別說(shuō)一下這些功能模塊的作用和設計注意事項。(整幅圖片可能看起來(lái)比較模糊,有需要的伙伴們可以登錄下文項目鏈接進(jìn)行探討)

1、ALC5640音頻編解碼電路

ALC5640是REALTEK公司推出的一款高性能的多通道編解碼芯片,有兩組I2S接口,能當Audio Hub使用,能夠真正實(shí)現全雙工操作,就是編碼的同時(shí)進(jìn)行解碼。而且體積小通常用在移動(dòng)設備上。

為了確保音質(zhì),需要降低電源噪聲,調試板的編解碼芯片采用獨立的線(xiàn)性電源供電,如下。板卡上的每個(gè)模塊都盡量保持低噪聲很重要,在調試的時(shí)候才能更好地評估,設計對正真噪聲(空間聲學(xué)噪聲)的抑制效果。

ALC5640內置雙通道D類(lèi)功放,最大支持5W功率輸出,輸出必須加濾波電路,如下:

接口處將所有控制信號、音頻輸入輸出引出來(lái),封裝采用2.54mm引腳間距的雙排插針,方便后續使用杜邦線(xiàn)根據需要互聯(lián)電路,如下:

2、AMPLIFIER功放電路

功放模塊設計包含了兩個(gè)不同輸出功率的功放芯片,其中LM4950是7W,LM4871是5W,而且兩個(gè)芯片都具有靜音控制功能,這是為了后續調試的時(shí)候更好地比對在不同喇叭響度的情況下比對消回音效果。

和音頻編解碼模塊一樣,電源采用線(xiàn)性電源獨立供電,降低電源噪聲;接口處將所有控制信號、音頻輸入輸出引出來(lái),封裝采用2.54mm引腳間距的雙排插針,方便后續使用杜邦線(xiàn)根據需要互聯(lián)電路,如下:

LM4950和LM4871內部原理類(lèi)似,都是橋接方式推動(dòng)喇叭工作的,如下,無(wú)需外接隔直大電容,這是一種OCL(output capacitor less)功放電路。

3、FM1188消回音模塊

FM1188是富迪公司(fortemedia)推出的語(yǔ)言處理芯片,它能夠降低環(huán)境噪聲、定向采集聲音、消回音等。它的內部消回音算法或者說(shuō)消回音處理邏輯如下:

因為是調試板卡,配置是不固定的,增加跳線(xiàn)接口,用于調試的時(shí)候根據需要進(jìn)行配置。配置包括兩種,一個(gè)是參數下載方式的配置,FM1188共支持4種參數下載方式:1、從256 BYTE EEPROM讀取參數;2、從1 KBYTE EEPROM讀取參數;3、從SHI接口讀取參數;4、從UART接口讀取參數。淘寶上賣(mài)的模塊通常是將參數預先燒寫(xiě)到EEPROM中,而且參數通常不多,然后配置成第一種參數下載方式,方便客戶(hù)使用。還有一個(gè)是燒寫(xiě)參數位置的配置,可以根據配置將程序燒寫(xiě)到EEPROM的不同地址。

所謂的配置指的就是設置功能引腳上電時(shí)的電平,預留2.54mm引腳間距的雙排插針,后續使用跳線(xiàn)帽進(jìn)行跳線(xiàn)即可,如下。

引出音量調節引腳,方便調試的時(shí)候隨時(shí)可以改變音量,以便在不同響度情況下,觀(guān)察消回音效果。

原理圖模塊就這些,接下來(lái)畫(huà)PCB,PCB圖設計也在EasyEDA上實(shí)現(作圖思路大同小異,對工具有興趣的伙伴們自行百度EasyEDA,這里不詳述),在這說(shuō)明一下設計時(shí)的注意事項。先上整體效果圖,如下:

樣板設計完之后想看板卡的生產(chǎn)時(shí)的效果圖也可以用EasyEDA預覽,如下,是不是真的很像打樣回來(lái)的樣板呢?

最終做出來(lái)的樣板如下,由于走的公司渠道的打樣,有部分公司信息,因此圖片打了馬賽克。

麥克風(fēng)接FM1188進(jìn)行聲音采集,并慮除回聲,和噪聲;FM1188處理過(guò)后的音頻信號傳給音頻編解碼芯片ALC5640的LINEIN進(jìn)行采集并編碼;音頻編解碼芯片ALC5640輸出的音頻LINEOUT一方面輸給功放放大,一方面為FM1188提供參考(沒(méi)有參考音源是無(wú)法消除回聲的,要不然FM1188如何知道喇叭播出了什么聲音?)

『本文轉載自網(wǎng)絡(luò ),版權歸原作者所有,如有侵權請聯(lián)系刪除』



關(guān)鍵詞: EDA 對講 麥克風(fēng) 回音

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>