一种改进的数字AGC及其FPGA实现

2014-06-13 11:59郭年庚
无线电工程 2014年6期
关键词:对数运算阈值

马 飞,蒋 超,郭年庚

(1.中国电子科技集团公司第五十四研究所,河北石家庄050081;2.电子科技大学通信与信息工程学院,四川成都611731;3.北京科技大学计算机与通信工程学院,北京100083)

0 引言

在无线通信系统中,由于无线信道存在的各种衰落现象,发射机功率的变化以及通信双方的相互运动,会导致接收端收到的射频信号功率在一个较大的范围内波动[1,2]。如果信号功率过大,超过接收机能够承受的量值,那么将会导致接收信号失真甚至接收机射频电路损坏;反之,如果信号功率过小,那么很有可能接收机无法捕捉到该信号,造成信号的丢失[3]。而自动增益控制(AGC)模块可以降低这些情况出现的概率,提高接收信号的可靠性。因此,AGC电路是无线通信系统的一个必不可少的部分。

通常AGC分为2类:外部AGC和内部AGC,外部AGC的优势是调节范围较大。在实际应用中,利用它可以使原本变化较大的射频信号处于一个较小的波动范围之内[4,5]。而内部AGC的调节范围较小,但是在可调节范围内往往具有良好的抗干扰性以及便于调试的特点,并且功率调节的步长可以根据实际情况来设定[6]。本文重点分析数字内部AGC的改进算法。

1 内部AGC原理

通常内部AGC处于接收机的数字下变频(DDC)之后,通过反馈的形式[7,8],以AGC模块的输出数据的能量为标准对输入AGC的数据幅度进行调整[9,10],从而达到控制功率的作用[11,12],如图1所示。

图1 内部AGC架构

从具体的实现方式来看,内部AGC的结构如图2所示,输入的数据首先经过能量平均模块,计算出一段时间的采样点的平均能量。设这段时间内的采样点数为N,那么平均能量表示为:

式中,s(t)表示输入的信号,这里需要指出的是N的取值需要满足一定的条件。为了保证平均能量的准确估计,N的值应当取得足够大。同时,为了保证N个采样点之间的信号能量不发生显著变化,N的值又应当取得足够小。设计中可以把该值设为可调,根据实际情况测定,这里N=128。

图2 内部AGC原理

接下来将平均能量输入对数查找表模块,对能量值取对数之后将该对数能量与参考值的对数值相减,所得的结果送入运算判决模块,该模块的输出作为指数查找表的输入地址,输出的数据就是取2的指数次方的输出,然后将该输出与输入数据进行复数乘法,实现功率控制。

对于传统的内部AGC的判决模块,往往是设定一个阈值,当对数能量与参考值的对数值之差的模大于该阈值的时候,将衰减因子coef赋予一个定值A,当差值的模小于该阈值的时候coef置为0。显而易见,在这种方式中,无论输入数据的能量与参考能量相差多少都按照同样的速率进行功率调节,收敛速度过慢。基于这一点,本文提出一种改进算法——双因子功率控制算法,下面将对该算法进行详细阐述。

2 快速收敛的内部AGC算法

本文提出的快速收敛的内部AGC算法流程如图3所示。AGC首先需要计算输入信号的分段能量平均值Q,这里选取分段的长度为128个采样点。图中的K0是参考功率,也就是需要最终收敛的功率值,这里K0的取值根据无线通信系统接收到的信号的实际功率值来确定。不断对参考能量与输入信号的平均能量Q取对数之后再进行减法操作,记所得的差值为e。设定2个阈值(阈值1>阈值2),如果e的绝对值≥阈值1,那么说明信号能量与参考能量相差较大,这里采用一个较大的控制因子coef_h对信号功率进行控制,如果e的绝对值≥阈值2,并且≤阈值1,那么说明信号能量与参考能量相差较小,则采用一个较小的控制因子coef_l,如果e的绝对值≤阈值2,则说明信号能量与参考能量相差很小,将控制因子取为0,不对输入信号进行功率控制。得到了控制因子coef之后,将其与e进行乘累加运算。最后对乘累加的结果进行2的指数运算得到功率补偿的数值,再与输入信号相乘,以达到功率控制的目的。本文对算法进行了仿真,AGC模块的Matlab仿真图如图4所示,输入激励为幅度为1的正弦波。

图3 内部AGC的算法

图4 原始输入功率恒定的正弦信号及AGC输出

3 快速收敛算法的FPGA实现

内部AGC系统由4个部分组成:能量平均器、对数查找表、运算判定器和指数查找表。能量平均器的实现方式是首先对输入数据的实部和虚部进行平方和运算,得出的数据进行一段时间的累加操作,然后再取平均。能量平均后的数据送入到对数查找表的地址输入端,查找表的输出即对数运算后的能量均值。对数查找表输出的数据就是图3中的log2(Q(n-1)),将此数据按照图3中的算法进行运算判定,得出相应的控制因子coef,最终得出图3中ac(n)的大小。接下来对ac(n)取2的指数的操作。采用的方式和取对数一样,利用查找表来实现。最后通过复数乘法器IP核实现对输入信号的功率控制。图4为测试中常用的正弦信号为输入时的AGC的输出;图5为AGC模块的RTL实现的结构图,主要包括:能量平均、对数查表、运算判定、指数查表和增益补偿等模块。

图5 改进的内部AGC的RTL结构

图6为内部AGC模块的Modelsim仿真输出数据导入Matlab的显示图。其中输入信号由Matlab产生的正弦信号经过16 bit量化之后得到。从图中可以看出,信号幅度刚开始有比较大的调整,随后调整幅度越来越小,这与算法的预期效果相一致。

图6 Modelsim仿真数据导入Matlab显示

内部AGC的资源量分析如表1所示,FPGA芯片采用的是Xilinx公司的V5SX95T,寄存器占用量为2%,LUT占用量为5%,组合逻辑为5%,存储器占用量为1%。可以看出本设计的资源量消耗不高,可以运用到实际情况中去。

表1 布局布线后的内部AGC资源量

4 结束语

AGC的重要任务是能够快速的使接收到的信号功率稳定到一个参考值。然而传统的基于单因子的AGC算法往往不能达到快速收敛的要求。本文提出一种双因子的AGC算法,这种算法可以根据实际情况灵活的调节2个控制因子的大小,加快能量的收敛。该算法在Xilinx V5SX95T开发板上成功实现。从布局布线后的资源量报告中可以看出,本设计所占资源较少,具有一定的实用价值。

[1]王文博,郑 侃.宽带无线通信 OFDM技术[M].北京:人民邮电出版社,2007:57-61.

[2]田 耘,徐文波,张延伟,等.无线通信 FPGA设计[M].北京:电子工业出版社,2008:23-24.

[3]PROAKIS J G.数字通信(第4版)[M].张力军,张宗橙,郑宝玉,等,译.北京:电子工业出版社,2008:19-30.

[4]尹长川,罗 涛,乐光新.多载波宽带无线通信技术[M].北京:北京邮电大学出版社,2004:1-2.

[5]李志骞,李大鹏,单福悦.基于数字 AGC的控制算法[J].无线电工程,2012,42(6):2 -3.

[6]李宙杰,黄玉学.AGC系统抗干扰方法改进[J].无线电工程,2009,39(6):1 -2.

[7]史治国,洪少华,陈抗生.基于Xilinx FPGA的OFDM通信系统基带设计[M].浙江:浙江大学出版社,2009:20-21.

[8]杨 佳,吴 丹.数字AGC的设计与实现[J].无线电通信技术,2007,33(2):1 -2.

[9]代 涛,冯 雷.基于FPGA的大动态数控AGC系统设计[J].无线电通信技术,2010,36(4):1 -2.

[10]隋占菊,路 雯.一种改进型AGC的设计与实现[J].无线电工程,2010,40(12):1 -2.

[11]耿新涛,王 凤.宽带数字接收机AGC设计方法分析[J].无线电工程,2007,37(10):2 -3.

[12]贺 欣.宽带大动态AGC电路设计[J].电子设计工程,2012(8):1-2.

猜你喜欢
对数运算阈值
重视运算与推理,解决数列求和题
含有对数非线性项Kirchhoff方程多解的存在性
指数与对数
指数与对数
有趣的运算
小波阈值去噪在深小孔钻削声发射信号处理中的应用
基于自适应阈值和连通域的隧道裂缝提取
对数简史
比值遥感蚀变信息提取及阈值确定(插图)
“整式的乘法与因式分解”知识归纳