一种利用DDR3建立五维立体杂波图的实现方法
2017-04-19王辉辉
王辉辉 任 彦
(西安电子工程研究所 西安 710100)
0 引言
现代雷达信号处理系统实时记录杂波、分析杂波的存在、强弱和变化,从而及时改变处理系统以适应时变的杂波环境[1]。杂波图是是用于检测具有极低多普勒频率运动目标或者抑制杂波的一种技术[2]。杂波图实时地记录下雷达阵地周围环境的杂波分布及其强度变化,使动目标显示系统始终处于线性工作状态,进而获得良好的动目标显示性能[3]。传统的杂波图是最简单的二维平面杂波图,平面杂波图要求存储量小,易于工程实现,但是平面杂波图不能区分高低空区域,高波束的高空杂波必将影响低波束干净空域的目标探测,地面杂波也必将影响高空干净区域的目标探测。另外就是三维立体杂波图[4],三维立体杂波图将雷达的探测范围划分成若干个距离/方位/仰角区单元,相比传统杂波图,三维立体杂波图能够区分高低空区域,但是,一方面三维立体杂波图没有建立全频率通道杂波图,不能够对地物杂波和气象杂波进行有效抑制;另一方面三维立体杂波图对雷达探测范围内的杂波区的划分也不够精细,杂波功率估算方法采用的是脉内距离单元平均和脉间相关积累的方法,因此杂波图的分辨率不高,这导致雷达对地物杂波和气象杂波的抑制不够充分,从而降低了雷达的检测性能和对杂波环境的适应性。本文提出了一种通过FPGA对DDR3-SDRAM的读写控制来实现五维动态立体杂波图的方法。该方法将雷达探测范围按照方位,俯仰,距离,多普勒通道和PRF模式进行了杂波精细划分。
1 杂波图的基本原理
杂波图是雷达威力范围内存储在存储器中的杂波强度分布图,将雷达探测范围按照一定的划分方法划分为许多杂波图单元,雷达工作时随着波束的扫描,当波束扫回到同一杂波图单元时,新的杂波数据均值需要与上一次的杂波均值进行迭代更新,如此反复以获得稳定的杂波强度估值。因此杂波图的建立是通过对杂波数据的实时迭代更新来实现的,杂波图更新过程主要采用相关积累运算也称为递归滤波器,其原理框图如图1所示,其中K为迭代更新的系数。递归滤波器跟新系数的选取原则上要兼顾快起伏杂波与慢起伏杂波,选得过大,将不能迅速响应快起伏杂波;选得过小,慢起伏杂波的虚警变化太大,一般递归滤波器的系数选为7/8。递归滤波器是一个单极点系统,如公式(3)所示。它实际上是对各个杂波单元的多次天线扫描作指数加权积累。其传递函数推导为[5]:
y(n)=(1-K)x(n)+Ky(n-1)
(1)
Y(z)=(1-K)X(z)+KY(z)z-1
(2)
则
H(z)=Y(z)/X(z)=(1-K)/(1-Kz-1)
(3)
2 五维立体杂波图
2.1 FPGA与DDR3的高速接口
本文是利用某雷达数字信号处理板上的FPGA对外挂的DDR3-SDRAM进行读写来实现的。FPGA为Xilinx公司XC6VLX240T,FPGA外挂两片DDR3-SDRAM,其型号为MT41J256M16RE,每一片的大小为4Gbits,为了增加存储量,本文中将两片DDR3-SDRAM作为一簇来读写处理。FPGA对外挂DDR3-SDRAM的底层操作是通过ISE自带的MIG(Memory Interface Generator)核来实现的。MIG核的架构图如图2所示,User Design是用户层的接口。在该接口核中app_addr是读写操作地址。app_cmd是读写操作命令,app_cmd=0是写操作,app_cmd=1是读操作。app_en是app_addr和app_cmd的使能信号,只有该信号为高电平时,app_addr和app_cmd信号才被使能。app_rdy是User Interface Block准备好接收命令的信号,当app_en信号为高电平时,如果该信号变低,则命令app_cmd和地址app_addr是无效的,这时必须保持app_en为高电平,同时保持app_cmd和app_addr的当前值,保持到到app_rdy变高为止。app_wdf_data是和写操作命令相对应的写入数据。app_wdf_wren是app_wdf_data的写有效信号。app_wdf_end信号则表明当前的工作时钟周期是app_wdf_wren内最后一个输入数据。本文所述方法是通过编写上层读写控制逻辑来实现五维立体杂波图的。
2.2 五维杂波图实现
将雷达的探测范围按照PRF模式、多普勒通道个数、方位、俯仰和距离划分成若干个杂波单元,对于某一模式,该模式下的方位角区、俯仰角区、PRF模式、距离单元个数和多普勒通道数是固定的,也就是该模式下雷达探测范围内的杂波单元个数是固定的,因此该模式所需的杂波存储空间就是固定的。本文所述方法在DDR3-SDRAM中对不同模式下杂波存储进行了分块,每个存储块的大小是根据模式来分配的,因此块的大小不同,为了方便描述这里用ΔV来表示一个存储块。在模式切换的过程中,根据模式选择对应的块起始地址,进行该模式下的杂波图更新。本文重点阐述对于该固定模式的杂波存储块ΔV区域的杂波图更新处理方法,不同模式之间的切换只需改变ΔV块的起始地址即可。五维杂波图实现方法如图3所示。五维杂波图实现包括以下步骤:(1)对DDR3-SDRAM进行读操作,读出杂波数据;(2)利用递归滤波器进行杂波图更新,并进行数据变换处理;(3)将更新完成后的杂波数据重新写入DDR3-SDRAM对应位置,完成杂波图的更新,建立杂波图。
2.2.1读杂波图操作
由于DDR3-SDRAM不能同时进行读写操作,并且FPGA是流水处理,因此对于块ΔV内的杂波图需要分块更新,将ΔV分为m个小块Δv,ΔV=m×Δv,如果不够一块的则读写也按照一块来操作。本文对于小块Δv的更新时序是固定的,一个更新周期内完成一块Δv的更新。第一个更新周期只进行读操作,也就是读出第一个块Δv内的杂波数据与新输入数据更新并缓存,第二个更新周期内先读出第二块内的杂波数据,然后将更新后的第一块的杂波数据写入第一块存储区内,以此类推,每个更新周期只更新一小块Δv,从而实现该块Δv杂波图的更新,更新时序如图4所示。
本文更新周期为1024个工作时钟周期,也就是Δv内的杂波单元个数为1024个。MIG核对DDR3-SDRAM的读操作是8突发的,一个读操作可以读取8个地址上的数据。由于杂波数据是按照16bits存储的,因此一个读操作可以读取16个杂波数据,读完一块Δv需要64次读操作。在更新有效范围内每相隔1024个固定工作时钟周期产生一个脉冲,如果不够1024个周期时,也需要产生一个脉冲。将该脉冲作为产生每块Δv读地址的开始标志脉冲,读地址由ΔV模式地址加Δv块基地址加偏移地址三部分构成。读地址产生脉冲到来时,将Δv块的基地址改变,每个读地址脉冲基地址增加1024,然后在脉冲后面的前64个周期产生64个偏移地址,偏移地址之间的地址偏移量为8,将模式基地址、块基地址和偏移地址相加得到最终的读地址,并将读地址存入FIFO进行缓存,如图3中步骤1所示所示。
读地址产生脉冲延时70个工作时钟周期得到每块读操作开始脉冲,该脉冲是用来启动读操作的。MIG核给用户操作DDR3-SDRAM的工作时钟为200M,进行64次读操作至少需要128个工作时钟周期,因此将读操作开始脉冲间隔内的前200个工作周期作为读处理的时间周期。每个读脉冲到来时,使能MIG核的操作命令app_cmd为高电平,开始读操作。当MIG核的app_rdy信号为高时,使能app_en,让该信号保持高电平,将读地址赋值给app_addr信号,完成一次读操作,如果app_rdy变低,不能进行读操作,需要保持app_en为低电平,同时使app_addr和app_cmd保持当前状态一直到app_rdy变高。本文中MIG核对DDR3-SDRAM的读操作是8突发的,一次读操作可以读出8个地址的数据,对于位宽为16bits的DDR3-SDRAM,一次读操作读出数据量为128bits。由于DDR3-SDRAM是由两片4Gbits的并联成两片的,因此一次读操作读出两个128bits的数据。将读出来的位宽为128bits的杂波数据存入一个缓存FIFO中,该FIFO输入的数据位宽为128bits,输出的数据位宽为16bits,读出的杂波数据供更新使用。
2.2.2杂波位宽处理
新输入杂波幅度值是32bits,因为五维杂波图存储量大,如果按照32bits存储,FPGA外挂的DDR3-SDRAM存储量不够。因此本文对杂波数据(32bits)的位宽做了特殊处理,如图5所示。如图3所示,在步骤1中将读出的杂波数据存入了一个16位输出的FIFO中进行缓存,当更新开始时,从该FIFO读出杂波数据,判断杂波的标志位第16位是否为1,如果为1,则对该杂波数据的低15位做平方处理,得到32位的杂波输出,否则的话,对杂波数据高16位进行补零处理,最终将32位的数据一方面作为杂波图输出,供杂波图检测使用;另一方面和新输入的杂波数据进行更新处理,更新过程采用递归滤波器算法处理,递归系数选择为7/8。对更新后的杂波数据需要做处理以后才能存储,首先判断更新完后的杂波数据的高17位数据是否大于零,如果大于零,那么对更新的杂波数据做开平方处理,开平方的数据需要做标志处理,因此取开平方以后的数据的低15位做为有效杂波数据,将第16位作为标志位,并将标志位置1。否则,取更新后杂波数据的低16位作为存储杂波数据。经过处理,需要存储的杂波数据的位宽从32bits变为16bits,这样处理杂波数据,既不影响杂波精度,又使得杂波存储量翻倍。
2.2.3写杂波图操作
在步骤2中,需要将更新后的数据写入外部的DDR3-SDRAM中。步骤S1中读操作开始脉冲间隔内的前200个工作周期作为读处理的时间周期,因此从第二个读操作开始脉冲开始,将读操作开始脉冲延时200个工作时钟周期得到写地址产生脉冲,如图4所示。将该脉冲作为产生每块Δv写地址的开始标志脉冲,由ΔV模式地址加Δv块基地址加偏移地址三部分构成。写地址产生脉冲到来时,将Δv块的基地址改变,每个写地址脉冲基地址增加1024,然后在脉冲后面的前64个周期产生64个偏移地址,偏移地址之间的地址偏移量为8,将模式基地址、块基地址和偏移地址相加得到最终的写地址,并将写地址存入FIFO进行缓存,如图3所示。
将写地址产生脉冲延时70个工作时钟周期得到每块写操作开始脉冲,该脉冲是用来启动写操作的。MIG核对DDR3-SDRAM的读操作是8突发的,一次写操作需要在8个地址上写入数据,对于位宽为16bits的DDR3-SDRAM,一次写操作写入数据量为128bits。由于DDR3-SDRAM是由两片4Gbits的并联成两片的,因此一次写操作写入两个128bits的数据。每个写脉冲到来时,使能MIG核的app_cmd=0,开始写操作。当MIG核的app_rdy信号为高时,首先将写地址赋值给app_addr信号,同时使能写数据使能信号app_wdf_wren,使得写使能信号高电平保持两个工作时钟周期。app_wdf_end信号是当前app_wdf_wren内最后一个输入数据的标志,因此使得app_wdf_end信号的高电平保持一个周期,并且app_wdf_end的一个周期的高电平与app_wdf_wren最后一个周期要严格对齐。最后使能app_en信号,完成一次写操作。当app_rdy变低时,如果app_wdf_wren和app_wdf_end已经使能,但是app_en未使能时,保持当前app_en的低电平直到app_rdy变高。如果app_wdf_wren和app_wdf_end未使能,则保持app_en当前状态,并且不是能app_wdf_wren和app_wdf_end信号,一直到app_rdy信号变高,才能开始一次写操作。本文对DDR3-SDRAM的写处理的时序要求很高,app_rdy、app_wdf_wren、app_en、以及app_wdf_end必须按照上述规则配合起来,才能完成写操作,只要有一个出错,没有匹配起来,那么写操作就会出错,并且这个错误将永远的保持下去,直到给MIG核复位。在两个读开始脉冲之间的更新周期内,必须完成Δv块的更新,本文设计方法能够保证在两个读开始脉冲之间的更新周期内完成对FPGA外挂DDR3-SDRAM的读写操作,从而完成Δv块的杂波图更新处理。
3 仿真与实现
本文所述方法中DDR3-SDRAM工作时钟为400M,用户层的用户时钟是200M。突发方式为8突发。杂波图迭代跟新系数K值选择为7/8。试验的相干积累点数为32点,每个PRT内数据采用仿真的脉压数据,对每个PRT的数据首先进行数据重排,然后对重排结果进行MTD处理,利用MTD结果建立杂波图。在FPGA的线调试工具ChipScope观察读写地址控制逻辑以及杂波图。读写更新时序如图6所示,图中nd信号为开始更新的有效信号,表示新杂波数据到来。rd_addr_generate和wr_addr_generate分别表示开始产生读写地址的标志信号,读写地址产生以后,开始进行读写操作,读写操作开始的标志信号为rd_pulse和wr_pusle,从图中可以看出实际设计的时序和图4所要求的杂波图更新时序图一致。
读操作如图7所示。由图可知读脉冲rd_pulse到来时,app_cmd变为1,开始读操作。当app_rdy信号为高时,在app_en保持高电平期间读地址赋值给app_addr信号,完成了一次读操作,当app_rdy变低时app_en变为低电平, app_addr和app_cmd保持当前状态一直到app_rdy变高。读操作满足DDR3读要求,与设计相符合。
写操作如图8所示。由图可知每个写脉冲wr_pulse到来时, app_cmd信号置为0,开始写操作。当app_rdy信号为高时,当写地址赋值给app_addr信号时, app_wdf_wren信号保持两个工作时钟周期的高电,app_wdf_end保持一个周期高电平,且app_wdf_end的一个周期的高电平与app_wdf_wren两个高电平周期的最后一个周期严格对齐。当app_wdf_wren信号为低时,app_en信号变高,将数据和地址送入MIG核,完成一次写操作。当app_rdy变低时,如果app_wdf_wren和app_wdf_end已经使能,但是app_en未使能时,保持当前app_en的低电平直到app_rdy变高。如果app_wdf_wren和app_wdf_end未使能,则保持app_en当前状态,并且不使能app_wdf_wren和app_wdf_end信号,一直到app_rdy信号变高,才能开始一次写操作。从图中可知写操作满足设计要求。
MTD后的数据和建立的杂波图如图9所示,其中图(a)为杂波图数据,图(b)为MTD处理后的数据,图中杂波图和MTD后的二维多普勒平面按照顺序的方式显示。由于为固定的信号形式,因此经过若干个相干处理间隔后,杂波图和MTD处理后的数据应该近似一致。从图中可以看出图(a)和图(b)近似一致,因此本文提出的方法能够很好的建立起杂波图,杂波图的结果达到了预期。
4 结束语
由于存储量较大,传统的杂波图不能够进行精细划分,这导致来雷达检测能力下降以及杂波环境适应性不强。本文将两片DDR3-SDRAM并联为一簇来进行读写操作,在对杂波幅度位宽进行变换的基础上,提出了一种五维立体杂波图的实现方法,通过FPGA对DDR3-SDRAM进行读写操作,利用递归滤波器对杂波数据进行更新,并进行数据变换处理,完成杂波图的建立。试验结果表明:本设计方法可以实现杂波图的读写及更新逻辑,同时杂波位宽的变换使得存储量可以翻倍,特别是对于作用距离远,工作模式多、杂波图存储量大的大型相控阵雷达来说,本设计具有一定的价值。
参考文献:
[1]刘俊涛,宋万杰,吴顺君. 基于FPGA三维杂波图的设计与实现[J].现代雷达, 2005,27(12),18-20.
[2]邢孟道,王彤等译.雷达信号处理基础[M].北京: 电子工业出版社,2008.
[3]Schleher D C. MTI and pulsed doppler radar. Artech House Boston·London, 1991.
[4]闫修林,阮增苗. 杂波图技术在雷达终端信号处理中的应用[J].现代雷达, 2004, 26(5): 34-36.
[5]刘俊涛.雷达杂波图CFAR算法研究及基于FPGA的实现[D].西安: 西安电子科技大学, 2006: 18-19.