摘 要:对无源雷达的直通信号和反射信号进行互相关运算可以检测目标是否存在。本文介绍了基于FPGA流水线操作的阵列运算器,该运算器有32个并行乘加运算单元时分,完成256个探测距离的互相关值计算,在128MHz的时钟下,能够对二路信号进行实时互相关处理。
关键词:互相关运算器 现场可编程逻辑门阵列(FPGA) 硬件描述语言 无源雷达
同传统雷达相比,无源雷达利用民用照射源(如FM调频广播,频率在100MHz左右)作为发射源,使雷达成本大幅度下降,并且体积小、重量轻、耗电小,具有抗隐身和自身隐身等众多优点。但无源雷达最大的缺点就是对直通信号和反射信号做实时自相关运算需要巨大的运算能力。当用500kHz的采样频率对无源雷达的二路信号进行采样时,若距离分辨率为600m、探测距离为0~150km,则至少需要4GHz复数乘加/秒的计算能力才能实时地对二路信号做互相关处理。对信号处理所需的巨大运算量限制了无源雷达的发展,而数字处理技术的发展,使无源雷达的实现成为可能。
本文重点介绍了基于FPGA的实时互相关运算器的实现方案。互相关运算器要计算的信号是直通信号(来自FM调频广播电台)和反射信号(飞行器或者其他运动的目标反射FM调频信号的反射信号),二路信号通过32个并行运算单元的计算,流水线式地计算出每一时刻的256个互相关值,并把互相关值送往高速DSP处理器做进一步处理,检测出目标在哪个距离上出现。
1 互相关运算法则
计算目标的位置,关键在于找到时延参数Δt取何值时,二路信号的互相关值最大。时延参数Δt的计算方法描述如下。
x(t)和y(t)分别为接收到的直通信号和反射信号:
式(1)中:a是衰减系数,s(t)是源信号,Δt是时延量,n1(t)、n2(t)为零均值平稳白噪声过程。在这个模型中,噪音信号是附加的。假设n1(t)、n2(t)与s(t)是相互独立的变量,则二路信号的互相关运算公式可以描述为:
2 互相关运算器的硬件结构
互相关运算器的框架结构如图1所示。互相关运算器由量化模块(其中包括RAM部分)、控制模块、互相关运算模块以及峰值查找模块组成。量化模块对直通信号x(t)和反射信号y(t)进行A/D采样,得到1路2位(包括实部和虚部)和1路12位(包括实部和虚部)的数字信号送往SRAM中,再由控制模块把SRAM所存的数据按照一定的逻辑送给互相关运算模块(对FPGA编程实现)做互相关运算。互相关运算模块把每一时刻t0的所有互相关值,按A(t0,0)、A(t0,1)……A(t0,R)的顺序送往峰值查找模块中的双端口异步FIFO中。以FIFO作为FPGA与DSP的接口,最后峰值查找模块的DSP从FIFO中取出时刻t0的所有互相关值。比较这些值找出时刻t0有目标出现的r,并把结果送往显示终端显示。峰值查找模块由高速DSP来完成。
3 互相关运算模块的实现
若需要探测距离为0~150km的所有目标,距离分辨率为600m,则每一时刻需要计算256个互相关值。如果窗口T取32,采样模块的采样频率F设为1MHz,互相关运算器的运算能力需要达到F×T×R=500kHz×32×256=4GHz复数乘加/秒。这就决定FPGA芯片在不太高的工作频率下需要并行尽可能多的运算单元。图2是本文所设计的互相关运算模块结构图。它有32个复数乘加运算单元,每一个运算单元都是相互独立的,因此每个时钟能进行32次复数乘加运算,在128MHz的工作频率下,能够达到128MHz×32=4GHz的复数乘加/秒的运算能力。
若把方程式(4)映射到一个具有32个并行运算单元的循环阵列,循环T次就可计算出32个距离上的互相关值,顺序计算8个这样的距离块就可以完成256个单元的计算。把上述结构映射到FPGA上实现,则FPGA上并行32个运算单元,且每1个运算单元具有1个与其他运算单元独立的复数乘加模块、寄存器组和1个互相关值输出锁存寄存器。这种并行结构的最大优点在于:使运算模块中的存储单元独立于32个运算模块之外,简化了FPGA的外围电路,极大地方便了硬件的实现。
二路信号在接收信噪比条件下量化成直通信号x(t)和反射信号y(t)。在本系统中直通信号x(t)和反射信号y(t)的量化位宽分别是6位和1位,二路信号都是复变量,因此数据通路的宽度分别是12位和2位。由于反射信号仅需要1位量化,因此可以用组合加法操作代替乘法操作。加法的实现比乘法简单得多,在FPGA中占用的资源也比乘法器少得多,因而能够在1块50万门左右的FPGA中实现32个运算单元或者更多的运算单元。为了使窗口值T取128时计算的结果不会溢出,运算器选取了26位位宽的加法器。在数据流上,直通信号x(t)传送到32级距离的运算单元,反射信号y(t)以逐步右移锁存的方式送往每一个运算单元上。x(t)和y(t)都由一个15位地址计数器来控制SRAMs,读出所需要的数据。
为了消除计算不同时刻之间以及相同时刻不同距离块之间互相关值所需要的额外时间,使FPGA中的计算资源不会因为准备运算数据而闲置,本设计采用了一个寄存器组给每一个复数乘加模块加载运算数据,其寄存器组的结构如图3所示。
每一个寄存器组由4个寄存器和7个2路复用器组成。寄存器组工作时的时序图如图4所示。4个寄存器分成2个小组,小组1:Reg1;Reg2,小组2:Reg3、Reg4。每次小组1动作,小组2则预装;反之亦然。图4中第1阶段为全部寄存器组的预装(预装t1时刻的数据);从第2阶段起开始计算互相关值,这时小组1动作,计算t1时的互相关值,
小组2预装并计算t2时刻所需要的数据;第3阶段,小组1继续动作,直到计算完成256个互相关值,小组2不动作;第4阶段,小组2动作,小组1预装并计算t3时刻所需要的数据;第5阶段,小组2继续动作,小组1不动作,直到计算完成t2时刻的256个互相关值后,整个寄存器组转往第2阶段。
在图2中,复数乘法模块根据Y寄存器组的输出值对RegX传送过来的值进行累加。当Y寄存器组的输出值为0时,CM送0值给累加器,这时累加器把当前累加值与0相加,并把结果锁存;当Y寄存器组的输出值为1时,CM送RegX传送过来的值给累加器,累加器则把当前累加值与RegX传送过来的值相加,并把结果锁存。累加器进行T(本文中T=32)次累加之后,把累加结果锁存到互相关值输出锁存器(见图2)对应的寄存器中,这时发出reset命令把结果锁存器清零,为计算下一个互相关值做初始为零的准备工作。
当属于某一时刻t0上32个互相关值计算完毕之后,控制逻辑模块发出锁存信号把这32个互相关值送往互相关值输出锁存寄存器组中。假设从n0时钟开始计算t0时刻的某32个互相关值,在n0+31时刻下32个互相关值计算完成,这时的结果同时锁存到互相关值输出锁存器中。在计算t0时刻下一组32个互相关值或者t0+1时刻0~31个互相关值时,输出锁存寄存器组把计算结果加上帧的标志(由控制逻辑模块给出,如果t0时刻为0,则t0+1时刻为1,用于区分当前互相关值是属于前一时刻的互相关值还是属于后一时刻的互相关值,便于峰值查找模块的实现)。数据按照A(t0,32k+0)、A(t0,32k+1)……A(t0,32k+31)(k=0~7)的顺序送往峰值查找模块的FIFO中。互相关值输出锁存寄存器的时序如图5所示。
互相关运算器中的FPGA模块采用的是1片Xilinx 2v500fg256芯片,500 000门的规模。其VHDL语言实现代码已在Xilinx 2v500fg256上通过了Xilinx ISE5.1的仿真、综合布局及布线。互相关运算模块加上地址控制单元和逻辑控制单元总共占用了2317个Slices(75%),2952个Slice Flip Flops(48%),2792个4输入查找表(Look-Up-Table,LUT)s(45%)和1个全局时钟(7%)等。从互相关运算器的结构可以得到:FPGA芯片上集成的并行运算单元越多,数据处理能力就越强,但FPGA芯片的规模限制不能集成太多的并行运算单元。
4 结 论
本文阐述了无源雷达系统中基于FPGA的实时互相关运算器的一种实现方案。该运算器由1块500 000门的FPGA芯片完成2路信号的互相关运算(或积分运算)。经实验模拟,在探测距离为0~150km、距离分辨率为600m时,互相关运算器能够实时完成直通与反射2路信号的互相关运算。该运算器还可以扩展到和其他的接收机相连,处理其他的数据,例如目标的方位角等。
参考文献
1 Tuan T,Figueroa M,Lind F et al.An FPGA-Based Array Processor for an Ionospheric-Imaging Radar.California:
Proceedings of the IEEE Symposium on FPGAs for Custom Computing Machines.Napa Valley. 2000
2 Sahr J D,Gidner D M,Zhou C et al.Passive VHF radar for Ionospheric Physics.Journal of Atmospheric and Solar-Terrestrial Physics,2001;(63)
3 George P,Kostas E,Li Yiqi et al.Development of a Passive Acoustic System for Realime Source Detection,Tracking and Recognition.In:Proceedings of the IEEE International Symposium.Industrial Electronics,1992;(1)
4 唐小明,何友,夏明革.基于机会发射的无源雷达系统发展评述.现代雷达,2002;24(2)
5 Xilinx Inc.Xilinx 5 Software Manuals Online.2002
6 卢毅,赖杰.VHDL与数字电路设计.北京:科学出版社,2001