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