近年来,随着现场可编程门阵列(FPGA)在雷达信号处理中的广泛应用以及FPGA芯片技术的发展,为大家提供了一种较好解决数字脉压的途径。其中,利用IP核设计FPGA数字系统成为一种趋势,这些知识产权核可以大大简化FPGA的设计,加快设计速度,缩短研发周期,而且经过不断的优化,IP核具有了更好的精度和更快的运算速度,实际的工程应用效果很好。
本文以此为出发点,对线性调频信号的脉冲压缩进行了研究,仿真,并提出了一种采用IP核设计脉冲压缩的方法。
1 线性调频信号的脉冲压缩
1.1 脉冲压缩的实现原理
脉冲压缩可以采用“共轭滤波器对”的匹配滤波法和相关处理法。匹配滤波法对应于频域相乘,相关处理法对应于时域卷积。依据傅里叶变换理论:时域卷积等效于频域乘积。因此这两种方法是等效的,只是一种方法在频域实现,而另一种方法在时域实现。考虑到运算量,工程上一般采用频域法,可以利用快速FFT算法提高计算速度,然后将雷达回波与匹配滤波系数的频域响应相乘,再经过IFFT处理得到脉冲压缩结果。匹配滤波系数只与发射信号有关,预先可知,一般预先算好。
1.2 线性调频信号的脉冲压缩
一般在时宽带宽积BT>30时,可以近似认为线性调频信号具有矩形振幅频谱,因此其匹配滤波器也应该具有矩形带通振幅特性。线性调频信号的匹配滤波器的近似频率特性可描述为:
可以看出,线性调频的脉冲压缩结果具有sine函数形状。主瓣宽度为1/B,第一旁瓣电平约为-13.2 dB。如果是多目标环境,较大的旁瓣会埋没附近的小目标信号,为了抑制旁瓣,可以采用加权技术。其实质就是对信号进行失配处理以抑制旁瓣,其副作用是使输出信号的主瓣降低并展宽。
1.3 理论仿真
设匹配滤波器的输入信号是线性调频I/Q基带信号,带宽为40 MHz,采样频率为100 MHz,脉冲宽度为6μs,信号幅度为1,通过Matlab对其进行脉冲压缩仿真。图1中是输入的I/Q基带信号波形以及脉压后的结果。从图中可以看到脉压后产生的窄脉冲,波形具有sine函数性质,除主瓣外,时间轴上还有延伸的一串副瓣;还可看出,经过海明加权后,第一副瓣比主瓣下降约40 dB,但主瓣宽度也有相应的展宽。如图2所示。
2 脉冲压缩系统设计
该系统的主要功能是对线性调频I/Q基带信号进行高速采集,然后在FPGA中实现线性调频信号的脉冲压缩,之后通过D/A变换器输出脉压结果,监测脉压后的波形。
关键字:调频信号 IP核 脉冲压缩
2.1 系统硬件平台
该系统硬件平台主要包括:差分驱动电路,A/D采集电路、FPGA电路、晶振等电路、电路结构框图如图3所示。
FPGA采用的是Xilinx公司的芯片XQ2V1000,其配置芯片为Xilinx公司的PROM芯片XQ18V04,以主动串行方式对FPGA进行上电配置。差分驱动电路选用ADI公司的AD8138,A/D、D/A电路分别为ADI公司的14位高速模/数转换芯片ADS5500和14位高速数/模转换芯片DAC5675A。硬件电路的设计注重细节:I/Q两通道传输线设计时保证线长相等,使得I/Q时延带来的相位误差一致;采用DCI(DigitaUy Controlled Impe-dance)端接技术,在FPGA的每个bank上外接两个参考电阻来对该bank的每个I/O管脚实现端接,减少外接电阻的数量,实现阻抗匹配,提高系统的稳定性;做好电源滤波,对元器件进行合理布局,布线,对模拟信号和数字信号进行有效隔离,减小信号间串扰。
2.2 软件设计流程
整个脉冲压缩处理在时间上是顺序的,是典型的数据流驱动的系统,即先进行FFT,复乘然后是IFFT及FIFO输出,脉冲压缩的总时序关系见图4。该系统实现1 024点的脉冲压缩,算法上采用基于IP核的设计方法。主要用到了FFT核,乘法器核以及单口Block Memory核,这些IP核的应用及脉冲压缩的具体实现如下所述。
2.2.1 FFT运算
对于长度为N的时域序列X(n)的离散傅里叶变换为X(k):
FFT算法主要是利用旋转因子exp(-j2πnk/N)的周期性和对称性的特点进行改进的算法,可以有效地减小运算量。Xilinx公司的FFT核利用Cooley-Tukey算法实现FFT/IFFT运算,最高支持216点长度的运算,可以实现流水线型、基4、基2三种结构,蝶形运算后可选择对数据顺序输出还是倒序输出,对IP核进行不同的配置,可以实现资源和运算速度的最优化。在此选用基4蝶形运算,对于1 024点数据,需要5级蝶形运算。
Xilinx公司的FFT核的参数通过GUI界面(见图5)进行设置,可设置的参数包括FFT点数,运算实施方法,输入数据位数等,设置完毕后点击Generate可即时生成代码。
硬件描述语言采用VHDL,使用时程序中要对器件初始化并进行定义,FFT核的器件定义语句见图6。
2.2.2 匹配滤波系数产生
根据匹配滤波理论,对于一个确定的输入信号,匹配滤波系数就是这个输入信号的频谱的复共轭,系数可以通过Matlab预先计算出来并以二进制的文件格式进行存储。此处计算时可以进行加权处理,在系数中乘以窗函数即可。
通过Xilinx公司的单口Block Memory核,可以把Matlab产生的存储文件加载进去。当程序运行时,根据使能控制信号,把匹配滤波系数数据(1 024点)依次读取出来,送入乘法器进行后续运算。BlockMemory核的参数设置通过GUI界面进行,可即使生成代码。
2.2.3 乘法运算
乘法运算部分完成FFT后数据与匹配滤波系数数据的复数乘法运算。根据复数的乘法规则。
(A+aj)(B+bj)=(AB-ab)+(Ab+aB)j
两个复数的乘法运算实际上包括了4个实数的乘法运算,因此,此部分的设计用到了4个乘法器核。Xilinx公司的乘法器核支持补码运算,可输入A,B两路数据,每路的输入数据长度可达64 b。乘法器核的参数设置也是通过GUI界面进行,可即使生成代码。
2.2.4 IFFT运算
IFFT运算的处理单元和FFT的处理单元采用相同的结构来实现。具体的实现方法是,在做IFFT运算前,先交换输入数据的实部和虚部,然后送入FFT处理单元按照FFT结构进行运算,得到运算结果后,再对其实部和虚部进行交换,然后除以运算点数1 024,就可以得到IFFT后脉冲压缩的运算结果。
关键字:调频信号 IP核 脉冲压缩
2.3 工程软件仿真
利用ModelSim仿真软件首先对程序代码进行时序功能仿真,完成逻辑的综合与实现之后再进行布局布线后仿真,此时的仿真已基本接近真实情况。综合后的仿真情况如图7所示,仿真结果表明软件运行正常,可实现线性调频信号的脉冲压缩。
2.4 测试数据分析
完成程序编制及仿真之后,把软件加载至FPGA中进行全面测试。通过Chipscope软件可以采集到A/D之后的I/Q线性调频基带信号数据以及经过FPGA处理后的脉压数据,把A/D后采集到的数据放在Matlab中进行理想的脉冲压缩,与实际FPGA的脉压结果进行对比。从图8中可以看出,两种处理的结果是一致的,主副瓣比大约都在35 dB左右,主瓣宽度也基本相同。如图8所示。
脉冲压缩系统软、硬件调试完毕之后,通过板上的D/A输出可以直接监测脉冲压缩后的I/Q信号波形,如图9所示。
3 结语
本文主要介绍了一种利用FPGA IP核设计线性调频信号脉冲压缩的方法,通过各种仿真与实际测试表明脉冲压缩结果正确。这种基于IP核的模块化设计方法非常灵活,参数的设置和修改方便,大大缩减了设计的开发周期。需要注意的是,虽然IP核的内部结构和实现功能已经固定,但设计时也要结合算法原理和IP核的自身特点综合考虑,对参数进行合理设置,以便获得硬件资源和运算速度的最优化。