- 易迪拓培训,专注于微波、射频、天线设计工程师的培养
3G系统中AGC的FPGA设计实现
方法一 在FPGA内根据检波法的原理计算下行同步码64个码片的功率(AGC模块图2中的dcmt部分)。考虑TD的帧结构,保护时隙GP的功率很小,故从接收功率的时间分布上来看,与GP相比SYNC_DL段的功率较大。当用SYNC_DL段的64码片之和除以SYNC_DL前后个32个码片相加之和,结果大于3时,就可以判断出SYNC_DL的大致位置。因此,基于这种方法,FPGA在5 ms的周期中遍取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部分)。
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设计时,可以设计出一个平方比较单元依次求出对数值,同时要注意需要耗费的系统资源。
来源:现代电子技术