馬 飛,蔣 超,郭年庚
(1.中國電子科技集團(tuán)公司第五十四研究所,河北石家莊050081;2.電子科技大學(xué)通信與信息工程學(xué)院,四川成都611731;3.北京科技大學(xué)計算機(jī)與通信工程學(xué)院,北京100083)
在無線通信系統(tǒng)中,由于無線信道存在的各種衰落現(xiàn)象,發(fā)射機(jī)功率的變化以及通信雙方的相互運(yùn)動,會導(dǎo)致接收端收到的射頻信號功率在一個較大的范圍內(nèi)波動[1,2]。如果信號功率過大,超過接收機(jī)能夠承受的量值,那么將會導(dǎo)致接收信號失真甚至接收機(jī)射頻電路損壞;反之,如果信號功率過小,那么很有可能接收機(jī)無法捕捉到該信號,造成信號的丟失[3]。而自動增益控制(AGC)模塊可以降低這些情況出現(xiàn)的概率,提高接收信號的可靠性。因此,AGC電路是無線通信系統(tǒng)的一個必不可少的部分。
通常AGC分為2類:外部AGC和內(nèi)部AGC,外部AGC的優(yōu)勢是調(diào)節(jié)范圍較大。在實(shí)際應(yīng)用中,利用它可以使原本變化較大的射頻信號處于一個較小的波動范圍之內(nèi)[4,5]。而內(nèi)部AGC的調(diào)節(jié)范圍較小,但是在可調(diào)節(jié)范圍內(nèi)往往具有良好的抗干擾性以及便于調(diào)試的特點(diǎn),并且功率調(diào)節(jié)的步長可以根據(jù)實(shí)際情況來設(shè)定[6]。本文重點(diǎn)分析數(shù)字內(nèi)部AGC的改進(jìn)算法。
通常內(nèi)部AGC處于接收機(jī)的數(shù)字下變頻(DDC)之后,通過反饋的形式[7,8],以AGC模塊的輸出數(shù)據(jù)的能量為標(biāo)準(zhǔn)對輸入AGC的數(shù)據(jù)幅度進(jìn)行調(diào)整[9,10],從而達(dá)到控制功率的作用[11,12],如圖1所示。
圖1 內(nèi)部AGC架構(gòu)
從具體的實(shí)現(xiàn)方式來看,內(nèi)部AGC的結(jié)構(gòu)如圖2所示,輸入的數(shù)據(jù)首先經(jīng)過能量平均模塊,計算出一段時間的采樣點(diǎn)的平均能量。設(shè)這段時間內(nèi)的采樣點(diǎn)數(shù)為N,那么平均能量表示為:
式中,s(t)表示輸入的信號,這里需要指出的是N的取值需要滿足一定的條件。為了保證平均能量的準(zhǔn)確估計,N的值應(yīng)當(dāng)取得足夠大。同時,為了保證N個采樣點(diǎn)之間的信號能量不發(fā)生顯著變化,N的值又應(yīng)當(dāng)取得足夠小。設(shè)計中可以把該值設(shè)為可調(diào),根據(jù)實(shí)際情況測定,這里N=128。
圖2 內(nèi)部AGC原理
接下來將平均能量輸入對數(shù)查找表模塊,對能量值取對數(shù)之后將該對數(shù)能量與參考值的對數(shù)值相減,所得的結(jié)果送入運(yùn)算判決模塊,該模塊的輸出作為指數(shù)查找表的輸入地址,輸出的數(shù)據(jù)就是取2的指數(shù)次方的輸出,然后將該輸出與輸入數(shù)據(jù)進(jìn)行復(fù)數(shù)乘法,實(shí)現(xiàn)功率控制。
對于傳統(tǒng)的內(nèi)部AGC的判決模塊,往往是設(shè)定一個閾值,當(dāng)對數(shù)能量與參考值的對數(shù)值之差的模大于該閾值的時候,將衰減因子coef賦予一個定值A(chǔ),當(dāng)差值的模小于該閾值的時候coef置為0。顯而易見,在這種方式中,無論輸入數(shù)據(jù)的能量與參考能量相差多少都按照同樣的速率進(jìn)行功率調(diào)節(jié),收斂速度過慢?;谶@一點(diǎn),本文提出一種改進(jìn)算法——雙因子功率控制算法,下面將對該算法進(jìn)行詳細(xì)闡述。
本文提出的快速收斂的內(nèi)部AGC算法流程如圖3所示。AGC首先需要計算輸入信號的分段能量平均值Q,這里選取分段的長度為128個采樣點(diǎn)。圖中的K0是參考功率,也就是需要最終收斂的功率值,這里K0的取值根據(jù)無線通信系統(tǒng)接收到的信號的實(shí)際功率值來確定。不斷對參考能量與輸入信號的平均能量Q取對數(shù)之后再進(jìn)行減法操作,記所得的差值為e。設(shè)定2個閾值(閾值1>閾值2),如果e的絕對值≥閾值1,那么說明信號能量與參考能量相差較大,這里采用一個較大的控制因子coef_h對信號功率進(jìn)行控制,如果e的絕對值≥閾值2,并且≤閾值1,那么說明信號能量與參考能量相差較小,則采用一個較小的控制因子coef_l,如果e的絕對值≤閾值2,則說明信號能量與參考能量相差很小,將控制因子取為0,不對輸入信號進(jìn)行功率控制。得到了控制因子coef之后,將其與e進(jìn)行乘累加運(yùn)算。最后對乘累加的結(jié)果進(jìn)行2的指數(shù)運(yùn)算得到功率補(bǔ)償?shù)臄?shù)值,再與輸入信號相乘,以達(dá)到功率控制的目的。本文對算法進(jìn)行了仿真,AGC模塊的Matlab仿真圖如圖4所示,輸入激勵為幅度為1的正弦波。
圖3 內(nèi)部AGC的算法
圖4 原始輸入功率恒定的正弦信號及AGC輸出
內(nèi)部AGC系統(tǒng)由4個部分組成:能量平均器、對數(shù)查找表、運(yùn)算判定器和指數(shù)查找表。能量平均器的實(shí)現(xiàn)方式是首先對輸入數(shù)據(jù)的實(shí)部和虛部進(jìn)行平方和運(yùn)算,得出的數(shù)據(jù)進(jìn)行一段時間的累加操作,然后再取平均。能量平均后的數(shù)據(jù)送入到對數(shù)查找表的地址輸入端,查找表的輸出即對數(shù)運(yùn)算后的能量均值。對數(shù)查找表輸出的數(shù)據(jù)就是圖3中的log2(Q(n-1)),將此數(shù)據(jù)按照圖3中的算法進(jìn)行運(yùn)算判定,得出相應(yīng)的控制因子coef,最終得出圖3中ac(n)的大小。接下來對ac(n)取2的指數(shù)的操作。采用的方式和取對數(shù)一樣,利用查找表來實(shí)現(xiàn)。最后通過復(fù)數(shù)乘法器IP核實(shí)現(xiàn)對輸入信號的功率控制。圖4為測試中常用的正弦信號為輸入時的AGC的輸出;圖5為AGC模塊的RTL實(shí)現(xiàn)的結(jié)構(gòu)圖,主要包括:能量平均、對數(shù)查表、運(yùn)算判定、指數(shù)查表和增益補(bǔ)償?shù)饶K。
圖5 改進(jìn)的內(nèi)部AGC的RTL結(jié)構(gòu)
圖6為內(nèi)部AGC模塊的Modelsim仿真輸出數(shù)據(jù)導(dǎo)入Matlab的顯示圖。其中輸入信號由Matlab產(chǎn)生的正弦信號經(jīng)過16 bit量化之后得到。從圖中可以看出,信號幅度剛開始有比較大的調(diào)整,隨后調(diào)整幅度越來越小,這與算法的預(yù)期效果相一致。
圖6 Modelsim仿真數(shù)據(jù)導(dǎo)入Matlab顯示
內(nèi)部AGC的資源量分析如表1所示,F(xiàn)PGA芯片采用的是Xilinx公司的V5SX95T,寄存器占用量為2%,LUT占用量為5%,組合邏輯為5%,存儲器占用量為1%。可以看出本設(shè)計的資源量消耗不高,可以運(yùn)用到實(shí)際情況中去。
表1 布局布線后的內(nèi)部AGC資源量
AGC的重要任務(wù)是能夠快速的使接收到的信號功率穩(wěn)定到一個參考值。然而傳統(tǒng)的基于單因子的AGC算法往往不能達(dá)到快速收斂的要求。本文提出一種雙因子的AGC算法,這種算法可以根據(jù)實(shí)際情況靈活的調(diào)節(jié)2個控制因子的大小,加快能量的收斂。該算法在Xilinx V5SX95T開發(fā)板上成功實(shí)現(xiàn)。從布局布線后的資源量報告中可以看出,本設(shè)計所占資源較少,具有一定的實(shí)用價值。
[1]王文博,鄭 侃.寬帶無線通信 OFDM技術(shù)[M].北京:人民郵電出版社,2007:57-61.
[2]田 耘,徐文波,張延偉,等.無線通信 FPGA設(shè)計[M].北京:電子工業(yè)出版社,2008:23-24.
[3]PROAKIS J G.數(shù)字通信(第4版)[M].張力軍,張宗橙,鄭寶玉,等,譯.北京:電子工業(yè)出版社,2008:19-30.
[4]尹長川,羅 濤,樂光新.多載波寬帶無線通信技術(shù)[M].北京:北京郵電大學(xué)出版社,2004:1-2.
[5]李志騫,李大鵬,單福悅.基于數(shù)字 AGC的控制算法[J].無線電工程,2012,42(6):2 -3.
[6]李宙杰,黃玉學(xué).AGC系統(tǒng)抗干擾方法改進(jìn)[J].無線電工程,2009,39(6):1 -2.
[7]史治國,洪少華,陳抗生.基于Xilinx FPGA的OFDM通信系統(tǒng)基帶設(shè)計[M].浙江:浙江大學(xué)出版社,2009:20-21.
[8]楊 佳,吳 丹.數(shù)字AGC的設(shè)計與實(shí)現(xiàn)[J].無線電通信技術(shù),2007,33(2):1 -2.
[9]代 濤,馮 雷.基于FPGA的大動態(tài)數(shù)控AGC系統(tǒng)設(shè)計[J].無線電通信技術(shù),2010,36(4):1 -2.
[10]隋占菊,路 雯.一種改進(jìn)型AGC的設(shè)計與實(shí)現(xiàn)[J].無線電工程,2010,40(12):1 -2.
[11]耿新濤,王 鳳.寬帶數(shù)字接收機(jī)AGC設(shè)計方法分析[J].無線電工程,2007,37(10):2 -3.
[12]賀 欣.寬帶大動態(tài)AGC電路設(shè)計[J].電子設(shè)計工程,2012(8):1-2.