《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 可編程邏輯 > 設(shè)計(jì)應(yīng)用 > 基于SOPC技術(shù)的嵌入式數(shù)字音頻AGC系統(tǒng)的設(shè)計(jì)
基于SOPC技術(shù)的嵌入式數(shù)字音頻AGC系統(tǒng)的設(shè)計(jì)
摘要: 本設(shè)計(jì)采用SOPC技術(shù),,利用FPGA實(shí)現(xiàn)SDI接口邏輯,,移植μC/OS-Ⅱ?qū)崟r(shí)操作系統(tǒng)為嵌入式應(yīng)用軟件運(yùn)行平臺(tái),,可以實(shí)現(xiàn)與廣電設(shè)備的無(wú)縫接合,。通過(guò)設(shè)計(jì)采用一種適于實(shí)時(shí)性的多參數(shù)融合的AGC算法對(duì)數(shù)字音頻信號(hào)進(jìn)行AGC處理,,實(shí)現(xiàn)了具有抑制一定噪聲能力的嵌入式數(shù)字音頻AGC系統(tǒng)。測(cè)試表明該系統(tǒng)達(dá)到設(shè)計(jì)預(yù)期目標(biāo),,改善了傳統(tǒng)音頻AGC處理中的一些缺陷,,輸出音頻穩(wěn)定平衡,完全滿足實(shí)際需要,,可廣泛應(yīng)用在數(shù)字演播室中的數(shù)字音頻實(shí)時(shí)AGC處理上,。
Abstract:
Key words :

針對(duì)傳統(tǒng)音頻AGC處理中的一些缺陷提出有效的改良方法,設(shè)計(jì)并實(shí)現(xiàn)應(yīng)用在數(shù)字電視臺(tái)實(shí)時(shí)視音頻處理中,,最終獲得穩(wěn)定平衡的音量輸出,,并具有一定噪音抑制能力的基于SOPC技術(shù)的嵌入式數(shù)字音頻AGC系統(tǒng)。

1.系統(tǒng)結(jié)構(gòu)設(shè)計(jì)

技術(shù)是SOC(System on Chip)技術(shù)和電子設(shè)計(jì)自動(dòng)化技術(shù)相結(jié)合的一種全新的嵌入式系統(tǒng)設(shè)計(jì)技術(shù),,為設(shè)計(jì)者提供了一個(gè)可以快速開發(fā)設(shè)計(jì)及驗(yàn)證的系統(tǒng)設(shè)計(jì)平臺(tái),,用以搭建基于總線的系統(tǒng)。它包含了一系列的模塊,,例如NiosⅡ處理器,、存儲(chǔ)器、總線、JTAG等IP核,,還有包含操作系統(tǒng)內(nèi)核的嵌入式軟件開發(fā)工具,。它可以將處理器、存儲(chǔ)器,、I/O接口,、硬件協(xié)處理器和普通的用戶邏輯等功能模塊都集成到一個(gè)FPGA芯片里,構(gòu)建一個(gè)可編程的片上系統(tǒng),。

在系統(tǒng)結(jié)構(gòu)上數(shù)字音頻AGC系統(tǒng)的設(shè)計(jì)主要包括3個(gè)層面:最底層是硬件層面,,即物理硬件電路的原理圖設(shè)計(jì),包括各功能IC的外圍電路設(shè)計(jì),;中間層是SOPC系統(tǒng)層,,其設(shè)計(jì)主要有NiosⅡ軟核處理器的配置和添加,選擇各種可定制的外設(shè)IP核和自定義所需模塊,,將定制好的各個(gè)外設(shè)模塊與Avalon總線進(jìn)行連接,,并為分配外設(shè)地址及中斷,最后經(jīng)編譯,、綜合生成可在FPGA內(nèi)實(shí)現(xiàn)相應(yīng)功能的SOPC系統(tǒng)模塊,;最上層的是軟件層,主要是NiosⅡ軟核處理器運(yùn)行的軟件程序,,是用C/C++代碼編寫的,,包括μC/OS-Ⅱ?qū)崟r(shí)操作系統(tǒng),設(shè)備的驅(qū)動(dòng)程序和應(yīng)用程序,。

本系統(tǒng)選用的FPGA芯片是Altera公司所推出的CycloneⅡ系列的EP2C20Q240C8,。該芯片采用90 nm工藝制造,最大可用I/O管腳142個(gè)并內(nèi)嵌26個(gè)乘法器塊,,支持使用Altera公司的SOPC Builder工具嵌入NiosⅡ軟核處理器,。系統(tǒng)整體架構(gòu),如圖1所示,。

嵌入式數(shù)字音頻AGC系統(tǒng)整體框圖

圖1 嵌入式數(shù)字音頻AGC系統(tǒng)整體框圖

2 數(shù)字音頻AGC算法的設(shè)計(jì)與實(shí)現(xiàn)

嵌入式數(shù)字音頻AGC系統(tǒng)的核心就是音頻AGC算法的設(shè)計(jì),,音頻AGC是音頻自動(dòng)增益控制算法,是一種根據(jù)輸入音頻信號(hào)水平自動(dòng)動(dòng)態(tài)地調(diào)整增益的機(jī)制,,AGC算法的好壞直接反映在處理后輸出的音頻聽覺感知效果,。

2.1 算法基本思想

文中提出一種多參數(shù)融合帶反饋機(jī)制的音頻AGC處理算法,在保證輸出電平滿足條件的情況下,,能有效解決傳統(tǒng)AGC中過(guò)沖或過(guò)衰現(xiàn)象,,并能夠抑制背景噪聲的提升,能根據(jù)人耳聽覺特性輸出音量穩(wěn)定平衡的音頻信號(hào),。

用yi(n)代表經(jīng)過(guò)AGC處理的第i幀數(shù)字音頻信號(hào),;xi(n)代表這一幀原始的數(shù)字音頻信號(hào),;Gi表示這一幀的音頻增益因子,音頻AGC處理可以用如式(1)表示

2.2 關(guān)鍵特征參數(shù)提取

計(jì)算音頻增益因子Gi的關(guān)鍵是對(duì)當(dāng)前數(shù)字音頻的狀態(tài)判斷,。由于人耳對(duì)音量的主觀感覺是從聲音響度上來(lái)體現(xiàn)的,,而響度是由發(fā)聲體振動(dòng)幅度的大小來(lái)決定,并且人耳對(duì)不同頻率聲音的感應(yīng)是不平坦的,,所以人耳感知的聲音響度是頻率和聲壓級(jí)的函數(shù)曲線,。基于人耳的響度感知特性,,AGC算法中音頻增益因子Gi的計(jì)算需要綜合考慮聲音的振幅,、短時(shí)能量和頻率這3個(gè)特征。

經(jīng)過(guò)數(shù)字化的音頻信號(hào)實(shí)際上是一個(gè)時(shí)變信號(hào),,為了能對(duì)音頻信號(hào)進(jìn)行分析,,可以假設(shè)音頻信號(hào)在幾十ms的短時(shí)間內(nèi)是平穩(wěn)的。為了得到短時(shí)音頻信號(hào),,要對(duì)音頻信號(hào)分幀處理,,分幀是連續(xù)的。為避免AGC系統(tǒng)處理后的因音頻分幀延遲帶來(lái)的畫音不同步現(xiàn)象,,本設(shè)計(jì)將分幀定為20 ms,。數(shù)字電視的音頻采樣率為48 kHz,所以一幀內(nèi)的音頻樣值數(shù)有960點(diǎn),。

音頻信號(hào)的振幅可以用峰值表示,,即由一幀音頻信號(hào)內(nèi)的絕對(duì)值最大項(xiàng)來(lái)表示,用Pi代表第i幀數(shù)字音頻信號(hào)xi(n)的幀內(nèi)峰值,,那么

短時(shí)能量可以有效判斷信號(hào)幅度的大小,,音頻信號(hào)的短時(shí)能量Ei定義如下

短時(shí)能量由于對(duì)信號(hào)進(jìn)行平方運(yùn)算,考慮到處理器的性能和實(shí)時(shí)性的保證,,可以采用絕對(duì)值之和代替平方和來(lái)表示短時(shí)能量的變化,,使運(yùn)算簡(jiǎn)化,,其公式為

短時(shí)過(guò)零率是指每幀內(nèi)信號(hào)通過(guò)零值的次數(shù),,對(duì)于數(shù)字音頻信號(hào)實(shí)質(zhì)上就是一幀信號(hào)采樣點(diǎn)符號(hào)的變化次數(shù),由于采樣頻率是固定的,,因此短時(shí)過(guò)零率可以在一定程度上反映音頻信號(hào)的頻譜特征,,用作一種音頻信號(hào)頻率的粗略估計(jì)。短時(shí)過(guò)零率Zi表示為

其中sgn[…]是符號(hào)函數(shù),,即

提取音頻中以上3個(gè)關(guān)鍵特征參數(shù)就可以作為音頻增益因子Gi的計(jì)算和判決的條件,。

2.3 反饋機(jī)制的實(shí)現(xiàn)

在前饋處理中當(dāng)輸入的第i幀數(shù)字音頻信號(hào)xi(n)的幀內(nèi)峰值Pi超過(guò)用戶設(shè)定的峰值電平門限值Ppeak信號(hào)就會(huì)被瞬間衰減,增益因子變小,。而當(dāng)輸入的第i幀數(shù)字音頻信號(hào)xi(n)的幀內(nèi)峰值Pi低于用戶設(shè)定的提升電平門限值Pact并且高于用戶設(shè)定的噪音電平門限值Pnoise信號(hào)就會(huì)被瞬間提升,,增益因子變大,,低于噪音電平門限值Pnoise的信號(hào)就不會(huì)被提升。

前饋機(jī)制能在音頻信號(hào)突變導(dǎo)致幀內(nèi)峰值溢出或過(guò)小時(shí),,迅速改變?cè)鲆嬉蜃?,用非線性的變化將音頻穩(wěn)定在所設(shè)定的動(dòng)態(tài)范圍內(nèi)(峰值電平門限Ppeak和提升電平門限Pact之間)。而新增加的反饋機(jī)制能通過(guò)判斷處理后的短時(shí)能量調(diào)整增益因子Gi+1,,使音頻信號(hào)變化穩(wěn)定,,在一個(gè)較寬的時(shí)間尺度上均衡響度。AGC算法中計(jì)算增益因子的具體流程,,如圖2所示,。

增益因子計(jì)算流程框圖

圖2 增益因子計(jì)算流程框圖

在反饋機(jī)制中使用α歸一化濾波器對(duì)滿足條件的輸入音頻信號(hào)和上一幀的增益因子Gi調(diào)整計(jì)算新的增益因子

α 歸一化濾波器可以簡(jiǎn)單表示為

為了避免增益因子的劇烈波動(dòng),,需要加大增益因子Gi的權(quán)重值α,,而權(quán)重值α的大小決定了濾波器歸一化的收斂速度,|1-α|越大,,則收斂速度越快,。權(quán)重值α的計(jì)算需要綜合參考短時(shí)過(guò)零率Zi、處理前的短時(shí)能量Mi和處理后的短時(shí)能量,。在音頻劇烈變化的時(shí)候,,增益因子仍然能夠收放自如,穩(wěn)定平衡音頻信號(hào)的輸出,。

2.4 噪音抑制處理方法

在AGE中對(duì)噪音的抑制是一個(gè)重要的部分,,噪音主要是音頻信號(hào)間的靜音噪音和AGE處理中產(chǎn)生的噪音。對(duì)靜音噪音的抑制主要靠噪音電平門限的設(shè)定,,當(dāng)輸入的第i幀數(shù)字音頻信號(hào)xi(n)的幀內(nèi)峰值Pi低于用戶設(shè)定的噪音電平門限值Pnoise時(shí),,就將該幀的增益因子Gi調(diào)整為1,不進(jìn)行放大處理,。當(dāng)輸入的音頻峰值連續(xù)低于噪音電平門限的時(shí)間達(dá)到靜音時(shí)間ts則將輸出音頻靜音,,這樣就可以抑制噪音而不影響音頻輸出質(zhì)量。

AGC處理中一個(gè)重要問(wèn)題是,,在音頻分幀的交界處的樣值點(diǎn)會(huì)因?yàn)樵鲆嬉蜃覩i的突然改變而產(chǎn)生原本連續(xù)信號(hào)樣值的突變,,當(dāng)分幀為20 ms時(shí),AGC處理效果相當(dāng)于產(chǎn)生50 Hz幅度不定的階躍信號(hào)噪音,。噪音信號(hào)Unoise的大小為

當(dāng)xi-1(960)和xi(1)相差較大時(shí)會(huì)產(chǎn)生較大的影響,。在本設(shè)計(jì)中為了消除該噪音,改為在每一個(gè)處理幀開始后的第一個(gè)過(guò)零點(diǎn)進(jìn)行增益因子的更新,。此時(shí)噪音的影響為

由于音頻信號(hào)樣值的連續(xù)性,,在過(guò)零點(diǎn)處xi-1(n-1)和xi-1(n)均趨向于O,因此unoise也趨向于0,。由于人耳的可聽聲音頻率范圍在20 Hz~20 kHz,,在音頻采樣和A/D轉(zhuǎn)換時(shí)會(huì)濾除人耳的可聽聲音頻率范圍外的頻率分量,,而每個(gè)周期內(nèi)都有兩個(gè)過(guò)零點(diǎn),所以增益因子的更新速度不受影響,。由此則AGC處理帶來(lái)的噪音也被很好的抑制,。

2.5 仿真結(jié)果及分析

為了驗(yàn)證該算法的正確性和有效性,采用Matlab對(duì)該數(shù)字音頻AGC算法進(jìn)行仿真,。仿真結(jié)果如圖3所示,。

AGC算法仿真結(jié)果

圖3 AGC算法仿真結(jié)果

在仿真中輸入一段聲音忽大忽小的數(shù)字音頻,從經(jīng)過(guò)AGC處理后的數(shù)字音頻輸出來(lái)看,,大音量的音頻信號(hào)被有效衰減,,小音量的音頻信號(hào)被有效放大,正常音量的音頻信號(hào)幾乎沒(méi)有變化,。該段音頻長(zhǎng)度為6 s,,增益因子在此期間可調(diào)整300次,該算法的增益因子調(diào)整速度可以滿足音頻劇烈變化時(shí)的使用需求,。對(duì)噪音的抑制也起到了很好的效果,,人耳的實(shí)際聽覺感知達(dá)到了滿意的效果。

3 軟件層設(shè)計(jì)

目前比較流行的嵌入式操作系統(tǒng)主要有VxWorks,,Windows CE,,uCLinux,μC/OS-Ⅱ等,。μC/OS-Ⅱ的規(guī)模較小,、實(shí)時(shí)性和可靠性較高,能夠滿足嵌入式數(shù)字音頻AGE系統(tǒng)對(duì)實(shí)時(shí)性的要求,,考慮到NiosⅡIDE開發(fā)環(huán)境對(duì)μC/OS-Ⅱ的良好支持,,故操作系統(tǒng)選擇μC/OS-Ⅱ。μC/OS -Ⅱ是一種可移植,、可固化,、可裁減、占先式的多任務(wù)實(shí)時(shí)操作系統(tǒng)內(nèi)核,。它通過(guò)為每個(gè)任務(wù)分配單獨(dú)的任務(wù)堆棧來(lái)保存任務(wù)工作環(huán)境,,提供任務(wù)管理與調(diào)度,任務(wù)間的同步,、互斥與通信,,時(shí)間和中斷管理、內(nèi)存的動(dòng)態(tài)分配等多種系統(tǒng)服務(wù),。

系統(tǒng)運(yùn)行時(shí),首先進(jìn)行系統(tǒng)初始化操作,,即初始化所有數(shù)據(jù)結(jié)構(gòu),,分配堆??臻g,然后建立任務(wù)間通訊的信號(hào)量或者消息隊(duì)列,,進(jìn)而創(chuàng)建任務(wù),,并且分配不同的優(yōu)先級(jí),所有任務(wù)被置于就緒態(tài),,系統(tǒng)從優(yōu)先級(jí)最高的任務(wù)開始執(zhí)行,。

軟件設(shè)計(jì)主要包括嵌入式操作系統(tǒng)μC/OS-Ⅱ的移植、LCD顯示控制器和自定義音頻模塊的驅(qū)動(dòng)程序設(shè)計(jì),、算法設(shè)計(jì)實(shí)現(xiàn)3個(gè)主要部分,。嵌入式音頻AGC系統(tǒng)根據(jù)功能劃分主要有以下4個(gè)任務(wù),如圖4所示,。

嵌入式音頻AGC系統(tǒng)任務(wù)調(diào)度表

圖4 嵌入式音頻AGC系統(tǒng)任務(wù)調(diào)度表

(1)系統(tǒng)初始化任務(wù),,主要是用以初始化整個(gè)嵌入式音頻AGC系統(tǒng),包括初始化各種系統(tǒng)變量,、LCD控制器,、鍵盤、自定義音頻接口模塊等系統(tǒng)模塊,,此外還擔(dān)負(fù)著創(chuàng)建其他任務(wù)和信號(hào)量的任務(wù),,是系統(tǒng)正常運(yùn)行必不可少的一環(huán),該任務(wù)在系統(tǒng)中有最高的優(yōu)先級(jí),。在正常初始化系統(tǒng)以后將該任務(wù)刪除以節(jié)省系統(tǒng)開支,。

(2)音頻AGC處理任務(wù),對(duì)自定義音頻接口的輸入音頻進(jìn)行AGC處理,,配合自定義音頻接口的驅(qū)動(dòng)程序?qū)⑻幚砗玫囊纛l進(jìn)行輸出,。該任務(wù)是嵌入式音頻AGC系統(tǒng)的核心任務(wù),在系統(tǒng)初始化任務(wù)完成并刪除后成為系統(tǒng)內(nèi)優(yōu)先級(jí)最高的任務(wù),。

(3)鍵盤輸入響應(yīng)處理任務(wù),,對(duì)PIO輸入的按鍵信息進(jìn)行相應(yīng)處理,如果有改變參數(shù)設(shè)置等重要信息要通過(guò)信號(hào)量及時(shí)反饋給音頻AGC處理任務(wù),,同時(shí)負(fù)責(zé)輸出要在LCD上顯示的內(nèi)容,,通過(guò)郵箱信號(hào)量發(fā)送給LCD顯示任務(wù)。它的優(yōu)先級(jí)比LCD顯示任務(wù)高,。

(4)LCD顯示任務(wù),,將接收到的內(nèi)容配合LCD控制器驅(qū)動(dòng)程序進(jìn)行LCD的顯示輸出。

4 結(jié)束語(yǔ)

本設(shè)計(jì)采用SOPC技術(shù),,利用FPGA實(shí)現(xiàn)SDI接口邏輯,,移植μC/OS-Ⅱ?qū)崟r(shí)操作系統(tǒng)為嵌入式應(yīng)用軟件運(yùn)行平臺(tái),可以實(shí)現(xiàn)與廣電設(shè)備的無(wú)縫接合,。通過(guò)設(shè)計(jì)采用一種適于實(shí)時(shí)性的多參數(shù)融合的AGC算法對(duì)數(shù)字音頻信號(hào)進(jìn)行AGC處理,,實(shí)現(xiàn)了具有抑制一定噪聲能力的嵌入式數(shù)字音頻AGC系統(tǒng),。測(cè)試表明該系統(tǒng)達(dá)到設(shè)計(jì)預(yù)期目標(biāo),改善了傳統(tǒng)音頻AGC處理中的一些缺陷,,輸出音頻穩(wěn)定平衡,,完全滿足實(shí)際需要,可廣泛應(yīng)用在數(shù)字演播室中的數(shù)字音頻實(shí)時(shí)AGC處理上,。

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。