基于CORDIC算法的干涉仪测向的FPGA实现方法

2020-06-11 13:46熊正大张宏伟
电子技术与软件工程 2020年3期
关键词:平方根干涉仪辐射源

熊正大 张宏伟

(洛阳电子装备试验中心 河南省洛阳市 471000)

通过截获无线电信号,进而确定辐射源所在方向的过程,称为无线电测向,简称测向。对辐射源测向的基本原理是利用测向天线系统对不同方向到达电磁波所具有的振幅或相位响应来确定辐射源的来波方向。相位法测向系统由位于不同位置的多个天线单元组成,天线单元间的距离使它们所收到的信号由于波程差而产生相位差。通过比较不同天线单元收到的来自同一辐射源的信号的相位差,可以确定辐射源的到达角[1-2]。由于相位差对波程差变化很灵敏,因此相位法测向系统的测向精度相对较高且无需机械转动天线。相位干涉仪是一种常见的相位测向系统。

坐标旋转数字计算机(Coordinate Rotation Digital Computer,CORDIC)算法最早由J·Volder等人在1959年提出,采用循环迭代算法来完成一些常用基本运算函数的运算。统一的CORDIC算法由J.S.Walther在1971年提出,其思想是利用一组预先规定的基本角度经过线性组合去逼近目标角度,而基本角度的选取恰好使每次矢量以基本角度旋转后,一些基于三角函数的非线性运算只需加减和移位操作即可实现,从而适合用FPGA实现[3]。

1 干涉仪测向的基本原理

干涉仪是通过测量位于不同波前的天线接收信号的相位差,经过处理获取来波方向的一类相位法测向设备。最简单的单基线相位干涉仪由两个信道组成,如图1所示。天线“1”和天线“2”之间的连线称为干涉仪基线。

若某个辐射源距离接收机足够远,可以将接收到的电磁波近似为平面波。来波方向与天线视轴夹角为θ,则平面波前到达天线“1”和天线“2”的时间就有前有后,体现在固定频率信号上就存在相位差。它到达两个天线的相位差为:

式中,λ为信号波长,d为两天线间距[4]。

对(1)式进行角度变换,并利用λ=c/f(c为光速,f为信号频率),求得辐射源信号的到达方向θ,

2 CORDIC算法用于反正切和平方根运算

CORDIC算法是一种用于计算一些常用的基本运算函数和算数操作的循环迭代算法。CORDIC算法完全由加法和移位操作组成,在硬件电路的实现上只用到了移位器和加法器,大大节约了FPGA的资源。通过移位相加,可以实现乘、除、平方根、三角函数、双曲函数、指数和对数等运算[5-7]。

图1:单基线相位干涉仪原理图

图2:双曲线坐标系旋转

图3:圆坐标系旋转

2.1 平方根运算

双曲线坐标系下的旋转模式如图2所示,迭代过程表示为:

根据三角函数之间的关系,可以通过CORDIC算法计算得到[8-9]:

2.2 反正切运算

表1:每个迭代的旋转角度

CORDIC算法中,每个迭代i的旋转角度(精确到9位小数)如表1所示。

这里,把变换改成迭代算法,通过一系列连续小角度的旋转迭代i来完成对任意角度的旋转。旋转角度遵循法则乘以正切项就变成了移位操作。

前几次迭代的形式为:第一次迭代旋转45°,第二次迭代旋转26.6°,第3次迭代旋转14°等。很明显,每次旋转的方向都影响最终要旋转的累积角度。在的范围内,可以旋转任意角度,满足法则的所有角度的总和等于99.7°。对于该范围之外的角度,可以使用三角恒等式转化成该范围内的角度。象限映射操作隐含说明实际上的CORDIC操作要求在 范围内[9]。

对于每次迭代而言,伪旋转方程可以表示为:

式中,符号di=±1,用于确定旋转的方向,di=1代表顺时针旋转,反之为逆时针旋转。引入角度累加器的概念,用于表示每次迭代过程中追踪累加的旋转角度:

在向量模式下,将一个输入向量旋转到x轴,选择di=-sign (xiyi),目标是使|yi|→0。经过n次迭代后,用下式表示:

其中,Kn为旋转向量增量,

3 利用CORDIC算法计算干涉仪测向中的到达角

即可求得x。所以(13)式现在可以表示为:

利用式(11)和(12),并通过设置z0=0可以计算求得θ。

4 仿真结果

基于Xilinx FPGA平台对CORDIC算法进行设计,并用于到达角的计算。执行仿真过程,平方根运算的仿真结果如图4所示,反正切运算的仿真结果如图5所示。从图4中可以看出,平方根运算的输出时延约为74ns。从图5中可以看出,反正切运算的输出时延约为84ns。综上,反正弦运算的输出时延在100ns数量级。

在MATLAB平台中,通过利用软件自带的arcsin函数和本文中提到的CORDIC算法分别对到达角θ进行计算。相位差的取值范围为以的采样间隔对此区间进行采样,光速c=3×108m/s,载波频率f取3MHz,天线间距d取50m,迭代16次,计算结果如图6所示。

图4:平方根运算的仿真结果

图5:反正切运算的仿真结果

在图6中,上半部分为利用MATLAB自带的arcsin函数对到达角的计算结果,下半部分为利用CORDIC算法对到达角θ的计算结果。将两个计算结果进行比较,得到误差曲线图如图7所示。

从图7中可以看出,CORDIC算法与MATLAB平台自带的arcsin函数对到达角θ的计算结果的误差精度在10-5数量级。

图6:到达角 随相位差的变化曲线

图7:计算误差随相位差的变化曲线

5 结论与展望

利用CORDIC算法将干涉仪测向中的到达角的反正弦运算转化成双曲线坐标系旋转下的平方根运算和圆坐标系旋转下的反正切运算,降低了运算的复杂度,容易在硬件上实现。仿真结果表明,该算法的输出时延为100ns数量级,计算精度为10-5数量级,运算速率快、精度高,具有重要的工程研究和应用意义。

猜你喜欢
平方根干涉仪辐射源
基于改进的迈克尔逊干涉仪对热变形特性的研究
基于博弈论的GRA-TOPSIS辐射源威胁评估方法
用于原子干涉仪的光学锁相环系统
非对称干涉仪技术及工程实现
数字电视外辐射源雷达多旋翼无人机微多普勒效应实验研究
外辐射源雷达直升机旋翼参数估计方法
“平方根”学习法升级版
平方根易错点警示
帮你学习平方根
如何学好平方根