对于无源时差定位中所处理的雷达信号,一般可以检测出脉冲的到达时间,也就大体知道了到达时间差[3],从而可通过控制相关序列的采样时机,只求解相关函数相关峰附近的相关值就可获得时差信息。而相关函数的计算一般利用FFT/IFFT快速算法进行频域相关,频域相关会同时计算全部相关信息,在已知粗略时差范围时效率并不高(对于长度为N的采样序列,用频域相关法估计时差需要进行3个2N点FFT/IFFT运算和2N次复数乘法),而且大点数FFT/IFFT的工程实现也非常困难,运算时间与硬件资源开销严重,不适于进行实时时差估计[4- 5]。
本文利用时域相关可只求解部分相关值的优势,设计实现了一种并行相关结构的时差估计器,大大缩减了运算时间,可以满足实时时差估计的需求,同时简化了硬件结构、降低了硬件开销与实现难度。
1 基本原理[6-8]
假设辐射源辐射的信号为实信号s(t),被两个接收机接收的信号分别为x(t)和y(t),具有不同的噪声和时间延迟,两信号可表示为:
由于信号与噪声互不相关,Rsn1=Rsn2=0,因此可得到:
若需±m(0<m<N)范围内的相关值,可以用2m+1个乘累加器并行计算来减小运算时间。不失一般性,以一个N=4,m=2的相关运算为例,将每个乘累加器所需进行的乘运算列于表1(clk表示乘周期)。
在工程实际中,中频采样后的数据一般存储于双口RAM或FIFO中,每个时钟沿最多可提供两个不同地址的数据。然而,由式(7)与表1看出,每个乘累加器每个周期所需的输入数据都不一致,要为这些累加器同时提供不同的输入数据几乎是不可能的,尤其是在时钟速率与采样位数都较高的情况下。
对乘累加器每个周期所进行的乘运算进行调整,如表2所示。从中可以发现:相关结果未发生变化;每个乘周期所有乘累加器的输入都相同;第i个乘累加器当前周期的x输入为第i-1个乘累加器上一乘周期的x输入。由此,可设计一种并行流水结构来避免多个乘累加器同时工作时对数据吞吐率的要求。
如图1所示,每个乘累加器的y输入相同,x输入则由上一个乘累加器的x输入经过一延迟寄存器得到,整个并行相关器每个周期只需读入两个新的输入数据,数据吞吐率得以大大降低。需注意的是,为了求得±m(0<m<N)范围内的相关值,需要对输入序列进行简单的调整,即在y输入序列之前和x输入序列之后各补m个零。实际上,只要对x与y输入序列做出补零或截取这样的调整,此结构可以求任意2m+1连续范围内的相关值。并且在数据输入完毕后,所有乘累加器同时输出各自的相关结果。
在实际进行设计时,上述流水结构依然面临难题。在乘累加器较多、时钟速率与采样位数较高的情况下,需要添加复杂的时序约束,才能保证每个乘累加器的y输入都接收到正确数据,而这实现起来是非常困难的,有时是不可能的。为了解决这个问题,参照对x输入流水化的方法,对y输入也进行流水化处理,改进为图2所示的并行流水结构。此结构在数据输入完毕后,各个乘累加器将依次输出相关结果,且在第一个乘累加器输出结果后,做相应的清零,就可以进行新数据的相关运算。
2.2 基于DSP48E的并行相关器
Xilinx公司的Virtex-5系列FPGA具有多个集成了补码乘法器和48位累加器的DSP48E硬核乘加单元[11]。每个硬核乘加单元不仅支持最高550 MHz的乘法累加器工作模式,并且带有用于增强性能的可选流水线级数。相邻的单元之间具有专用的级联通道,不需消耗片上逻辑与布线资源,只需进行简单的配置(图3)即可实现图2所示的并行相关结构。单个DSP48E硬核乘加单元有5个时钟的流水延迟,具有2m+1个乘加单元的并行相关结构,进行相关运算所需时间为:
2.3 m的选取[12-13]
为了确定m的取值,需要知道两接收机信号的粗略到达时间差及误差。当采用线性检波和固定门限检测时,到达时间测量的均方根变化为:
其中,floor(·)表示向上取整。实际应用中,可根据具体参数情况计算选择。
2.4 时差估计器的硬件实现
下面以2.2节基于DSP48E的并行相关器为核心设计时差估计器。设计采用的具体参数为:脉冲前沿最大为200 ns,中频SNR为10 dB,fclk与fs为250 MHz。由式(11)可求得m最小为48,即并行相关器需97个DSP48E硬核乘加单元。为了减少运算量,在满足定位精度需求下,只采集n=4 096(16.384 μs)的脉冲数据进行相关运算。
时差估计器系统主要包括高速ADC与Virtex-5 FPGA。ADC完成两路信号的模数转换,数据存储与读取、时差粗测、并行相关与时差提取以及ADC和通信控制则全部在一片FPGA内完成。
ADC采用ADI公司的AD9211。AD9211为10 bit、最高300 MS/s、低功耗、模拟输入带宽700 MHz的采样芯片。该产品采用1.8 V单电源,功耗仅437 mW,在70 MHz输入频率条件下能保持优良的信噪比(60.1 dB FS)和SFDR(-80 dBc)。AD9211还含有内置基准电压源和采样保持,最高300 MS/s的LVDS输出可方便地与FPGA高速连接[14]。
FPGA采用Xilinx公司Virtex-5系列的XC5VSX50T。该芯片具有8 160个Virtex-5 Slices,132个36 Kbit Block RAM/FIFO以及288个DSP48E Slice;12个增强型的数字时钟管理模块(DCM)和6个相位匹配时钟分配器(PMCD);480个用户I/O端口支持1.2 V~3.3 V多种通用的单端和高速差分端口标准及数控阻抗(DCI);1个兼容PCI Express的集成端点模块,4个三态以太网MAC(媒体访问控制器),12个100 Mb/s~3.75 Gb/s的RocketIO GTP高速串行收发器模块[11]。
时差估计器的信号处理结构如图4所示。两路接收信号经射频模块变频至中频,两路中频信号同时经250 MS/s采样后通过LVDS送入FPGA,同时检波后与固定门限比较生成两路触发信号。在FPGA内,采样信号先经过FIFO进行缓冲。在两路触发信号的控制下,测量粗略到达时差并对脉冲数据进行存储,然后对两路脉冲数据进行并行相关运算,提取时延得到精确时差。精确时差结果经通信接口送至定位处理器进行定位解算。
3 实验及结果分析
3.1 性能比较分析
利用式(8)可求得时差估计器N=4 096点的相关运算时间,将运算时间与硬件资源消耗列于表3。为便于比较,将FPGA实现N=8 192点FFT的运算时间与硬件资源消耗同时列出。
频域互相关法测时差共需要进行3个8 192点FFT/IFFT和8 192次复数乘法,结合上表可知,频域互相关法的硬件资源消耗与运算周期都将远远高于本文设计的时差估计器。在fclk为250 MHz的情况下,本文设计的时差估计器可对重频最高为58 kHz的雷达信号进行实时时差估计,无需复杂的时序约束设计,避免了高系统时钟对系统稳定性的影响,降低了硬件实现难度。
3.2 实验结果分析
利用该时差估计器对常用雷达信号进行测试,各信号参数设置如下:
Signal 1:单载频脉冲信号,脉宽0.5 μs;
Signal 2:单载频脉冲信号,脉宽1 μs;
Signal 3:线性调频信号,脉宽100 μs,带宽10 Mb/s。
测试结果(如表4)表明该时差估计器可以完成无源定位中对雷达信号的高精度实时时差估计,估计精度优于10 ns。
本文从时域互相关的原理出发,优化设计并实现了一种基于DSP48E硬核乘加单元的高效并行相关时差估计器,与频域互相关法测时差相比,以更少的硬件资源实现更快的运算速度,在降低硬件实现难度的同时提高了系统稳定性。实际测试结果表明,该时差估计器可以满足无源定位中高精度实时时差测量的要求,具有重要的应用价值。 |