引言
线性调频信号可以获得较大的压缩比,有着良好的距离分辨率和径向速度分辨率,作为一种常用的脉冲压缩信号,已广泛应用于高分辨率雷达领域[1]。传统的获得线性调频信号主要借助模拟方法,由于模拟方法对环境温度比较敏感、信号波形比较单一、难以实现高的线性调频度、电路复杂及信号间的相关性不理想等,从而制约了雷达整机性能的提高[1]。 DDS(直接数字频率合成)技术是解决这一问题的办法,DDS技术从相位的概念出发进行频率合成,采用数字采样存储技术,可以产生点频、线性调频、ASK、FSK等各种形式的信号,并且其幅度和相位一致性都很好,具有电路控制简单、方便灵活、可靠性高、相位、频率分辨率高、频率切换速度快、输出信号相位噪声低、易于实现全数字化设计等突出的优点。 在雷达系统中采用DDS技术可以灵活地产生不同载波频率、不同脉冲宽度、不同脉冲重复频率等参数的信号,为雷达的设计者提供了全新的思路。 DDS是一种全数字化的频率合成器,由相位累加器、正弦波形ROM存储器、D/A转换器和低通滤波器构成。 输出信号波形的频率表达式为: 式中,fclk为参考时钟频率,Δφ为相位增量,表现以多大的间隔对信号相位进行累加,也称为频率控制字,N为相位累加器的位数。 所以,只要N足够大,DDS可得到很小的频率间隔,要改变DDS的输出信号的频率,只要改变Δφ即可。 可见,当参考时钟频率给定后,输出信号的频率取决于频率的控制字,频率分辨率取决于累加器的位数,相位分辨率取决于ROM的地址线位数,幅度量化取决于ROM的数据字长和D/A转换器的位数。 2 基于FPGA的DDS软件编程产生线性调频信号 利用专用DDS芯片是目前比较流行的信号产生方法,专用DDS芯片把所有功能集中在一块芯片上,需要设计者依次为平台进行开发[3]。而基于FPGA(现场可编程门阵列)的DDS软件编程则根据DDS技术的基本原理,充分利用了FPGA作为大规模芯片的资源优势和高速运算能力,除了能产生专用DDS芯片所具备的单频连续波、非连续波、各种形式的线性调频信号以外,还可以借助FPGA庞大的资源优势和内部存储器,使非线性调频等更复杂的信号更容易实现。 在具体实现过程中主要采用一块基于FPGA的雷达信号处理卡,既可以采集来自雷达接收机的中频、视频信号并对其进行数字信号处理,又可以自身模拟产生雷达中频、视频信号进行数字信号处理或不处理直接送往雷达信号处理机。 FPGA采用Xilinx公司的10万门FPGA芯片XC2S100E,其配置芯片为Xilinx公司的1Mbit容量PROM芯片XC18V01,以主动串行方式对FPGA进行上电配置,A/D、D/A转换器分别为ADI公司12位高速A/D数转换芯片AD9224与14位高速D/A转换芯片AD9764。SRAM采用Cypress公司的256k×16bits SRAM芯片CY7C1041。 设计中利用FPGA实现32位/33MHz的PCI接口逻辑,进行实时信号采集和传输控制,由于FPGA具有层次化的存储器系统,其基本逻辑功能块可以配置成16×1、16×2或32×1的同步RAM,或16×1的端口同步RAM。因此,可以在FPGA内部配置高速双口SAM用来作为信号传输的数据缓冲器。同时,为了节省FPGA的内部逻辑资源,在FPGA外围配置了适当的SRAM用来存储数据。 结合本处理卡的结构特点,硬件采用FPGA与高速D/A方案产生线性调频信号,在FPGA内部实现DDS电路,FPGA输出全数字线性调频信号送往高速D/A转换器得到终的模拟线性调频信号,由于本处理卡采用PCI总线结构,因此可通过计算机实时修改线性调频信号的参数设置,改善了人机接口,提高了系统的灵活性。 DDS电路产生的是固定频率的正弦波信号,信号频率受相位增量Δφ控制,若要产生线性调频信号,则必须实时改变Δφ,使Δφ根据频率步进量fstep而线性变成,因此,基于FPGA软件编程实现线性调频信号时,需要在FPGA内部实现频率累加器、相位累加器、正弦波形ROM存储器等电路,FPGA软件编程实现线性调频信号的原理。 产生线性调频信号时,每来一个时钟脉冲,软件编程控制频率累加器产生线性增加的瞬时频率,然后经过相位累加器运算输出线性调频信号的瞬时相位,以此相位值寻址正弦值存储表,通过查表得到与相位值对应的幅度量化值;在下一个周期来临时,频率累加寄存器一方面将在上一个时钟周期作用后所产生的新的频率数据反馈到频率加法器的输入端,以使频率加法器继续累加,频率累加的瞬时值与上一个周期相位累加器反馈到相位加法器输入端的数据累加,然后再依此周期累加的相位值重新寻址正弦值存储表,得到对应的幅度量化值。依此循环,幅度量化值经累加,并经D/A转换器得到连续的阶梯波,经低通滤波器滤除高频分量,即可得到所需线性调频信号[4]。 已知系统工作时钟fclk、频率累加器与相位累加器位数N,要产生中频为F0、带宽为B、时宽为T的线性调频信号,其频率步进编程见图4。在FPGA软件编程时只需计算起始频率fstart和频率步进量fstep即可。 起始频率fstart和频率步进量fstep计算公式如下: VHDL语言中数值表示方法采用二进制,所以通过式(3)、式(4)计算的结果二进制数,无量纲。 经过频率累加器输出的是严格线性增长的瞬时频率。在实际过程中,相位累加器的输出是经过相位截断再进行寻址,从而引入了一定的相位误差,虽然这一误差会影响到线性调频信号的线性度,但是调频斜率为相位的二次导数,相位截断误差本身已很小,所以对调频线性度的影响就更小了。 2.3 FPGA的软件编程实现线性调频信号的部分程序 本程序完全遵照上述的FPGA软件编程实现现行调频信号的原理编写,采用VHDL语言来进行描述,以下是部分源程序。 dds_fstart<=“000001100110011001100110”,//设置线性调频信号初始频率为1MHz,由式(3)可计算出 dds_phase_start<=“0000000000000000000000”;//设置线性调频信号初始化初始相位为0 dds_fstep<=conv_std_vector(419,43);//设置线性调频信号频率步进为419.43,对应调频带宽为1MHz,时宽为25μs,由式(4)可计算出 2.4 与DDS专用芯片方法的比较 由于基于FPGA的DDS软件编程同样利用了DDS技术的基本原理,主要部分均由频率累加器、相位累加器、相位幅度转换器组成,所以与DDS专用芯片方法的方法一样,所产生的信号具有可通过编程灵活控制参数、具有高的调频线性度、频率稳定度等DDS技术特有的优点。但是与DDS专用芯片方法相比,有自己的优势和不足。 首先对VHDL代码进行了时序仿真,然后将编译综合后的BIT文件到FPGA芯片中进行系统联调。实验表明,采用FPGA软件编程技术较好地实现了线性调频信号的产生,而且信号波形比较稳定。 图6为实际调试过程中产生的一个脉宽为7μs,中频为7.5MHz,调频带宽为5MHz的线性调频脉冲信号在示波器上的截图。从图中可以看出,本系统所产生的线性调频信号取得了较好的效果,能够满足实际工程中的应用,在雷达系统中有较好的应用前景。 本文原理以及基本系统亦可用于构成产生相位编码脉冲信号等其他形式的复杂雷达信号形式,具有较大的可扩展性。 | |||||||
(邱军海,宋杰,关键,唐小明) |
[1]. ROM datasheet https://www.dzsc.com/datasheet/ROM_1188413.html.
[2]. XC2S100E datasheet https://www.dzsc.com/datasheet/XC2S100E_726872.html.
[3]. AD9224 datasheet https://www.dzsc.com/datasheet/AD9224_122652.html.
[4]. AD9764 datasheet https://www.dzsc.com/datasheet/AD9764_251658.html.
[5]. CY7C1041 datasheet https://www.dzsc.com/datasheet/CY7C1041_1067402.html.
[6]. PCI datasheet https://www.dzsc.com/datasheet/PCI_1201469.html.
[7]. AD9854 datasheet https://www.dzsc.com/datasheet/AD9854_251860.html.
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。