基于AGC算法的音頻信號(hào)處理方法及FPGA實(shí)現(xiàn)
隨著現(xiàn)代通信技術(shù)的廣泛使用,通信企業(yè)問的競爭不斷加劇,為提升自身的競爭優(yōu)勢,通信企業(yè)需要將其通信信號(hào)的質(zhì)量提升,并提高通信系統(tǒng)各項(xiàng)指標(biāo)的穩(wěn)定性、安全性、高效性。在音頻信號(hào)處理方法及FPGA實(shí)現(xiàn)中,采用AGC算法,可提高音頻信號(hào)系統(tǒng)和音頻信號(hào)輸出的穩(wěn)定性,解決了AGC調(diào)試后的信號(hào)失真問題。本文針對基于實(shí)用AGC算法的音頻信號(hào)處理方法與FPGA實(shí)現(xiàn),及其相關(guān)內(nèi)容進(jìn)行了分析研究。
1 實(shí)用AGC算法在實(shí)際應(yīng)用中的原理
在通信設(shè)備使用過程中,語音通信是重要的組成部分,而在語言通信中音頻信號(hào)的質(zhì)量,決定著人們對通信系統(tǒng)的選擇。當(dāng)前在通信音頻信號(hào)處理中會(huì)采用AGC,其可保證信號(hào)輸出的穩(wěn)定性,降低信號(hào)輸出的干擾。通過實(shí)際驗(yàn)證,實(shí)用AGC算法與普通的AGC算法存在一定的差異,實(shí)用AGC算法是普通AGC算法的基礎(chǔ)上產(chǎn)生,其不僅可將信號(hào)傳輸中的干擾因素有效降低,還可保證音頻信號(hào)在傳輸中的穩(wěn)定性,準(zhǔn)確地將音頻信號(hào)的幅度變化情況顯示出來。隨著科技的發(fā)展,數(shù)字處理技術(shù),在音頻信號(hào)處理中的應(yīng)用,可降低信號(hào)的干擾,實(shí)現(xiàn)FPGA。
自動(dòng)增益控制(Automatic Gain Control,AGC)。其主要由增益放大器以及反饋回路兩部分組成。在其工作過程中,增益放大器組成部分,根據(jù)系統(tǒng)中反饋回路的幅度、閾值,采用一定的AGC算法,對增益值進(jìn)行調(diào)整。即AGC通過放大電路中自動(dòng)增益信號(hào)的強(qiáng)度,調(diào)整信號(hào)的自動(dòng)控制。在信號(hào)強(qiáng)度增加時(shí),AGC系統(tǒng)反饋回路的控制,按照一定關(guān)系進(jìn)行相應(yīng)的減小;反之,當(dāng)AGC系統(tǒng)增益放大器中信號(hào)幅度降低時(shí),反饋回路的增益,將按照兩者之間存在的一定關(guān)系,進(jìn)行相應(yīng)的增大。通過此方法,在AGC算法放大調(diào)整后,確保了通信系統(tǒng)信號(hào)輸出的幅度可基本維持在恒定的狀態(tài)。文中將AGC算法應(yīng)用于音頻信號(hào)處理中,可實(shí)現(xiàn)FPGA,并可有效降低音頻信號(hào)輸出時(shí)的干擾,保證信號(hào)的穩(wěn)定。
2 基于AGC算法的音頻信號(hào)處理設(shè)計(jì)
在音頻信號(hào)處理過程中,應(yīng)用AGC算法分為4個(gè)步驟:
步驟1 確定音頻信號(hào)輸出的動(dòng)態(tài)范圍。在設(shè)計(jì)基于使用AGC算法的音頻信號(hào)處理中,需根據(jù)音頻信號(hào)的實(shí)際情況而定。若在設(shè)計(jì)過程中,實(shí)用AGC系統(tǒng)中期望值為一個(gè)定值時(shí),此時(shí)音頻信號(hào)輸出的幅度將趨近AGC系統(tǒng)的這一期望值。在趨近這一期望值的過程中,輸出信號(hào)會(huì)不斷地調(diào)整,進(jìn)而造成信號(hào)輸出端幅度的不穩(wěn)定,所以為保證音頻信號(hào)輸出的穩(wěn)定性,可在AGC期望值的基礎(chǔ)上,以期望值為中心,設(shè)計(jì)并確定音頻信號(hào)輸出穩(wěn)定的一個(gè)動(dòng)態(tài)范圍。當(dāng)AGC算法調(diào)整中,音頻信號(hào)的幅度在這一動(dòng)態(tài)范圍內(nèi),則可認(rèn)定音頻信號(hào)的輸出幅度是穩(wěn)定的。一般情況下,音頻信號(hào)輸出幅度范圍是AGC系統(tǒng)期望值加減0.1 dB,同時(shí)為了對音頻信號(hào)輸出的電路進(jìn)行保護(hù),需要將AGC系統(tǒng)的期望值,設(shè)置為音頻信號(hào)輸出滿值下減少0.25 dB。
步驟2 確定增益調(diào)整速度。在正常語音通信中,語言信號(hào)的幅度在不停變化,為了確定、保證并呈現(xiàn)語音信號(hào)幅度的正常變化趨勢,需確保其增益不變或是在一個(gè)較小的范圍內(nèi)變化,由此才可保證音頻信號(hào)傳輸中的幅度不失真。在音頻信號(hào)傳輸過程中受到的干擾,使得音頻信號(hào)的平均幅度相對較小,所以需將其增益值加大,確保信號(hào)的整體幅度增加,以此保證音頻信號(hào)不失真。實(shí)用AGC在音頻信號(hào)中的應(yīng)用,其增益值需遂慢而快,隨著信號(hào)幅度的慢變化而進(jìn)行忽快的變化。當(dāng)音頻信號(hào)增益調(diào)整的時(shí)間與音頻信號(hào)正常情況下的調(diào)整時(shí)間相比較長時(shí),此時(shí)的增益值不會(huì)發(fā)生較大變化,需根據(jù)音頻信號(hào)輸出的特點(diǎn),設(shè)定其增益調(diào)整的時(shí)間為4 s。若音頻信號(hào)輸出較大時(shí),此時(shí)的增益需快速減小,若不進(jìn)行減小調(diào)整,則會(huì)造成器件的損壞。而當(dāng)信號(hào)的輸出值大于期望值的上限時(shí),增益值調(diào)整時(shí)間需設(shè)定為0.5 ms。
實(shí)用AGC算法的增益值計(jì)算公式為
其中,A(n+1)是對信號(hào)傳輸調(diào)整后的增益值;A(n)是調(diào)整前的增益值;Ain是信號(hào)幅度值;A0是期望幅度值;2-a為一個(gè)常數(shù)。其中a值不同,AGC的調(diào)整速度也不同,根據(jù)實(shí)用AGC算法的實(shí)際要求,信號(hào)輸出幅度小于期望值上限時(shí),a=16,增益的調(diào)整將變慢,若a=3,此時(shí)的增益調(diào)整速度則將加快。
步驟3 確定輸入信號(hào)的動(dòng)態(tài)范圍。在音頻信號(hào)輸入的過程中,若設(shè)定的輸入值范圍過大,將會(huì)使信號(hào)在傳輸過程中,產(chǎn)生較大的噪聲,影響信號(hào)的輸入、輸出質(zhì)量。相反若音頻輸入信號(hào)的設(shè)定的范圍較小,因信號(hào)較小,會(huì)被忽略,進(jìn)而造成音頻輸入信號(hào)的失真。根據(jù)音頻信號(hào)的輸入時(shí)間情況,將36 dB的信號(hào)強(qiáng)度確定為噪聲。使用AGC算法,將音頻信號(hào)的輸入動(dòng)態(tài)范圍確定,可根據(jù)噪聲存在的時(shí)間,判斷噪聲是否發(fā)生在音頻信號(hào)傳輸?shù)拈g隙,若噪聲存在的時(shí)間相對較小,則可將其看成是音頻信號(hào)的間隙。通常噪聲的判斷時(shí)間設(shè)定為5 s最佳。根據(jù)噪聲存在的時(shí)間及信號(hào)輸入的實(shí)際情況,將音頻信號(hào)最小值到噪聲門限之間約6 dB的范圍,確定為音頻信號(hào)輸入的動(dòng)態(tài)范圍。在這一范圍內(nèi)噪聲對音頻信號(hào)的干擾強(qiáng)度較,因此需要將增益值固定。
步驟4 對增益值的大小進(jìn)行限制。為避免發(fā)生增益過大,將信號(hào)傳輸器件或設(shè)備燒毀,需要將其增益值控制在一個(gè)范圍內(nèi),若AGC計(jì)算得出的值,大于該范圍的上限,此時(shí)增益值取最大值,反之取最小值。根據(jù)音頻信號(hào)的實(shí)際傳輸情況,增益范圍在-3~30 dB。
通過以上4個(gè)步驟,可將實(shí)用AGC算法在音頻信號(hào)處理中的應(yīng)用流程,設(shè)計(jì)如圖1所示。
3 AGC算法的音頻信號(hào)處理仿真及實(shí)現(xiàn)
3.1 仿真實(shí)驗(yàn)
在音頻信號(hào)處理中,根據(jù)音頻輸入、輸出的幅度變化,制作AGC仿真實(shí)驗(yàn)。按照實(shí)用AGC算法的流程和信號(hào)計(jì)算式(2),將音頻的輸出信號(hào)計(jì)算出來,此時(shí)當(dāng)音頻信號(hào)突然減小時(shí),就會(huì)出現(xiàn)過沖現(xiàn)象,為將過沖現(xiàn)象消除/避免,需按照實(shí)用AGC算法公式,為音頻信號(hào)的輸出增加延時(shí),延時(shí)可按式(3)計(jì)算
y(n)=x(n)×G(n) (2)
y(n)=x(n-32)×G(n) (3)
增加音頻信號(hào)延時(shí),可將過沖現(xiàn)象解決和消除,雖增加延時(shí)會(huì)對音頻信號(hào)產(chǎn)生一定影響,但其不利影響在可接受范圍內(nèi)。仿真實(shí)驗(yàn)結(jié)果如圖2和圖3所示。
在音頻信號(hào)輸入的過程中,當(dāng)音頻信號(hào)增益變大后,其將相對緩慢,此時(shí)進(jìn)行的增益延時(shí)相對較小,增益增加的幅度也相對較小,雖造成輸出的音頻信號(hào)較大,但已接近理想輸出幅度,因此對信號(hào)輸出器件的安全性將不會(huì)造成影響。
3.2 FPGA的實(shí)現(xiàn)
實(shí)驗(yàn)中,F(xiàn)PGA的信號(hào)處理流程如圖4所示。
音頻信號(hào)通過音頻采樣的形式進(jìn)行數(shù)字過濾,得到圖4中I、Q兩路信號(hào),可使用下式
將形成的兩路信號(hào)幅值計(jì)算出來,AGC系統(tǒng)中反饋的幅值以A(n)=Ain(n)×G(n)式(5)計(jì)算得出。根據(jù)算出的A和Ain值對音頻信號(hào)進(jìn)行增益調(diào)整,調(diào)整時(shí)間為4 s。
當(dāng)音頻信號(hào)的幅度發(fā)生變化時(shí),在增益開始階段,進(jìn)行的調(diào)整相對較快,此時(shí)對增益的影響較大,即信號(hào)增益變化較大。經(jīng)過約4 s的增益調(diào)整,可將信號(hào)幅度的輸出值調(diào)整到期望值,隨著輸入音頻信號(hào)的快速變化,輸出的音頻信號(hào)也會(huì)隨著輸入信號(hào)的變化而發(fā)生相應(yīng)的改變,但在輸入信號(hào)突然增大時(shí),音頻輸出信號(hào)不會(huì)產(chǎn)生明顯變化,由此實(shí)現(xiàn)了基于AGC算法的音頻FPGA。
4 結(jié)束語
針對AGC算法的工作原理、音頻信號(hào)處理、FPGA等內(nèi)容進(jìn)行分析。在音頻信號(hào)處理過程中,采用實(shí)用AGC算法,通過采取仿真實(shí)驗(yàn),得到實(shí)用AGC算法在音頻信號(hào)處理及FPGA實(shí)現(xiàn)中的應(yīng)用,并可降低信號(hào)傳輸中的失真問題,有效提高了信號(hào)傳輸?shù)姆€(wěn)定性。實(shí)驗(yàn)結(jié)果表明,將實(shí)用AGC算法,應(yīng)用于音頻信號(hào)處理方法與FPGA實(shí)現(xiàn)中,其具有良好的性能,且確保了信號(hào)的穩(wěn)定性。