基于SOPC的嵌入式數字音頻AGC系統的設計與實現
系統結構設計
技術是SOC(System on Chip)技術和電子設計自動化技術相結合的一種全新的嵌入式系統設計技術,為設計者提供了一個可以快速開發設計及驗證的系統設計平臺,用以搭建基于總線的系統。它包含了一系列的模塊,例如NiosⅡ處理器、存儲器、總線、JTAG等IP核,還有包含操作系統內核的嵌入式軟件開發工具。它可以將處理器、存儲器、I/O接口、硬件協處理器和普通的用戶邏輯等功能模塊都集成到一個FPGA芯片里,構建一個可編程的片上系統。
在系統結構上數字音頻AGC系統的設計主要包括3個層面:最底層是硬件層面,即物理硬件電路的原理圖設計,包括各功能IC的外圍電路設計;中間層是SOPC系統層,其設計主要有NiosⅡ軟核處理器的配置和添加,選擇各種可定制的外設IP核和自定義所需模塊,將定制好的各個外設模塊與Avalon總線進行連接,并為分配外設地址及中斷,最后經編譯、綜合生成可在FPGA內實現相應功能的SOPC系統模塊;最上層的是軟件層,主要是NiosⅡ軟核處理器運行的軟件程序,是用C/C++代碼編寫的,包括μC/OS-Ⅱ實時操作系統,設備的驅動程序和應用程序。
本系統選用的FPGA芯片是Altera公司所推出的CycloneⅡ系列的EP2C20Q240C8。該芯片采用90 nm工藝制造,最大可用I/O管腳142個并內嵌26個乘法器塊,支持使用Altera公司的SOPC Builder工具嵌入NiosⅡ軟核處理器。系統整體架構,如圖1所示。
2 數字音頻AGC算法的設計與實現
嵌入式數字音頻AGC系統的核心就是音頻AGC算法的設計,音頻AGC是音頻自動增益控制算法,是一種根據輸入音頻信號水平自動動態地調整增益的機制,AGC算法的好壞直接反映在處理后輸出的音頻聽覺感知效果。
2.1 算法基本思想
文中提出一種多參數融合帶反饋機制的音頻AGC處理算法,在保證輸出電平滿足條件的情況下,能有效解決傳統AGC中過沖或過衰現象,并能夠抑制背景噪聲的提升,能根據人耳聽覺特性輸出音量穩定平衡的音頻信號。
用yi(n)代表經過AGC處理的第i幀數字音頻信號;xi(n)代表這一幀原始的數字音頻信號;Gi表示這一幀的音頻增益因子,音頻AGC處理可以用如式(1)表示
2.2 關鍵特征參數提取
計算音頻增益因子Gi的關鍵是對當前數字音頻的狀態判斷。由于人耳對音量的主觀感覺是從聲音響度上來體現的,而響度是由發聲體振動幅度的大小來決定,并且人耳對不同頻率聲音的感應是不平坦的,所以人耳感知的聲音響度是頻率和聲壓級的函數曲線。基于人耳的響度感知特性,AGC算法中音頻增益因子Gi的計算需要綜合考慮聲音的振幅、短時能量和頻率這3個特征。
經過數字化的音頻信號實際上是一個時變信號,為了能對音頻信號進行分析,可以假設音頻信號在幾十ms的短時間內是平穩的。為了得到短時音頻信號,要對音頻信號分幀處理,分幀是連續的。為避免AGC系統處理后的因音頻分幀延遲帶來的畫音不同步現象,本設計將分幀定為20 ms。數字電視的音頻采樣率為48 kHz,所以一幀內的音頻樣值數有960點。
音頻信號的振幅可以用峰值表示,即由一幀音頻信號內的絕對值最大項來表示,用Pi代表第i幀數字音頻信號xi(n)的幀內峰值,那么
短時能量可以有效判斷信號幅度的大小,音頻信號的短時能量Ei定義如下
短時能量由于對信號進行平方運算,考慮到處理器的性能和實時性的保證,可以采用絕對值之和代替平方和來表示短時能量的變化,使運算簡化,其公式為
評論