EDN China > 技术文章 > 微处理器与DSP > 多媒体处理器 > 正文
? 2016博客大赛-不限主题,寻找电子导师,大奖升级??

3G系统中AGC的FPGA设计实现

来源:61IC电子中国电子在线?? 2007年10月11日 ?? 收藏0

  1 引 言
  
?????? 大多数接收机必须处理动态范围很大的信号,这需要进行增益调整,以防止过载或某级产生互调,调整解调器的工作以优化工作。在现代无线电接收装置中。可变增益放大器是电控的,并且当接收机中使用衰减器时,他们通常都是由可变电压控制的连续衰减器。控制应该是平滑的并且与输入的信号能量通常成对数关系(线性分贝)。在大多数情况下,由于衰落,AGC通常用来测量输入解调器的信号电平,并且通过反馈控制电路把信号电平控制在要求的范同内。

  2 系统总体设计
  
?????? 在本设计中,前端TD_SCDMA的射频信号RF输入后,经过MAX2392零中频下变频解调后进行增益处理。VGA输出的信号经过ADC变换后就成为数字中频信号,经RSP(接收信号处理器)处理输出为IF数字信号。IF信号可以经过AGC控制算法处理后控制VGA的增益。AGC增益控制算法在数字部分来实现,在本设计中,AGC电路可以有效提高链路的动态范围(+25~-105 dBm),提高ADC输出的SNR,以使DSP能更容易地实现Dw-PTS同步。AGC在系统中的位置如图1虚线框所示:

AGC在系统中的位置

  3 AGC系统的FPGA实现
  
?????? 根据AGC所实现的功能

,在FPGA中将AGC模块分为如下几个部分来实现:

  3.1 数据干路模块
  
从RSP接口来10位二进制补码数据I1和Q1,与求指数模块传送来的预放大增益GAIN2相乘后所得出的数据(仍取10位二进制补码数据)将要传送到CIC平均模块,同时要分别与求指数模块传送来的放大增益GAIN3相乘,然后采取截短处理,取8位二进制补码数据,I1′,Q1′,输出到DSP 中。

  3.2 计算下行同步码功率(SYNC_DL)模块
  
计算下行同步码功率(SYNC_DL)模块对应于图2中的判断部分,是AGC中最为重要算法计算。TD_SCD-MA每个帧有6 400个码片,在其一帧5 ms的时间上是不连续的,因此只能求出下行同步码(SYNC_DL)的功率值,以此为依据控制VGA的电压值。

  由图3的TD_SCDMA的帧结构知道,下行同步码(SYNC_DL)在下行导频时隙(DwPTS)发射,SYNC_DL的长为64个码片,在其左边和右边各有32和96个码片的保护时隙(GP)。为此,在FPGA中共用了3种不同的方法计算其功率值。

  方法一在FPGA内根据检波法的原理计算下行同步码64个码片的功率(AGC模块图2中的dcmt部分)。考虑TD的帧结构,保护时隙GP的功率很小,故从接收功率的时间分布上来看,与GP相比SYNC_DL段的功率较大。当用SYNC_DL段的64码片之和除以SYNC_DL前后个32个码片相加之和,结果大于3时,就可以判断出SYNC_DL的大致位置。因此,基于这种方法,FPGA在5ms的周期中遍取6 400个码片,每64个码片做积分,依次向前滚动计算,同时做除法运算,最后即可计算出SYNC_DL在一帧6 400个码片中的位置和能量,以此控制VGA的电压和后续的计算。不过这种方法只有在信号质量很好,信号强度比较大的时候才计算准确。
  
???????? 方法二由DSP方根据传过来的数据,通过相干检测法检测出SYNC_DL的精确位置,并把这个位置参数传送给FPGA。FPGA收到这一点的位置后,立既停止使用其自身检波法求出的功率值,根据DSP传过来的SYNC_DL的位置,计算出这一点之后的64个码片的积分值,作为SYNC_DL的总功率,并以此控制 VGA的电压(AGC模块图2中的dwpts部分)。这时求出来的总能量比较精确(DSP提供的位置比FPGA自身检波法求出来的精确),但是速度比较慢。
  
??????? 方法三当信号的强度变得很弱,信号可能淹没在了噪声当中。这时无论是由FPGA的检波法还是DSP的相干法都计算不出SYNC_DL的位置和能量。在这种情况下,认为在5 ms时域上信号连续,能量均衡,FPGA求5ms帧的平均值,以此作为SYNC_DL的功率,并控制VGA(AGC模块图2中的CIC部分)。

AGC模块

  3.3 求对数运算模块
  
??????? 在本模块,将上面得到的功率值进行求对数运算,以减少数据的运算量。用FPGA实现求对数运算时,可以先将数据归一化在1~2之间,然后通过将数据平方后推导出最高位的方法逐位求出所求数据的二进制数值。假定自变量X归一化在区间[1,2]内,用二进制数据可表示为1.X1X2…Xn,则所求的对数值在区间[0,1]内,用二进制数据可表示为0.Y1Y2…Ym,因而可用数学方法表示为20.Y1Y2…Ym=1.X1X2…Xn,问题归结为求 Y1Y2…Ym。将上式左右两边同时平方,可以得出2Y1Y2…Ym=(1.X11X21…Xn1)2,由此可推倒出Y1来。(X为已知,若等式右边数据小于2,则Y1=0;反之,若大于或等于 2,则Y1=1)求出Y1后可以导出20.Y2Y3…Ym=1.X11X21…Xn1,同理可推倒出Y2。依此类推,可求出对数值的各位。
  
???????? 进行FPGA设计时,可以设计出一个平方比较单元依次求出对数值,同时要注意需要耗费的系统资源。


上一页12下一页
?? ?? ??


打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮

1.扫描左侧二维码
2.点击右上角的分享按钮
3.选择分享给朋友
?? ??

3G? FPGA? AGC?

相关文章

我来评论
美国的游客
美国的游客 ??? (您将以游客身份发表,请登录 | 注册)
?
有问题请反馈