数字自动增益控制中利用现场可编程门阵列实现对数计算的方法技术

技术编号:3518254 阅读:226 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及在宽带码分多址移动通信系统中基站接收机中进行数字自动增益控制时以现场可编程门阵列实现环路滤波器中频输入信号的电平增益误差的计算,该计算采用误差输入信号的对数运算方法实现,该方法充分利用二进制数据自变量尾数部分平方后的数据特点逐位递推,从而求导出待求数据结果的各位数值,从而使计算过程很快收敛,计算误差随系统资源的增加呈几何级数减小,利用该方法计算速度最快仅用一个时钟周期,并且由于计算收敛速度很快,仅占用极少的硬件资源就能满足高精度要求。

【技术实现步骤摘要】

本专利技术涉及在宽带码分多址(WCDMA)移动通信系统中基站接收机中进行数字自动增益控制时以现场可编程门阵列(FPGA)实现环路滤波器的中频输入信号的电平增益误差的计算,该计算采用误差输入信号的对数运算方法实现。
技术介绍
在WCDMA(宽带码分多址)系统基站接收机中进行数字自动增益控制(AGC)时,需要对环路滤波器误差输入信号进行二进制对数运算,以求出中频输入信号的电平增益误差。现有技术的二进制对数计算方法是查表法或级数展开法。查表法就是将作为自变量的尾数(大小在1和2之间)和待求出的结果数据制成一个二元数据表,实际应用时对照这个数据表就可查出所需求出的数据。在基站接收机中如果利用现场可编程门阵列(FPGA)实现该对数运算,计算速度很快,仅需两个时钟周期。但由于需要预先存储对数表,因而大量占用系统的存储器资源。而且使用查表方法所计算结果误差较大,求出的数据精度难以控制,尤其当自变量较大时,自变量微小变化就能使计算结果数值出现很大的变化。当对数运算精度要求高时,就要求大量扩大对数表的容量,因而被占用存储器资源数量就会呈几何级数上升。级数展开法就是将对数函数转化为泰勒级数展开式后再计算,如下所示ln(1+u)=u-u2/2+u3/3-u4/4+……随着级数次数的增加,对数函数的泰勒展开式收敛速度变慢,如果要求其计算误差小于1%,则至少要计算出展开式中前100项的累加和,而实际数字AGC控制中要求其对数计算误差小于0.1%,因此至少要计算出展开式中前1000项的累加和,如此庞大的运算量就需要占用大量的乘法器资源。如果在基站接收机中利用FPGA执行高精度的级数展开算法对数运算时,需要占用的FPGA运算器资源呈几何级数式上升,而实际上现有的FPGA器件很难提供如此大量的运算器资源。因此,需要提出一种占用FPGA的运算器资源和存储器资源相对少的环路滤波器误差输入信号对数运算方法。
技术实现思路
本专利技术的目的在于提供一种利用FPGA实现对环路滤波器误差输入信号求取对数的方法,该方法能够利用有限的乘法器和加法器资源实现对数运算。本专利技术的方法充分利用二进制数据自变量尾数部分平方后的数据特点逐位递推,从而求导出待求数据结果的各位数值,从而使计算过程很快收敛,计算误差随系统资源的增加呈几何级数减小。利用FPGA实现本专利计算方法时,计算速度最快仅用一个时钟周期,并且由于计算收敛速度很快,仅占用极少的FPGA硬件资源就能满足高精度要求。本专利技术的利用现场可编程门阵列对环路滤波器输入误差求取对数的方法,包括步骤第一步,待求数据在管理协调单元控制下,经多路选择器后依次选择其中某个输入误差数据进入求对数单元进行计算;第二步,求对数单元中的归一化部分将整数部分求出,归一化即将二进制表示的输入误差数值小数点左移或右移,左、右移的位数即为对数数值的整数部分数值,左移则该整数部分为正整数,右移则该整数部分为负整数,经过归一化将待运算输入误差数据限制在(1,2)之间,满足了求对数的小数部分的条件;第三步,求对数单元中的平方比较单元求出对数数值的小数部分;第四步,求对数单元中的反归一化部分将归一化部分求得的整数和平方比较单元求得的小数加起来,得到所需要的结果;第五步,多路分配器在管理协调单元控制下,将所需要的结果依次传送到对应的数据寄存器中输出。本专利技术的上述对环路滤波器输入误差求取对数的方法,其特征在于所述第三步骤中求对数的小数部分的计算过程包括如下步骤归一化后二进制数值以1.X1X2X3---Xm表示,对该二进制小数进行以2为底数的对数运算,求其对数值小数部分,该对数值小数部分表示为0.Y1Y2Y3---Yn;利用FPGA乘法器对1.X1X2X3---Xn平方进行计算,结果表示为b1,将b1与2进行比较,如果b1≥2,则推断知Y1=1,反之则Y1=0;由此获得二进制对数数值Y的小数点右第一位的结果Y1;在求出Y1后可得出Y2位的递推自变量Q2(Q2=0.Y2Y3…Yn),在Y1=0的情况下,意味着1.X1X2X3---Xn的平方B1小于2,可推导出Q2=b1;在Y1=1的情况下,意味着1.X1X2X3---Xn的平方大于等于2,则该平方数值以二进制数字表示为1X11.X21X31---Xm1,可将该数值除以2,相当于小数点右移一位,由此获得数值Q2=b1/2,从而可将Q2表示为二进制数字1.X11X21X31---Xm1,然后利用FPGA乘法器对1.X11X21X31---Xm1平方进行计算,结果表示为b2,将b2与2进行比较,如果b2≥2,则可推断知Y2=1,反之则Y2=0;由此获得二进制对数数值Y的小数点右第二位的结果Y2;在求出Y2后可得出Y3位的递推自变量Q3(Q3=0.Y3Y4…Yn),在Y2=0的情况下,意味着1.X11X21X31---Xm1的平方B2小于2,可推导出Q3=b2;在Y2=1的情况下,意味着1.X11X21X31---Xm1的平方大于等于2,则该平方数值以二进制数字表示为1X12.X22X32---Xm2,可将该数值除以2,相当于小数点右移一位,由此获得数值Q3=b2/2,从而可将Q2表示为二进制数字1.X12X22X32---Xm2,然后利用FPGA乘法器对1.X12X22X32---Xm2平方进行计算,结果表示为b3,将b3与2进行比较,如果b3≥2,则可推断知Y3=1,反之则Y3=0;由此获得二进制对数数值Y的小数点右第二位的结果Y3;按照上述步骤反复执行,直到求出所需要精度的Y1、Y2、Y3、……、Yn,由此获得对数值的小数部分。本专利技术利用FPGA中的相加和相乘等功能组合,仅用很小的资源成本就能实现复杂输入信号误差的求对数,是一种简单、可靠、实用的方法。附图说明图1为本专利技术的FPGA进行二进制对数运算方法的主要功能模块示意图。图2为本专利技术的FPGA进行二进制对数运算方法中求对数数值小数部分的步骤。具体实施例方式下面结合附图详细说明本专利技术的方法。实际利用FPGA实现数字AGC时,通常有多个环形滤波器的输入误差数据需要求取对数数值,而且这些已知输入数据为32位或16位正整数,待求出的对数值含有整数和小数部分,因此需要采取时分复用的方式依次求出各个待求数据的对数值,即依次将输入的待求数据传送到专用的求对数单元计算,同时将求得的结果输出到对应的对数值寄存器中,这样就需要管理协调单元进行管理,而且每次求各个待求数据的对数时,都要先将其归一化,即将二进制数值的小数点左移或右移,使得二进制数值限制在(1,2)之间,然后依据图2所示过程求出小数部分。结合图1解释本专利技术的利用FPGA对环形滤波器的输入误差数据求取对数数值方法的总步骤第一步,待求数据在管理协调单元控制下,经多路选择器后依次选择其中某个输入误差数据进入求对数单元进行计算;第二步,求对数单元中的归一化部分将整数部分求出,归一化即将二进制表示的输入误差数值小数点左移或右移,左、右移的位数即为对数数值的整数部分数值,左移则该整数部分为正整数,右移则该整数部分为负整数,经过归一化将待运算输入误差数据限制在(1,2)之间,满足了求对数的小数部分的条件;第三步,求对数单元中的平方比较单元求出对数数值的小数部分;第四步,求对数单元中的反归一化部分将归一化部分求得的本文档来自技高网
...

【技术保护点】
一种利用现场可编程门阵列对环路滤波器输入误差求取对数的方法,包括步骤:第一步,待求数据在管理协调单元控制下,经多路选择器后依次选择其中某个输入误差数据进入求对数单元进行计算;第二步,求对数单元中的归一化部分将整数部分求出,归 一化即将二进制表示的输入误差数值小数点左移或右移,左、右移的位数即为对数数值的整数部分数值,左移则该整数部分为正整数,右移则该整数部分为负整数,经过归一化将待运算输入误差数据限制在(1,2)之间,满足了求对数的小数部分的条件;第三步 ,求对数单元中的平方比较单元求出对数数值的小数部分;第四步,求对数单元中的反归一化部分将归一化部分求得的整数和平方比较单元求得的小数加起来,得到所需要的结果;第五步,多路分配器在管理协调单元控制下,将所需要的结果依次传送到对 应的数据寄存器中输出。

【技术特征摘要】

【专利技术属性】
技术研发人员:陈印锋
申请(专利权)人:北京北方烽火科技有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利