技術達人:音頻信號采集與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?
guoqu,duidayinpinxinhaocaiyongxianfufangshi,jiduidaxinhaojinxingxianfushuchu,xiaoxinhaobuyuchuli。zheyang,rengrancunzaiyinpinxinhaoguoxiaoshi,yonghuzixingtiaojieyinliang,yehuiyingxiangyonghudeshoutingxiaoguo。suizhedianzijishu,jisuanjijishuhetongxinjishudexunmengfazhan,shuzixinhaochulijishuyiguangfandishenrudaorenmenshenghuodenggegelingyu。qizhongyuyinchulishishuzixinhaochulizuihuoyuedeyanjiufangxiangzhiyi,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達類高速器件,外部晶體經過內部的PLL倍(bei)頻(pin)以(yi)後(hou)可(ke)達(da)上(shang)百(bai)兆(zhao)。這(zhe)就(jiu)要(yao)求(qiu)信(xin)號(hao)線(xian)走(zou)等(deng)長(chang)線(xian)和(he)繪(hui)製(zhi)多(duo)層(ceng)電(dian)路(lu)板(ban)來(lai)消(xiao)除(chu)電(dian)磁(ci)幹(gan)擾(rao)和(he)信(xin)號(hao)的(de)反(fan)射(she)。在(zai)兩(liang)層(ceng)板(ban)的(de)前(qian)提(ti)下(xia),可(ke)以(yi)采(cai)取(qu)頂(ding)層(ceng)與(yu)底(di)層(ceng)走(zou)交(jiao)叉(cha)線(xian)、盡量加寬電源線和地線的寬度、電源線成"樹杈型"、模擬區和數字區分開等原則,可以達到比較好的效果。
音頻AGC算法的實現
AGC算法
使放大電路的增益隨信號強度的變化而自動調整的控製方法,就是AGC-自動增益控製。實現AGC可以是硬件電路,即AGC閉環電子電路,也可以是軟件算法。本文主要討論用軟件算法來實現音頻信號的AGC。
音頻AGC是音頻自動增益控製算法,更為準確的說是峰值自動增益控製算法,是一種根據輸入音頻信號水平自動動態地調整增益的機製。當音量(無論是捕捉到的音量還是再現的音量)超過某一門限值,信號就會被限幅。限幅指的是音頻設備的輸出不再隨著輸入而變化,輸出實質上變成了最大音量位置上的一條水平線;dangjiancedaoyinpinzengyidadaolemouyimenxianshi,tahuizidongjianxiaozengyilaibimianxianfudefasheng。lingyifangmian,ruguobuzhuodaodeyinliangtaidishi,xitongjiangzidongtigaozengyi。dangran,zengyidetiaozhengbuhuishiyinliangchaoguoyonghuzaitiaojiexiangdaozhongshezhidezhi。
圖3是音頻AGC算法的結構框圖。

AGC算法的實現過程
首先從串口獲取音頻數據,它是16位的整型數,一般來說,這些數都是比較小的,通過AGCsuanfajiangshurudeyinpinshujutouyingzaiyigegudingqujiannei,congershidebulunshurudeshujudianshuzhidaxiaodouhuidengbilidixiangzhegekongjianyingshe。yifangmianjianghuodedeyinpinshujuzuidazhiyuyuanlaidefengzhijinxingbijiao,ruguoyouxindefengzhichuxianjiujisuanxindezengyixishu;另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;dangyinliangjianxiaoshi,xindefengzhihuijianxiaobingqiequdaiyuanlaidefengzhi,congershifengzhixiajiang,shizengyixishushangsheng。zuihoushuchudeshujuchengyixinzengyixishuhouyingshedaoyinpinxinhaoshurudetouyingqujiannei。
圖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可編程電源,賦能高端裝備製造
技術文章更多>>
- 貿澤EIT係列新一期,探索AI如何重塑日常科技與用戶體驗
- 算力爆發遇上電源革新,大聯大世平集團攜手晶豐明源線上研討會解鎖應用落地
- 創新不止,創芯不已:第六屆ICDIA創芯展8月南京盛大啟幕!
- AI時代,為什麼存儲基礎設施的可靠性決定數據中心的經濟效益
- 矽典微ONELAB開發係列:為毫米波算法開發者打造的全棧工具鏈
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索




