基于FPGA的DBF导向矢量实时算法

2011-06-22 12:46李耀南罗丁利
火控雷达技术 2011年3期
关键词:指向波束定点

李耀南 罗丁利

(西安电子工程研究所 西安 710100)

1 引言

从提高相控阵雷达自适应和抗干扰能力出发,要使接收波束能受计算机实时控制且灵活可变。用数字方式来形成接收波束,使接收天线波束具有了自适应的能力,所以要求波束形成导向矢量算法计算精度高、反应速度快。

目前求取波束形成导向矢量的算法主要有查找表法和实时计算法两类。查找表法是预先将所有频点和波束指向角所对应的导向矢量计算好并存储在RAM中,系统加电后通过地址译码的方式直接读取,特点是反应速度快,但受RAM存储空间限制,一般应用在阵元数较少且频率点、波束指向角变化范围不大的系统中;实时计算法是根据当前中心机发送的控制指令,实时计算出波束的导向矢量并用于数字波束形成,优点是控制灵活、不受存储资源限制,尤其适用于大规模阵列且具有自适应DBF设计的系统中。如果实时计算法在速度上能接近甚至超越查找表法,将无可替代的成为主流算法。

图1 等距线阵波束形成

2 DBF导向矢量计算原理

在窄带条件下,同时刻采集信号,所有阵元上信号的复包络相同,只需考虑相位的变化,而它只依赖于阵列的几何结构。对于等距线阵,则更简单,只依赖于与x轴的夹角及阵元间距,如图1所示。

假设等距线阵阵元间距为d,接收天线波束指向的入射角为θ,雷达工作波长为λ,工作频率为f0,光速为c,则每个阵元之间相移量[2]为:

而对第n个阵元的导向系数为:

写成矢量的形式:

由wn构成的W称为导向矢量,窄带条件下,W只依赖于阵列的几何结构和波束指向;而宽带条件下还要考虑工作频率(或波长)。

3 DBF导向矢量算法在FPGA中的实现

3.1 系统要求

某相控阵雷达数字波束形成导向矢量计算流程如图2所示,其中c为光速,d为等距线阵阵元间距,f0为工作频率,θ为波束指向角,共128个阵元,所得结果cosφ和sinφ分别为所求流水导向系数的实部和虚部,we为流水导向系数对应的写使能信号(所谓流水是指在时序上按阵元顺序输出运算结果)。

提供的硬件资源有1片Xilinx FPGA-xc5vsx95t,系统要求完成128阵元导向矢量输出的时间必须小于20μs,波束指向的量化误差小于1mil。

图2 DBF导向矢量算法流程

3.2 定点实时算法

如图2所示,该算法流程要求前后2次用CORDIC进行求解正余弦,1次普通的定点数乘法,1次流水的定点数乘法和3次截位运算。

图中所示的mQn为浮点数据对应的有符号十六进制定点格式,m为整数部分的位宽,n为小数部分的位宽,整个数据的位宽k=1(位符号位)+m(位整数位)+n(位小数位),即为fixk-n格式。整个系统采用的输入输出数据位宽选取以满足系统要求的测量精度为准则,均定为16bit,而输入参数θ格式为2Q13,即整数部分的位宽为2bit,小数部分的位宽为13bit,因而可推算出的浮点精度为1/213rad(即1.2×10-4rad,满足波束指向的量化误差小于1mil的系统要求)。

由于CORDIC软核的输入数据格式需要为2Q13,取值范围为区间[-π,π]或归一化区间[-1,1],又当 df0/c≤0.5 时,2πdf0/c≤π,因而图中的两个CORDIC软核的输入数据显然都应在[-π,π]之内,然而流水乘法器在第3阵元以后的计算结果2πdf0sinθ(n-1)/c都有可能超过±π,所以需要对其结果进行适当的截位,以满足后面CORDIC软核的输入数据在[-π,π]之内的要求(这里的截位分为四种情况,k≠0且 k为自然数,a.若2πdf0sinθ(n-1)/c∈[2kπ,2kπ+π],则保留符号位,截取部分低位和自定义位作为数据位,变为[0,π];b.若2πdf0sinθ(n-1)/c∈[-2kπ -π,-2kπ],则截位同上,变为[- π,0];c.若 2πdf0sinθ(n-1)/c ∈[2kπ+π,2kπ +2π],则同上述截位后,再减去 π,变为[0,π];d.若 2πdf0sinθ(n-1)/c ∈[-2kπ -2π,-2kπ-π],则同上述第一种截位后,再加上π,变为[-π,0])。

定点运算的延迟是固定的时钟节拍数,因此系统时钟频率越高,延迟越小。完成图2所示的一个导向矢量计算的运算步骤及其时间延迟如表1所示。

表1 定点实时算法延迟估算

由于表中序号1和2.x属于并行计算,取延迟节拍数多者计入总延迟,同样,6和7也是并行计算。即使是仅对128组导向系数做流水输出也要128个时钟节拍,而上述定点算法也只用了181个时钟节拍就完成了一个导向矢量的计算。系统时钟为48MHz,因此该算法完成128组导向系数输出的时间为3.771μs,远小于系统要求的反应时间。

3.3 定点实时优化算法

由于上述算法中流水乘法器并非最优计算模块,且之后的截位运算也较为复杂,且只考虑了df0/c≤0.5的情况;完全可以采用延迟更小且计算资源更节省的流水累加器替换,而之后的截位运算也会因此变得简单,且应该同时将0.5<df0/c<1的情况考虑在内(见图3)。

图3 定点实时优化算法流程

因为CORDIC软核支持的输入相位区间除了[-π,π]以外还有[-1,1],也为了流水累加器截位的方便,所以在起始输入的参数中可以去掉π因子变成2df0/c,然后只需在生成CORDIC1软核的时候将其 Phase Format参数从 Radians改为Scaled Radians,就可使用归一化后的输入相位,即[-1,1]。这里使用的流水累加器每次累加阵元间相移量2df0sinθ/c作为下一阵元的归一化相位,就可算出第n个阵元的相位2df0sinθ(n-1)/c。因而该流水累加只需要3+128=131个时钟节拍就可完成,而且只用FPGA中的逻辑资源就可代替前一种算法中乘法器所需的DSP48;同时考虑到0.5<df0/c<1的情况,输入参数应进一步去掉2因子变成df0/c,这样才能满足归一化后的0Q15格式,而累加后的截位也不需分四种情况进行判断,可左移一位(相当于补×2),优化为取累加结果的[14,14,14,13∶1]位作为后面 CORDIC 核的 2Q13格式的输入数据,也减少了1拍延迟,只需1个时钟节拍即可。相比使用流水乘法器的算法,一共节省了4拍延迟,并且扩大了系统可使用的载频范围。全局时钟为48MHz,则总计177个时钟节拍对应的是3.688μs的延迟。

4 仿真及实现结果

假设输入参数取θ=-π/4rad,d=0.049m,c=3×108m/s,f0=3GHz,定点实时优化算法在 Active-HDL中的仿真结果如图4所示。同时在MATLAB下利用公式编写程序浮点计算导向矢量,将两种计算结果比较,可估算出定点实时优化算法由于量化与截位带来的误差,如图5所示,显然计算误差都在10-4数量级,满足系统误差的要求。

图6 FPGA资源占用情况

使用Xilinx FPGA-xc5vsx95t进行布局布线,资源占用情况如图6所示。

5 结论

本文通过对几种不同DBF导向矢量算法的仿真计算进行比较,在保证了系统精度和算法用时的前提下,得出了一种在FPGA中相对较快的定点实时算法,节约了资源,提高了运算效率和灵活度,对今后的工程实践具有重大意义。

[1]张光义.相控阵雷达系统[M].北京:国防工业出版社,1994.

[2]Skolnik M.I.Radar handbook.Second edition[M].New York:McGraw-HillPublishing Company,1990.

猜你喜欢
指向波束定点
毫米波通信中的波束管理标准化现状和发展趋势
例谈圆锥曲线中的定点定值问题
定点帮扶让村民过上美好生活
解析几何中定点问题的处理策略
科学备考新指向——不等式选讲篇
直线过定点的5种特优解法
基于共形超表面的波束聚焦研究
超波束技术在岸基光纤阵中的应用
中年级“生本写作”教学的“三个指向”
国产多波束系统在海上失事船只探测中的应用