技術達人:音頻信號采集與AGC算法的DSP實現
發布時間:2014-03-06 責任編輯:mikeliu
【導讀】電台等由於其自辦頻道的廣告、新聞、廣播劇、歌(ge)曲(qu)和(he)轉(zhuan)播(bo)節(jie)目(mu)等(deng)音(yin)頻(pin)信(xin)號(hao)電(dian)平(ping)大(da)小(xiao)不(bu)一(yi),導(dao)致(zhi)節(jie)目(mu)播(bo)出(chu)時(shi),音(yin)頻(pin)信(xin)號(hao)忽(hu)大(da)忽(hu)小(xiao),嚴(yan)重(zhong)影(ying)響(xiang)用(yong)戶(hu)的(de)收(shou)聽(ting)效(xiao)果(guo)。在(zai)轉(zhuan)播(bo)時(shi),由(you)於(yu)傳(chuan)輸(shu)距(ju)離(li)等(deng)原(yuan)因(yin),在(zai)信(xin)號(hao)的(de)輸(shu)出(chu)端(duan)也(ye)存(cun)在(zai)信(xin)號(hao)大(da)小(xiao)不(bu)一(yi)的(de)現(xian)象(xiang)。那(na)麼(me)如(ru)何(he)解(jie)決(jue)不(bu)同(tong)節(jie)目(mu)音(yin)頻(pin)不(bu)均(jun)衡(heng)的(de)問(wen)題(ti)呢(ne)?
過guo去qu,對dui大da音yin頻pin信xin號hao采cai用yong限xian幅fu方fang式shi,即ji對dui大da信xin號hao進jin行xing限xian幅fu輸shu出chu,小xiao信xin號hao不bu予yu處chu理li。這zhe樣yang,仍reng然ran存cun在zai音yin頻pin信xin號hao過guo小xiao時shi,用yong戶hu自zi行xing調tiao節jie音yin量liang,也ye會hui影ying響xiang用yong戶hu的de收shou聽ting效xiao果guo。隨sui著zhe電dian子zi技ji術shu,計ji算suan機ji技ji術shu和he通tong信xin技ji術shu的de迅xun猛meng發fa展zhan,數shu字zi信xin號hao處chu理li技ji術shu已yi廣guang泛fan地di深shen入ru到dao人ren們men生sheng活huo等deng各ge個ge領ling域yu。其qi中zhong語yu音yin處chu理li是shi數shu字zi信xin號hao處chu理li最zui活huo躍yue的de研yan究jiu方fang向xiang之zhi一yi,在zaiIP電話和多媒體通信中得到廣泛應用。
語音處理可采用通用數字信號處理器DSP和現場可編程門陣列(FPGA) 實現,其中DSP實現方法具有實現簡便、程序可移植行強、處理速度快等優點,特別是TI公司TMS320C54X係列在音頻處理方麵有很好的性價比,能夠解決複雜的算法設計和滿足係統的實時性要求,在許多領域得到廣泛應用。在DSP的基礎上對音頻信號做AGC算法處理可以使輸出電平保持在一定範圍內,能夠解決不同節目音頻不均衡等問題。
音頻信號采集
TI公司DSP芯片TMS320V
C5402具有獨特的6總線哈佛結構,使其能夠6條流水線同時工作,工作頻率達到100MHz。利用VC5402的2個多通道緩衝串行口(McBSP0和McBSP1)來實現與AIC23的無縫連接。VC5402的多通道帶緩衝的串行口在標準串口的基礎上加了一個2K的緩衝區。每次串口發送數據時,CPU自動將發送緩衝中的數據送出;而當接收數據時,CPU自動將收到的數據寫入接收緩存。在自動緩衝方式下,不需每傳送一個字就發一次中斷,而是每通過一次緩衝器的邊界,才產生中斷至CPU,從而減少頻繁中斷對CPU的影響。
音頻芯片采用TLV320 AIC23,它是TI公司的一款高性能立體聲音頻A/D,D/A放大電路。AIC23的模數轉換和數模轉換部件高度集成在芯片內部,采用了先進的過采樣技術。AIC23的外部硬件接口分為模擬口和數字口。模擬口是用來輸入輸出音頻信號的,支持線路輸入和麥克風輸入;有兩組數字接口,其一是由/CS、SDIN、SCLK和MODE構成的數字控製接口。AIC23是一塊可編程的音頻芯片,通過數字控製口將芯片的控製字寫入AIC23內部的寄存器,如采樣率設置,工作方式設置等,共有12個寄存器。音頻控製口與DSP的通信主要由多通道緩衝串行口McBSP1來實現。
AIC23通過數字音頻口與DSP的McBSP0完成數據的通信,DSP做主機,AIC23做從機。主機提供發送時鍾信號BCLKX0和發送幀同步信號BFSX0。在這種工作方式下,接收時種信號BCLKR0和接收幀同步信號BFSR0實際上都是由主機提供的。
圖1是AIC23與VC5402的接口連接。

AIC23的數字音頻接口支持S(通用音頓格式)模式,也支持DSP模式(專與TIDSP連接模式),在此采用DSP模式。DSP模式工作時,它的幀寬度可以為一個bit長。
圖2是音頻信號采集的具體電路圖。

電路的設計和布線是信號采集過程中一個很重要的環節,它的效果直接關係到後期信號處理的質量。對於DSP達類高速器件,外部晶體經過內部的PLLbeipinyihoukedashangbaizhao。zhejiuyaoqiuxinhaoxianzoudengchangxianhehuizhiduocengdianlubanlaixiaochudianciganraohexinhaodefanshe。zailiangcengbandeqiantixia,keyicaiqudingcengyudicengzoujiaochaxian、盡量加寬電源線和地線的寬度、電源線成"樹杈型"、模擬區和數字區分開等原則,可以達到比較好的效果。
音頻AGC算法的實現
AGC算法
使放大電路的增益隨信號強度的變化而自動調整的控製方法,就是AGC-自動增益控製。實現AGC可以是硬件電路,即AGC閉環電子電路,也可以是軟件算法。本文主要討論用軟件算法來實現音頻信號的AGC。
音頻AGC是音頻自動增益控製算法,更為準確的說是峰值自動增益控製算法,是一種根據輸入音頻信號水平自動動態地調整增益的機製。當音量(無論是捕捉到的音量還是再現的音量)超過某一門限值,信號就會被限幅。限幅指的是音頻設備的輸出不再隨著輸入而變化,輸出實質上變成了最大音量位置上的一條水平線;當(dang)檢(jian)測(ce)到(dao)音(yin)頻(pin)增(zeng)益(yi)達(da)到(dao)了(le)某(mou)一(yi)門(men)限(xian)時(shi),它(ta)會(hui)自(zi)動(dong)減(jian)小(xiao)增(zeng)益(yi)來(lai)避(bi)免(mian)限(xian)幅(fu)的(de)發(fa)生(sheng)。另(ling)一(yi)方(fang)麵(mian),如(ru)果(guo)捕(bu)捉(zhuo)到(dao)的(de)音(yin)量(liang)太(tai)低(di)時(shi),係(xi)統(tong)將(jiang)自(zi)動(dong)提(ti)高(gao)增(zeng)益(yi)。當(dang)然(ran),增(zeng)益(yi)的(de)調(tiao)整(zheng)不(bu)會(hui)使(shi)音(yin)量(liang)超(chao)過(guo)用(yong)戶(hu)在(zai)調(tiao)節(jie)向(xiang)導(dao)中(zhong)設(she)置(zhi)的(de)值(zhi)。
圖3是音頻AGC算法的結構框圖。

AGC算法的實現過程
首先從串口獲取音頻數據,它是16位的整型數,一般來說,這些數都是比較小的,通過AGC算suan法fa將jiang輸shu入ru的de音yin頻pin數shu據ju投tou影ying在zai一yi個ge固gu定ding區qu間jian內nei,從cong而er使shi得de不bu論lun輸shu入ru的de數shu據ju點dian數shu值zhi大da小xiao都dou會hui等deng比bi例li地di向xiang這zhe個ge空kong間jian映ying射she。一yi方fang麵mian將jiang獲huo得de的de音yin頻pin數shu據ju最zui大da值zhi與yu原yuan來lai的de峰feng值zhi進jin行xing比bi較jiao,如ru果guo有you新xin的de峰feng值zhi出chu現xian就jiu計ji算suan新xin的de增zeng益yi係xi數shu;另ling一yi方fang麵mian在zai一yi定ding的de時shi間jian周zhou期qi內nei獲huo取qu一yi個ge新xin的de峰feng值zhi,這zhe個ge峰feng值zhi就jiu具ju有you檢jian測ce性xing能neng,又you與yu原yuan峰feng值zhi比bi較jiao,然ran後hou就jiu計ji算suan新xin的de增zeng益yi係xi數shu。這zhe個ge增zeng益yi係xi數shu是shi相xiang對dui穩wen定ding的de。當dang音yin量liang加jia大da時shi,信xin號hao峰feng值zhi會hui自zi動dong增zeng加jia,從cong而er增zeng益yi係xi數shu自zi動dong下xia降jiang;當(dang)音(yin)量(liang)減(jian)小(xiao)時(shi),新(xin)的(de)峰(feng)值(zhi)會(hui)減(jian)小(xiao)並(bing)且(qie)取(qu)代(dai)原(yuan)來(lai)的(de)峰(feng)值(zhi),從(cong)而(er)使(shi)峰(feng)值(zhi)下(xia)降(jiang),使(shi)增(zeng)益(yi)係(xi)數(shu)上(shang)升(sheng)。最(zui)後(hou)輸(shu)出(chu)的(de)數(shu)據(ju)乘(cheng)以(yi)新(xin)增(zeng)益(yi)係(xi)數(shu)後(hou)映(ying)射(she)到(dao)音(yin)頻(pin)信(xin)號(hao)輸(shu)入(ru)的(de)投(tou)影(ying)區(qu)間(jian)內(nei)。
圖4是音頻信號AGC算法的程序流程圖。

AGC_Coff是初始增益係數,初始值為1;maxAGC_in是增益峰值,初始值為0;time是采樣點計數,門限值為4096;AGC_in是新的音頻數據,MAXArrIn是新的音頻增益峰值;映射區間【-20000,20000】。
整個係統的軟件部分為5人模塊。係統主函數main( )、CMD文件、中斷向量表、DSP5402頭文件和專為C語言開發的庫函數rtdx.lib。其中主函數部分是核心,主要包括:DSP器件初始化、MCBSP1初始化、MCBSP0初始化、AIC23初始化(內部12個可編程寄存器設置)及算法程序等。
在CCS2.0集成開發環境下,采用*.c語言和*.asm語言
相結合的方式編寫程序。將編寫的程序*.c、*.asm和鏈接程序*.cmd文件編譯鏈接後生成執行目標文件*.out,通過仿真器將執行目標文件*.out下載到係統板上,經過調試、編譯並運行,以音樂作為音頻信號源輸入到係統板上。
結語
這套完整的音頻信號采集和處理係統已經應用於實際的音頻設備中。
相關閱讀:
謹慎增加音頻處理係統的THD:如何操作,為什麼?
移動電話低功耗和高音頻質量設計方案
無源元件對音頻質量的影響
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 從土豆電池到精準農業:科學經典的現代回響
- 讓AI更懂生活:貿澤電子EIT係列探索AI在日常產品中的實用化設計
- 從“可演示”到“可部署”:人形機器人全鏈路測試驗證體係構建
- e絡盟與Same Sky簽署全球分銷協議,拓展高性能元器件版圖
- 告別“偏色”煩惱:光譜傳感器如何重塑手機攝影的真實色彩
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索




