摘要:根据雷达光栅显示器的应用要求,提出一种基于FPGA的数字式正余弦函数产生器的解决方案。论述了如何用数字电路来实现正余弦函数计算的过程。方案不但可以用于雷达光栅扫描显示器的坐标变换器,而且适用于通讯领域等其它需要正余弦函数的波形产生器的场合。
关键字:雷达:光栅扫描显示器;正余弦函数产生器;坐标转换。
O 引言
通常雷达探测目标的回波是以极坐标的形式在雷达显示器画面上显示的,在雷达天线转动的各个方位上,显示画面都有相应的扫描线,也就是说:显示器画面的扫描是受天线方位角的正弦、余弦函数调制的。正余弦函数在许多的电子设备的波形产生器中都用到,实现的方法也有很多种。在雷达显示器中由于要求的分辨率较高,最常用的方法是采用“查表”的方法来得到函数值。这种方法用函数表存贮器代替大量的组合电路,在电路集成度不高的情况下不失为一种好的方法。随着大规模集成电路技术的发展,尤其是近几年来现场可编程门阵列(FPGA)规模及处理速度的提高,为我们设计数字式函数产生器提供了很好的环境。如果我们能够把函数计算过程集成到FPGA中,这不但可以减少芯片的数量,提高设备的可靠性,而且给电路设计带来了很大的灵活性。
1 基本原理
在电路上实现正余弦函数的计算是建立在数学上的台劳级数的基础上的。既任意一个函数f(x)在x处可导,则该函数可用下式表示:
由此式我们可以得到如下的正余弦函数的展开式:
为了简化计算,方便电路设计,在保证所需精度的情况下,我们只选上面两式中的前两项。这样就得下面简化的函数展开式:
我们把上面的两式引入到雷达显示器的函数产生器,0设为当前天线角度,△0为天线转动的增量值。
由上两式可看出,如果知道0~π/2范围内正余弦值时,就可以恢复出整个周期的函数值.所以我们在计算函数值时,只要能得到0~π/2第一象限的值就可以把其它几个象限的值恢复出来。
2 参数选取
根据实际显示分辨率的要求,我们选函数值的精度为1l位,360度方位分辨率的精度13位。这样就可得到90度方位角内的固有角度增量为2048个。式(4)、(5)中△0的值等于l/2n弧度。为了保证90度内△θ个数大于等于2048,选取n为11位。这样△θ等于1/2048弧度。由此可算出90度范围内△θ的个数为:(π/2)/(1/2048)=3217(个)。换句话说,如果要得到90度方位角的函数值,需要给函数产生器发3217个△θ。同理,要得到某个角度的函数值,只需发一定的△θ使函数产生器进行相应次数的计算就可得到这个函数值。
3 电路结构
函数产生器的电路实现实际上就是用电路实现式(4)和式(5)。要实现这两个式子,关键是要实现△θSIN(θ)、△θ COS(θ)的计算。根据上述参数选取的要求,△θ的取值为1/2048,是一个常数。这样就可以把△θ SIN(θ)、△θ COS(θ)的计算表示为SIN(θ)/2048、COS(θ)/2048。根据逻辑电路原理,我们只要把SIN(θ)、COS(θ)的值直接右移11为就可完成除以2048的计算。余下的计算就是简单的逻辑加减计算了。为了实现11位SIN(θ)、COS(θ)函数值的1l位右移这里采用了22位的累加器。图l是函数产生器的实现框图。
从式(4)式(5)可以看出,要得到△θ方位增量的函数值还需要知道当前函数的初始值,我们知道SIN、COS函数在零点的初始值分别为“l”和“0”,这样就可以在起始计算时用置“1”和置“O”信号使得函数的输出得到正确的初始值,于是在相应的△θ脉冲的作用下进行计算就可得出函数值输出了。下面是用VHDL语言描述的正余弦函数产生器:——数字正余弦函数产生器
由于我们选用的是近似公式,在计算中会出现累积误差。误差的累积最终会造成输出
函数值的溢出错误,所以在本函数产生器累积误差的修正也是一个关键。上面的VHDL描述已给出了简单的修正方法,这里就不在详述了。如对函数产生器的精度有更高的要求,只需简单地对相应的累加器的宽度进行修改即可。本函数产生器已在MaxplusII上模拟通过,并在雷达光栅显示器上得到实际应用。