CN104459666B - 基于LabVIEW的弹载SAR回波仿真及成像方法 - Google Patents
基于LabVIEW的弹载SAR回波仿真及成像方法 Download PDFInfo
- Publication number
- CN104459666B CN104459666B CN201410720663.0A CN201410720663A CN104459666B CN 104459666 B CN104459666 B CN 104459666B CN 201410720663 A CN201410720663 A CN 201410720663A CN 104459666 B CN104459666 B CN 104459666B
- Authority
- CN
- China
- Prior art keywords
- orientation
- data
- distance
- function
- sar
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S7/00—Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
- G01S7/02—Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S13/00
- G01S7/40—Means for monitoring or calibrating
- G01S7/4052—Means for monitoring or calibrating by simulation of echoes
Abstract
本发明属于雷达信号处理技术领域,特别涉及基于LabVIEW的SAR面回波仿真及弹载SAR成像方法。其具体步骤为:在LabVIEW界面输入合成孔径雷达的工作参数,利用CUDA架构将弹载SAR回波仿真的过程封装为DLL函数;LabVIEW将合成孔径雷达的工作参数输出至库函数节点,库函数节点调用所述DLL函数,得到所有方位时间SAR观测场景的回波数据。
Description
技术领域
本发明属于雷达信号处理技术领域,特别涉及基于LabVIEW的SAR面回波仿真及弹载SAR成像方法。
背景技术
随着合成孔径雷达成像技术的发展,将合成孔径雷达(SAR)与精确制导技术相结合的弹载SAR已成为近年的研究热点。由于弹载SAR需要高分辨率以获得更多的目标信息,使目标的形状和精细结构更清晰地呈现出来,从而大大提高对目标的识别能力和精确打击能力;而在军事上,弹载SAR通常在侦查完后还需完成攻击,为了保证导弹具备一定的转弯机动时间,弹载SAR一般需在前斜视的情况下成像。因此对弹载SAR前斜视的成像研究具有重要意义。
弹载SAR仿真系统具有SAR回波模拟和SAR成像处理的功能,是SAR系统研发、功能测试以及性能评估的重要手段。现有的弹载SAR仿真系统存在仿真耗时长,执行效率低等缺点。
发明内容
本发明的目的在于针对上述现有技术存在的问题和不足,提供一种基于LabVIEW和GPU的弹载SAR回波仿真及成像方法,可以实现对输入参数和指定场景的回波仿真和弹载SAR成像处理。
为实现上述技术目的,本发明采用如下技术方案予以实现。
技术方案一:
基于LabVIEW的弹载SAR回波仿真方法,其特征在于,包括以下步骤:在LabVIEW界面输入合成孔径雷达的工作参数,利用CUDA架构将弹载SAR回波仿真的过程封装为DLL函数;LabVIEW将合成孔径雷达的工作参数输出至库函数节点,库函数节点调用所述DLL函数,得到所有方位时间SAR观测场景的回波数据;
利用CUDA架构进行弹载SAR回波仿真的过程包括以下子步骤:
子步骤1,在CPU端,设置合成孔径雷达的工作参数;所述合成孔径雷达的工作参数包括合成孔径雷达方位向采样点数Na;
子步骤2,在CPU端,设置SAR观测场景,以SAR观测场景的中心为参考点建立坐标系,设置SAR每个阵元在每个方位时间的位置,设置SAR观测场景中每个散射点的坐标和散射系数;
子步骤3,将CPU在子步骤1和子步骤2中设置的所有数据复制到GPU的全局内存中;
子步骤4,在GPU端,使用第1个Kernel函数、第2个Kernel函数和第3个Kernel函数得出第l个方位时间SAR观测场景的回波数据,l=1,2,...,Na;
子步骤5,令l依次取1,2,...,Na,并重复执行子步骤4,得出所有方位时间SAR观测场景的回波数据。
技术方案二:
基于LabVIEW的弹载SAR成像方法,其特征在于,包括以下步骤:在LabVIEW界面输入弹载合成孔径雷达的工作参数,利用CUDA架构将弹载SAR成像的过程封装为DLL函数;LabVIEW将合成孔径雷达的工作参数输出至库函数节点,库函数节点调用所述DLL函数,得到聚焦后的SAR图像数据;
利用CUDA架构进行弹载SAR成像的过程包括以下子步骤:
子步骤S1,在CPU端设置合成孔径雷达的工作参数,并获取SAR原始回波数据,所述合成孔径雷达的工作参数包括合成孔径雷达方位向采样点数Na、合成孔径雷达距离向采样点数Nr;CPU将合成孔径雷达的工作参数存储于GPU中,将SAR原始回波数据以矩阵的形式存储于GPU中;
子步骤S2,在GPU端,对SAR原始回波数据矩阵作距离向处理,得出距离方位二维时域数据;所述对SAR原始回波数据矩阵作距离向处理的过程为:针对SAR原始回波数据矩阵依次进行距离向傅里叶变换、距离向脉冲压缩、进行距离走动校正及多普勒中心补偿、方位向傅里叶变换、距离弯曲校正、二次距离向脉冲压缩、距离向逆傅里叶变换和方位向逆傅里叶变换;
子步骤S3,在GPU端,将距离方位二维时域数据矩阵沿方位向进行补零扩展,得出大小为Na′×Nr的方位向补零扩展后的距离方位二维时域数据矩阵,Na′为大于Na的自然数;
子步骤S4,在GPU端,对方位向补零扩展后的距离方位二维时域数据矩阵依次进行方位向傅里叶变换、转置,得出转置后的方位向傅里叶变换后数据矩阵;在方位频域,针对转置后的方位向傅里叶变换后数据矩阵每个元素,计算对应的高次相位补偿函数和高次相位滤波函数,将转置后的方位向傅里叶变换后数据矩阵每个元素依次乘以对应相位补偿函数和相位滤波函数,得出相位补偿及相位滤波后的方位频域数据;所述相位补偿函数用于对转置后的方位向傅里叶变换后数据矩阵对应的元素进行四次相位补偿和五次相位补偿,所述相位滤波函数用于对转置后的方位向傅里叶变换后数据矩阵对应的元素进行二次相位校正和三次相位校正;在得出相位补偿及相位滤波后的方位频域数据之后,在GPU端,对相位补偿及相位滤波后的方位频域数据进行方位向逆傅里叶变换,得出相位补偿及相位滤波后的方位时域数据;在方位时域针对相位补偿及相位滤波后的方位时域数据,补偿由相位滤波函数引入的高次相位,得出残余高次相位补偿后的方位时域数据;对残余高次相位补偿后的方位时域数据进行方位deramp处理,对方位deramp处理后的方位时域数据进行方位向傅里叶变换,得到聚焦后的SAR图像数据。
本发明的有益效果为:可以实现对输入参数和指定场景的回波仿真和弹载SAR成像处理。
附图说明
图1为发明的基于GPU的合成孔径雷达回波仿真方法的流程图;
图2a为本发明中为第1个Kernel函数分配线程网格的示意图;
图2b为本发明中为第2个Kernel函数分配线程网格的示意图;
图3为本发明中第2个Kernel函数的每个线程块对对应数据进行树状结构累加求和的示意图;
图4为本发明中为第3个Kernel函数分配线程网格的示意图;
图5a为仿真实验中利用本发明得出的散射点二维回波数据的幅度图;
图5b为仿真实验中利用本发明得出的散射点二维回波数据的相位图;
图6a为仿真实验中面目标仿真原始场景图;
图6b为仿真实验中利用本发明得出的面目标回波二维幅度图;
图6c为仿真实验中利用本发明得出的面目标成像结果示意图;
图7为本发明的基于GPU的弹载SAR前斜视成像方法的流程图;
图8为GPU端进行距离向处理时核函数的线程分配方式示意图;
图9为本发明实施例中频域匹配滤波的参考函数与距离频域方位时域数据矩阵的相乘运算的过程的示意图;
图10为GPU端进行方位向处理时核函数的线程分配方式示意图;
图11a为仿真实验中利用本发明得出的五个点目标的成像结果示意图;
图11b为仿真实验中利用本发明得出位于合成孔径雷达的边缘的第一个点目标的等高线图;
图11c为仿真实验中利用本发明得出位于合成孔径雷达的边缘的第二个点目标的等高线图;
图11d为仿真实验中利用本发明得出位于合成孔径雷达的边缘的第三个点目标的等高线图;
图11e为仿真实验中利用本发明得出位于合成孔径雷达的边缘的第四个点目标的等高线图。
图12a为仿真实验中包含五个点目标的原始场景图;
图12b为仿真实验中利用本发明得出的五个点目标回波的成像结果示意图。
具体实施方式
下面结合附图对本发明作进一步说明:
本发明实施例中,基于LabVIEW的弹载SAR回波仿真方法包括以下步骤:在LabVIEW界面输入合成孔径雷达的工作参数,利用CUDA(Compute Unified Device Architecture)架构将弹载SAR回波仿真的过程封装为DLL函数;LabVIEW将合成孔径雷达的工作参数输出至库函数节点,库函数节点调用所述DLL函数,得到所有方位时间SAR观测场景的回波数据。
具体地说,LabVIEW界面负责输入数据和显示结果,设置雷达的工作参数,如距离向采样点数、方位向采样点数、采样率、斜视角等。设置导弹的运动参数,理想情况下输入x、y、z方向的速度分量,实际情况下输入导弹在各方位时间的位置坐标。选择仿真类型是点目标回波还是面目标回波,进行面目标回波仿真时还需要加载场景图像数据,点目标回波仿真需要输入各点目标的坐标。输入的所有数据将保存在移位寄存器中。
本发明的回波仿真在CUDA平台上开发完成后,封装成DLL中的一个函数。对于LabVIEW,生成回波需要的参数和数据由移位寄存器输入到库函数节点,库函数节点将以调用DLL的方式启动成像处理函数,实现基于GPU的SAR面目标快速回波仿真。库函数节点的调用完成后回波数据从DLL函数中输出到LabVIEW,由LabVIEW将回波数据写入指定的文件中。
点目标回波仿真由于目标较少,在瞬间就可以完成。面目标回波仿真由场景散射点的个数决定,全部在CPU上完成一般需要几个小时甚至几天的时间,所以很有必要设计高性能的GPU代码对面目标回波仿真进行加速。回波仿真程序通过参数传递接收LabVIEW传递的参数和数据。
本发明实施例中,参照图1,为利用CUDA架构进行弹载SAR回波仿真的流程图。利用CUDA架构进行弹载SAR回波仿真的过程包括以下子步骤:
子步骤1,在CPU端,设置合成孔径雷达的工作参数,所述合成孔径雷达的工作参数包括:合成孔径雷达波束角、合成孔径雷达距离向采样点数(距离单元数)Nr、合成孔径雷达方位向采样点数Na、合成孔径雷达距离向采样频率Fs、合成孔径雷达距离向采样间隔Δr、合成孔径雷达距离向第一个采样单元(第一个距离单元)的斜距R0、光速c、合成孔径雷达发射信号带宽B、合成孔径雷达发射信号的载波波长λ。
子步骤2,在CPU端,设置SAR观测场景,以SAR观测场景的中心为参考点建立坐标系,设置SAR每个阵元在每个方位时间的位置,设置场景中散射点间的间隔,设置SAR观测场景中每个散射点的坐标和散射系数。
子步骤3,将CPU在子步骤1和子步骤2中设置的所有数据复制到GPU的全局内存中;此时,需要预先在GPU端为来自CPU的数据分配全局内存。
子步骤4,在GPU端,使用第1个Kernel函数、第2个Kernel函数和第3个Kernel函数得出第l个方位时间SAR观测场景的回波数据,l=1,2,...,Na。
得出第l个方位时间SAR观测场景的回波数据的过程为:
在GPU端,为第1个Kernel函数分配N1个线程块, 表示向上取整,Point_num表示第l个方位时间SAR观测场景种所有散射点的个数,N为设定的自然数。每个线程块包含256个线程(即每个线程块的大小BLOCK_SIZE设置为256)。这样就能确保为第1个Kernel函数分配的线程总数为256的倍数,多余的线程不分配任务。参照图2a,为本发明中为第1个Kernel函数分配线程网格的示意图;图2a中,Block(0,0),Block(1,0),Block(2,0)…表示为第1个Kernel函数分配的线程块,Thread0至Thread255表示每个线程块的256个线程。
第1个Kernel函数的每个线程得出第l个方位时间N个散射点的回波数据,在计算第l个方位时间每个散射点的回波数据时,计算第l个方位时间对应散射点所在距离单元的回波数据并进行Nr次sinc插值,将对应散射点所在距离单元的回波数据进行第k次sinc插值后的数据记为对应散射点的第k次sinc插值数据,k取1至Nr;将对应散射点的第1次sinc插值数据至对应散射点的第Nr次sinc插值数据组合为对应散射点的回波数据。可以看出,每个散射点的回波数据是长度为Nr的向量(即包括Nr点数据)。
当第1个Kernel函数的每个线程得出第l个方位时间N个散射点的回波数据之后,对第l个方位时间N个散射点的回波数据进行累加(第l个方位时间N个散射点的相同距离单元的sinc插值数据进行累加),得出第l个方位时间N个散射点的回波数据的第1个距离单元的累加结果至第l个方位时间N个散射点的回波数据的第Nr个距离单元的累加结果,将第l个方位时间N个散射点的回波数据的第1个距离单元的累加结果至第l个方位时间N个散射点的回波数据的第Nr个距离单元的累加结果组成第l个方位时间N个散射点的回波数据的累加结果。第l个方位时间N个散射点的回波数据的累加结果是由Nr个复数元素组成的向量(即包括Nr点数据),
本发明实施例中,根据前述说明,第1个Kernel函数使用的线程的个数为 表示向上取整;第1个Kernel函数的每个线程得出的N个散射点的回波数据的累加结果为长度为Nr的向量(Nr点数据),Nr表示合成孔径雷达距离向采样点数。当第1个Kernel函数的每个线程得出N个散射点的回波数据的累加结果之后,将其存储于GPU的全局内存中,因此在GPU的全局内存中需要为第1个Kernel函数分配Nr×Point_num/N个复数单元(每个复数单元用于存储复数据)。
显然,为第1个Kernel函数分配的线程网格与N的大小密切相关,为了给单个线程分配尽可能多的任务以提高第1个Kernel函数的效率并考虑全局内存的限制,设置改变N使第1个Kernel函数的每个线程得出的N个散射点的回波数据的累加结果的大小限制在1GB以下,由此找出的最大的N值为设定的N的取值。
在GPU端,为第2个Kernel函数分配N2个线程块为第2个Kernel函数分配的每个线程块包括256个线程。N2个线程块可以用二维线程块网格进行表示,二维线程块网格的行数为Nr,列数为参照图2b,为本发明中为第2个Kernel函数分配线程网格的示意图。图2b中,Block(0,0),Block(1,0)…Block(0,1),Block(1,1)…,Block(0,Nr),Block(1,Nr)…代表为第2个Kernel函数分配N2个线程块;Thread0至Thread255表示每个线程块的256个线程。
针对第1个Kernel函数的每个线程块得出的256×Nr个复数元素(即第1个Kernel函数的每个线程块得出的256个第l个方位时间N个散射点的回波数据的累加结果),在第2个Kernel函数中调用Nr个线程块;针对第1个Kernel函数的每个线程块得出的第l个方位时间N个散射点第k个距离单元的256个复数元素,在第2个Kernel函数对应的Nr个线程块中使用第k个线程块对第1个Kernel函数的每个线程块得出的第l个方位时间N个散射点第k个距离单元的256个复数元素进行树状结构累加求和(并行归约求和),得出第l个方位时间第2个Kernel函数对应的Nr个线程块中第k个线程块的累加求和结果,k取1至Nr。可以看出,第2个Kernel函数得出第l个方位时间的N2个累加求和结果。
具体地说,第2个Kernel函数要同时并行对第1个Kernel函数的每个线程块得出的256×Nr个复数元素进行树状结构累加求和,在第2个Kernel函数对应的Nr个线程块中使用第k个线程块对第1个Kernel函数的对应线程块得出的256×Nr个复数元素进行树状结构累加求和的过程为:将第1个Kernel函数的对应线程块得出的第l个方位时间N个散射点的第k个距离单元的累加结果(由256个复数元素组成)从GPU的全局内存读取到共享内存中,然后在GPU的共享内存中,使用第2个Kernel函数对应的Nr个线程块中的第k个线程块对第1个Kernel函数的对应线程得出的第l个方位时间N个散射点第k个距离单元的累加结果进行树状结构累加求和(并行归约求和)。参照图3,为本发明中第2个Kernel函数的每个线程块对对应数据进行树状结构累加求和的示意图。第2个Kernel函数的对应线程块的每个线程将对应的一个复数元素从GPU的全局内存中读取到GPU的共享内存,并行归约求和结束后,结果位于共享内存中的第一个元素,由对应线程块中的0号线程将累加结果写入GPU的全局内存。要实现共享内存的并行归约求和就要求每个线程块的线程和数据个数都是2的整数幂,但实际中每个距离单元上的最后一个线程块需要处理的数据很可能小于程序中的块尺寸256,但由于在CUDA单指令多线程的编程模型中,它也开辟了256个复数元素的共享内存并且会读取全局内存,因此为了使第2个Kernel函数正确执行,在线程读取数据到共享内存前,要判断线程的序号是否小于一个距离单元待累加的数据个数,如果小于则该线程读取全局内存相应元素到共享内存的相应位置,否则此线程对它在共享内存中对应的元素置0。这样,第2个Kernel单元对每个距离单元的数据就能做任意数目的并行归约求和,而不要求数据量为256的整数倍。
在GPU端,为第3个Kernel函数分配Nr个线程块,为第3个Kernel函数分配的每个线程块包括256个线程。参照图4,为本发明中为第3个Kernel函数分配线程网格的示意图;图4中,Block(0,0),Block(0,1)…Block(0,Nr)表示为第3个Kernel函数分配的线程块,Thread0至Thread255表示每个线程块的256个线程。
在调用第2个Kernel函数实现回波数据的部分累加后,采用第3个Kernel函数将第2个Kernel函数的输出结果再次用共享内存进行累加。在本发明实施例中,第3个Kernel函数的第k个线程块从GPU的全局内存中读取第2个Kernel函数得出的第l个方位时间的第k个距离单元的累加结果(由256个复数元素组成),然后对第2个Kernel函数得出的第l个方位时间的第k个距离单元的累加求和结果进行树状结构累加求和(并行归约求和),得出对应的累加求和结果,k取1至Nr。第3个Kernel函数得出第l个方位时间的Nr个累加求和结果。需要说明的是,如果第3个Kernel函数在同一个距离单元上待累加的数据多于256个,先由线程块将该距离单元上256个数据写入共享内存,之后该距离单元的其他所有数据用while循环累加到共享内存上,这样就能保证第3个Kernel函数的一个线程块可以实现一个距离单元数据的累加;如果第3个Kernel函数在一个距离单元上待累加的数据少于256个,则第3个Kernel函数采用和第2个Kernel函数采用相同的方式,即对共享内存的多余元素补0,再进行归约求和。第3个Kernel函数执行完成后,在Nr个距离单元上产生Nr点回波。
本发明实施例中,第1个Kernel函数、第2个Kernel函数和第3个Kernel函数分别按照各自的线程网格依次执行,完成在GPU上并行实现发射一次脉冲收到回波的过程,也就是波束范围内所有散射点回波的叠加。
相比传统的回波模拟算法,本发明在计算每个散射点的回波数据时,只需要计算它所在距离单元的回波并进行多点插值,大大减少了计算量。得出第l个方位时间每个散射点的回波数据的过程包括以下子步骤:
(a)首先根据合成孔径雷达的工作参数,判断对应散射点是否在合成孔径雷达的波束范围内。具体地说,计算出对应散射点的斜视角,如果它小于波束角的1/2,则对应散射点在合成孔径雷达的波束范围内;否则,对应散射点不在雷达的波束范围内。
(b)计算合成孔径雷达的波束范围内对应散射点的瞬时斜距R,
(c)以合成孔径雷达第一个距离单元为参考单元,确定合成孔径雷达的波束范围内对应散射点所在距离单元的序号ind,
(d)确定sinc插值的插值长度2L+1,2L+1一般选取40~100,L越大插值精度越高,但计算每个散射点回波数据的效率(速度)也相应降低
(e)判断对应散射点是否在插值采样单元内,如果L+1≤ind≤Nr-L,则说明对应散射点在插值采样单元内,否则,说明对应散射点不在插值采样单元内。当L+1≤ind≤Nr-L,跳至子步骤(f)。
(f)用m表示2L+1点插值中的插值点的序号,m的取值范围为-L≤m≤L。得出对应散射点的第m个插值点的回波数据,第i个散射点的第m个插值点的回波数据表示为si(ind+m),当-L≤m≤L且1≤ind+m≤Nr时,si(ind+m)为:
否则,si(ind+m)为0。σi表示第i个散射点的散射系数,c表示光速;R(i)表示第i个散射点的斜距。
将si(ind+m)的Nr个非零取值组合成第i个散射点的回波数据si。
上述子步骤(a)至子步骤(f)都由第1个Kernel函数完成。第1个Kernel函数不仅判断每个散射点是否在合成孔径雷达的波束内,计算散射点的斜距和回波数据,还实现了对回波数据的部分累加。每个线程要执行两层循环:计算并在全局内存上累加N个散射点的回波,一个散射点需要进行2L+1点插值。
第2个Kernel函数、第3个Kernel函数采用并行归约求和方法得到每个距离单元的回波数据,也就是对第1个Kernel函数的输出结果用树状结构加总。第2个Kernel函数中每个距离向采样点处的回波数据用多个线程块进行累加,得到多个值。第3个Kernel函数中每个距离向采样点处由一个线程块将回波结果汇总为一个值,得到Nr个距离向采样点处的回波。第1个Kernel函数、第2个Kernel函数和第3个Kernel函数依次执行后,获得一个方位时间的Nr点回波。
本发明用以下多种优化策略对它们进行优化。第1个Kernel函数、第2个Kernel函数和第3个Kernel函数的线程块大小均设置为256,能提高流处理器(SM)中线程块的占用率,经过测试线程块大小为256时程序执行时间最短。由于第1个Kernel函数的一个线程要执行两层循环,计算较复杂,因此首先优化对寄存器的使用,以减少不必要的重复计算和对全局内存的读写,提高第1个Kernel函数的性能。但同时第1个Kernel函数单个线程需要的寄存器变量较多也限制了SM中同时执行的线程块个数,所以尽可能重复利用第1个Kernel函数中的寄存器变量,减少对寄存器不必要的使用。为了提高GPU端程序中指令的并行度,本发明用两条独立的指令从全局内存中读取复数的实部虚部,有效提高了程序的性能。GPU上的复数运算不采用内联函数而是对实部和虚部分别进行计算,程序性能进一步提高。将实现树状并行归约求和过程的while循环展开后,第2个Kernel函数和第3个Kernel函数的执行时间进一步减少。
子步骤5,将第3个Kernel函数得出的Nr个累加求和结果记为第l个方位时间SAR观测场景的回波数据,令l依次取1,2,...,Na,并重复执行子步骤4,得出所有方位时间SAR观测场景的回波数据,将所有方位时间SAR观测场景的回波数据写入GPU的全局内存中。所有方位时间SAR观测场景的回波数据由第1个方位时间SAR观测场景的回波数据至第Na个方位时间SAR观测场景的回波数据组成。可以看出GPU的全局内存需要分配Na×Nr个复数单元来存储所有方位时间的回波数据。
其中,是距离快时间,tm是方位慢时间,Rs是波束中心线扫过目标时的斜距,R(tm;Rs)为瞬时斜距,wr(·)表示发射信号的窗函数,wa(·)表示方位窗函数。表示与距离快时间方位慢时间tm以及波束中心线扫过目标时的斜距Rs对应的回波数据。
子步骤6,在GPU端,对所有方位时间SAR观测场景的回波数据做距离向傅里叶变换(FFT),得到距离频域所有方位时间的回波数据;将距离频域所有方位时间的回波数据乘以距离频域匹配项,得出距离频域匹配后所有方位时间的回波数据;对距离频域匹配后所有方位时间的回波数据作距离向逆傅里叶变换(IFFT),得出距离频域匹配后所有方位时间的时域回波数据,至此就可以实现大场景的回波数据的产生。由于全局内存中同一个方位向采样点处的回波数据连续,所以在对所有方位时间的回波数据作距离向傅里叶变换时,对所有方位时间的回波数据中每个方位时间的回波数据做Nr点距离向傅里叶变换。CUDA内置的FFT库函数可以一次实现多行的FFT批处理。
距离向FFT后通过调用GPU核函数实现回波数据和距离频域匹配项的乘法。距离频域匹配项是一个距离向Nr点向量,由于计算量较小,在CPU上计算后复制到GPU端,再由并行的各线程按距离向将回波数据各个采样单元和距离向匹配项中的元素进行复乘。
在得出距离频域匹配后所有方位时间的时域回波数据之后,为距离频域匹配后所有方位时间的时域回波数据在CPU端的内存上分配空间,将距离频域匹配后所有方位时间的时域回波数据从GPU上的全局内存复制到CPU端,写入文件保存。
本发明的效果可以通过以下仿真实验进一步说明。
在仿真实验中,采用如下两种方法进行回波仿真,方法一为本发明,方法2为仅利用CPU进行回波仿真。仿真中涉及的软件平台、CPU、GPU如下表所示:
软件平台 | Visual studio 2010,CUDA Toolkit v5.5 |
CPU | Intel X5650 |
GPU | Tesla c2070 |
参照图5a,为仿真实验中利用本发明得出的散射点二维回波数据的幅度图。
参照图5b,为仿真实验中利用本发明得出的散射点二维回波数据的相位图。
图5a和图5b中,横轴表示采样单元在方位向的序号,纵轴表示采样单元在距离向的序号,从5a和图5b看出,线性调频信号为正扫频,回波相位表现为二维双曲线的形式,和实际情形吻合。
分别对包含512*512和2000*3000个散射点的场景进行仿真,斜视角为50度,参照图6a,为仿真实验中面目标仿真原始场景图,参照图6b,为仿真实验中利用本发明得出的面目标回波二维幅度图,参照图6c,为真实验中利用本发明得出的面目标成像结果示意图。图6b中,横轴表示表示采样单元在方位向的序号,纵轴表示采样单元在距离向的序号。从图6c看出,本发明的面目标成像结果保证了良好的聚焦效果。仿真时间和加速比如下表所示
场景散射点数 | CPU版本耗时(s) | 本法耗时(s) | 加速比 |
512*512 | 55701 | 138 | 404 |
2000*3000 | 1127424 | 1599 | 705 |
综上所述,本发明在CPU上的实现是一个三层循环,最外层循环数目为方位向采样点数,里面两层循环用于计算一次脉冲所有散射点产生的回波,随后对回波做距离向FFT乘以距离频域匹配项再做IFFT变回时域,这一子步骤是在最外层循环中进行的。本发明将CPU版本的里面两层循环,也就是计算雷达发射一次脉冲接受到的回波这个过程在GPU上并行实现,用大规模的线程将各个散射点产生的回波实现归约求和,得到这个方位时间的回波并写入全局内存。CPU上执行最外层的方位向采样点的循环来调用GPU端的Kernel函数,获得所有方位时间的回波数据。
本发明实施例中,基于LabVIEW的弹载SAR成像方法包括以下步骤:在LabVIEW界面输入弹载合成孔径雷达的工作参数,利用CUDA架构将弹载SAR成像的过程封装为DLL函数;LabVIEW将合成孔径雷达的工作参数输出至库函数节点,库函数节点调用所述DLL函数,得到聚焦后的SAR图像数据。
LabVIEW界面负责载入回波数据,设置成像结果的保存路径和文件名。回波数据和雷达参数输入到库函数节点,调用DLL函数对回波数据进行处理,完成后LabVIEW得到聚焦图像,并将成像结果保存在指定的路径。
本发明的成像处理程序在CUDA架构上开发完成后,封装成DLL中的一个函数。LabVIEW将雷达参数和回波数据输入到库函数节点,以调用DLL的方式启动成像处理函数,实现基于GPU的弹载SAR成像实时处理。处理完成后成像结果从DLL函数中输出到LabVIEW,由LabVIEW将成像结果写入指定的文件中。
参照图7,为利用CUDA架构进行弹载SAR成像的流程图。参照图7,为本发明的基于GPU的弹载SAR前斜视成像方法的流程图。本发明实施例中,成像的主要处理步骤都在GPU上进行,距离向的处理包括距离向脉冲压缩、距离走动校正和多普勒中心补偿、距离弯曲校正、二次距离脉冲压缩,方位向的处理包括补偿方位向非空变的高次相位、高次相位滤波、补偿残余高次相位、乘以Deramp函数。这些处理在GPU端的4个核函数中完成,其中第1核函数和第2核函数主要负责距离向的处理,第3核函数3和第4核函数主要负责方位向的处理。在进行成像处理时,将原始回波数据复制到GPU端的全局内存上,通过调用4个核函数完成以上步骤的处理,得到聚焦图像,再将成像结果复制到CPU的内存上。处理过程中核函数需要的一些计算量较小的数据放在CPU端计算后再复制到GPU端,而对回波数据的处理都在GPU端进行。回波数据在GPU端存储为矩阵。在调用核函数处理回波矩阵时,每个线程块处理矩阵的一行数据,其中每个线程通过while循环处理一行的多个元素,不同的处理步骤循环中的计算任务不同。
本发明实施例中,利用CUDA架构进行弹载SAR成像的过程包括以下子步骤:
子步骤S1,在CPU端设置合成孔径雷达的工作参数,并获取SAR原始回波数据;CPU将合成孔径雷达的工作参数存储于GPU中,将SAR原始回波数据以矩阵的形式存储于GPU中;在GPU端,为SAR原始回波数据矩阵的每一行划分对应的一个线程块。
具体地说,在子步骤S1中,在CPU端,将合成孔径雷达的工作模式设为条带成像模式。在CPU端设置雷达的工作参数。上述合成孔径雷达的工作参数包括合成孔径雷达的常量参数和合成孔径雷达的工作向量。合成孔径雷达的常量参数包括:合成孔径雷达方位向采样点数Na、合成孔径雷达距离向采样点数Nr、合成孔径雷达距离向采样率Fs、合成孔径雷达发射信号的线性调频率γ、合成孔径雷达发射信号的脉冲宽度Tp、合成孔径雷达发射信号的载频频率fc、合成孔径雷达斜视角θ0、弹体飞行速度v、合成孔径雷达波束中心线扫过目标时的斜距R0、多普勒中心频率fdc、光速c等,合成孔径雷达的工作向量包括距离时间向量tr、方位时间向量tm、距离向频率向量fr、方位向频率向量fa、各距离单元对应的斜距组成的向量R。
由于上述雷达的常量参数的总存储量(所占空间)较小,并且在后续处理的GPU并行实现中,大量并行的线程需要读取相同的雷达参数进行计算,所以在CPU端设置雷达的工作参数之后,将雷达的工作参数复制到GPU的常量内存上。相比于复制到GPU的全局内存,复制到GPU的常量内存上时能大幅提高线程读取雷达的工作参数的速度。而对于雷达的工作向量(离散的向量),大量线程需要读取向量不同地址位置的值,如果使用常量内存程序并不能获得有效的加速,而且常量内存的空间有限,因此在本发明中,在CPU端设置雷达的工作参数之后,利用CPU将雷达的工作向量复制到GPU的全局内存上。
利用CPU接收原始回波数据(例如原始回波数据预先存储于与CPU连接的内存中,利用CPU调用来自内存的原始回波数据)。CPU在接收到原始回波数据之后,将原始回波数据复制到GPU。具体地说,CPU接收的原始回波数据表现为一维数组,由于原始回波数据沿方位向存储,也就是将Na条距离线的回波依次存放,每条距离线长度为Nr,所以CPU可以将接收的原始回波数据以原始回波数据矩阵的形式存储于GPU中,该矩阵的行数为Na,列数为Nr;也就是说,CPU每读取Nr个数值,便将这Nr个数值存储在原始回波数据矩阵的对应的行中。
在CPU端设置雷达的工作参数之后,需要为实现距离向处理的核函数分配线程网格。对线程划分具体的方式在距离向和方位向处理中略有不同。由于本发明中较多的FFT(傅里叶变换)操作要求各个数组之间地址连续,所以距离向处理的过程中回波数据沿方位向存储,方位向处理时数据沿距离向存储,实现距离向处理和方位向的核函数也就要以不同的线程块网格执行。
在GPU端,使用两个核函数实现距离向处理,其中,第1核函数实现距离向脉冲压缩、距离走动校正和多普勒中心补偿,第2核函数实现距离弯曲校正和二次距离脉冲压缩,都是距离向的处理,它们的线程组织方式如图8所示。参照图8,为GPU端进行距离向处理时核函数的线程分配方式示意图。图8中,Block(0,1)至Block(0,Na)分别表示Na个线程块,Thread0至Thread255分别表示256个线程。
对于距离向的处理而言,GPU端调用核函数前只要保证回波数据沿方位向存储,那么回波矩阵中一行就是一条距离线的数据。因此,在设置雷达的工作参数之后,设置Na个线程块,在Na个线程块中,第i个线程块用于对原始回波数据矩阵的第i行进行处理,i取1至Na,Na为方位向采样点数。也就是说,Na个线程块中的每个线程块可以处理一个方位向采样点处的数据,Na个线程块就可以处理Na个方位向采样点处的数据,也就是回波矩阵的Na行。以此线程网格执行第1核函数和第2核函数,便于线程对全局内存的合并访问和提高流处理器的占用率,本发明中单个线程块均设为行连续的256个线程。每个线程通过循环处理多个距离单元,使线程负责足够多的计算以保证核函数的效率。
子步骤S2,在GPU端,对SAR原始回波数据矩阵作距离向处理,得出距离方位二维时域数据;所述对SAR原始回波数据矩阵作距离向处理的过程为:针对SAR原始回波数据矩阵依次进行距离向傅里叶变换、距离向脉冲压缩、进行距离走动校正及多普勒中心补偿、方位向傅里叶变换、距离弯曲校正、二次距离向脉冲压缩、距离向逆傅里叶变换和方位向逆傅里叶变换。
具体地说,在子步骤S2中,在GPU端,对全局内存中的SAR原始回波数据矩阵做距离向傅里叶变换,得到距离频域方位时域数据矩阵,距离频域方位时域数据矩阵是大小为Na×Nr的矩阵。
具体地说,CUDA(Compute Unified Device Architecture,统一计算设备架构)开发环境提供的库函数可以对大小为Na×Nr的矩阵的每一行并行做Nr点傅里叶变换(FFT)。因此对全局内存中的回波数据做距离向傅里叶变换时,利用CUDA开发环境提供的库函数对原始回波数据矩阵的每一行并行做Nr点傅里叶变换,得到距离频域方位时域数据。由于SAR原始回波数据沿方位向存储,Na个方位向采样点处的数据对应与矩阵的Na行,借助CUDA库函数可以方便的实现回波矩阵的距离向FFT。
为了保证对原始回波数据矩阵作傅里叶变换后距离频域方位时域数据的中心对应频谱的中心频率,本发明中需要在每一次FFT运算的前后进行傅里叶变换。即GPU使用每个线程块并调用第1核函数对原始回波数据矩阵的对应的一行做Nr点傅里叶变换,实现对原始回波数据矩阵的每一行的傅里叶变换的并行处理。在此过程中,一个线程块产生搬移后的一个复数元素,由于傅里叶变换是原数据内部的搬移,为了避免对全局内存的读写冲突,在对全局内存中的原始回波数据矩阵做距离向傅里叶变换时,第1核函数直接在另一块与原数据同样大小的全局内存上产生搬移结果,而不在原数据上进行操作。对原始回波数据矩阵的每一列做纵向的傅里叶变换比较简单,通过将数据的前后两半存储区域交换实现。此处的傅里叶变换是对矩阵做横向的傅里叶变换,以实现距离向傅里叶变换。
在GPU端,对距离频域方位时域数据矩阵进行距离向匹配滤波处理,实现距离向脉冲压缩,得出距离向脉冲压缩后数据,距离向匹配滤波处理的过程包括构造频域匹配滤波的参考函数、以及频域匹配滤波的参考函数与距离频域方位时域数据的相乘运算。
具体地说,构造频域匹配滤波的参考函数需要使用合成孔径雷达距离向采样率Fs、合成孔径雷达发射信号的线性调频率γ、以及合成孔径雷达发射信号的脉冲宽度Tp。频域匹配滤波的参考函数与方位向相关参数无关,并且频域匹配滤波的参考函数对各个距离线都是相同的。因此,如果利用第1核函数对每个线程都计算参考函数的值,那将会产生大量重复计算。而第1核函数中每个线程计算的Nr点参考函数值计算量很小,因此本发明在构造频域匹配滤波的参考函数后,调用第1核函数由线程读取每点回波和它对应的参考函数值做复数乘法。
频域匹配滤波的参考函数与距离频域方位时域数据矩阵的相乘运算的过程如图9所示。参照图9,为本发明实施例中频域匹配滤波的参考函数与距离频域方位时域数据矩阵的相乘运算的过程的示意图。在本发明中,在进行频域匹配滤波的参考函数与距离频域方位时域数据矩阵的相乘运算时,将距离频域方位时域数据矩阵沿着方位向逐次进行相乘,实际上是每个距离线与频域匹配滤波的参考函数进行对应位置相乘。按照子步骤前述划分线程网格的方式,使用每个线程块的256个线程处理距离频域方位时域数据矩阵的一条距离线(对应于Nr个数值)。具体的任务划分是,一个线程通过循环处理回波数据中一条距离线上的多个单元,循环的每次迭代读取该回波对应距离位置的参考函数值并和该回波做复乘。
在GPU端,在距离频域对距离向脉冲压缩后数据进行距离走动校正及多普勒中心补偿,得出距离走动校正及多普勒中心补偿后数据。
具体地说,在弹载SAR处于斜视的情况下,在进行距离走动校正的同时还要进行多普勒中心补偿,这个过程在Kernel中通过回波数据和对应校正项和的乘法运算实现。距离走动校正和多普勒中心补偿的校正项HLRWC(fr,tm)是一个距离向频率fr和方位时间tm的函数:
其中,HLRWC(fr,tm)表示距离走动校正及多普勒中心补偿的校正项,fr表示距离向频率变量,tm表示方位时间变量,fc表示合成孔径雷达发射信号的载频频率、θ0表示合成孔径雷达斜视角、v表示弹体飞行速度,c表示光速。F(tm)是方位时间tm的函数。由上式可以看出,每一个方位向和距离向对应的回波数据都需要独立计算它对应的校正项HLRWC(fr,tm)并做复乘,并且会重复计算因此,为了避免GPU端各个线程对的重复计算,本发明中预先在CPU端计算得到F(tm)再将它复制到GPU端。此时,一个线程块处理一个方位向采样点的数据,也就是一条距离线。线程块中,一个线程首先读取它所在线程块对应方位向的F(tm),保存到寄存器变量后,再通过循环处理此距离线上的多个单元。由于循环的每次迭代处理的是数据同一距离线不同的距离单元,所以在循环体中,线程要读取GPU全局内存中对应距离位置的fr、常量内存中的参数fc、寄存器变量中的F(tm),计算校正项HLRWC(fr,tm),再从全局内存中读取距离向匹配滤波后数据对应方位向采样点对应距离向采样点的数据,将读取的数据与对应的校正项HLRWC(fr,tm)做复乘,再将复乘的结果覆盖距离向匹配滤波后数据对应方位向采样点对应距离向采样点的数据。
由于距离向脉冲压缩、距离走动校正和多普勒中心补偿都是在距离频域方位时域进行处理,所以为了减少程序中启动核函数的次数并增加核函数中独立指令的数量以提高程序的效率,距离向脉冲压缩、距离走动校正和多普勒中心补偿均调用第1核函数进行处理。
在GPU端,对距离走动校正及多普勒中心补偿后数据进行方位向傅里叶变换(FFT处理),得出距离方位二维频域数据。
具体地说,距离走动校正及多普勒中心补偿后数据是沿方位向存储,本发明中,距离走动校正及多普勒中心补偿后数据以矩阵的形成存储在GPU的全局内存中。在进行方位向傅里叶变换时,对距离走动校正及多普勒中心补偿后数据矩阵的每一列都进行Na点傅里叶变换,Na表示合成孔径雷达方位向采样点数。可以利用cufftplanmany函数可以用来对矩阵的子阵进行FFT运算(傅里叶变换),并且设定输出数据的高级排列方式。此时借助cufftplanmany函数并行对距离走动校正及多普勒中心补偿后数据矩阵的每一列进行Na点傅里叶变换,并使傅里叶变换的结果和距离走动校正及多普勒中心补偿后数据矩阵的排列方式相同,则得出的距离方位二维频域数据仍然沿方位向存储,距离方位二维频域数据以矩阵的形式进行存储,距离方位二维频域数据矩阵是大小为Na×Nr的矩阵。方位向傅里叶变换是对距离走动校正及多普勒中心补偿后数据矩阵行的搬移,本发明中在全局内存中分配一片新的空间,将距离走动校正及多普勒中心补偿后数据矩阵前Na/2行数据复制到距离方位二维频域数据矩阵的后Na/2行,距离走动校正及多普勒中心补偿后数据矩阵后Na/2行数据复制到距离方位二维频域数据矩阵的前Na/2行。
在GPU端,使用第2核函数对距离方位二维频域数据进行距离弯曲校正和二次距离向脉冲压缩,得到二次距离向脉冲压缩数据。
此时,计算距离弯曲校正函数和二次距离脉压参考函数时需要用到以下参数:多普勒中心频率fdc、合成孔径雷达发射信号的载频频率fc、合成孔径雷达斜视角θ0、弹体飞行速度v、合成孔径雷达波束中心线扫过目标时的斜距R0。距离弯曲校正函数是距离向频率变量fr和方位向频率变量fa的函数,二次距离脉压参考函数也是距离向频率变量fr和方位向频率变量fa的函数,得出的距离方位二维频域数据以矩阵的形式进行存储,距离方位二维频域数据矩阵是大小为Na×Nr的矩阵。此时,距离方位二维频域数据矩阵的每个元素都需要根据它的方位向频率和距离向频率来计算对应的距离弯曲校正函数和对应的二次距离脉压参考函数,并做复乘,而一些重复计算也放在CPU端进行。
对距离方位二维频域数据依次进行距离向逆傅里叶变换(IFFT)和方位向逆傅里叶变换,得出距离方位二维时域数据,距离方位二维时域数据以矩阵的形式进行存储。距离方位二维时域数据矩阵是大小为Na×Nr的矩阵。
此时距离向逆傅里叶变换的实施方式与前述对全局内存中的SAR原始回波数据矩阵做距离向傅里叶变换的实施方式类似,同样通过CUDA库函数对距离方位二维时域数据矩阵的每一行作逆傅里叶变换完成。
子步骤S3,为了使最终的聚焦图像不产生重影,在GPU端,将距离方位二维时域数据矩阵沿方位向进行补零扩展,得出大小为Na′×Nr的方位向补零扩展后的距离方位二维时域数据矩阵,Na′为大于Na的自然数。
具体地说,在GPU端,从距离方位二维时域数据矩阵的第1行向上扩展至少一行长度为Nr的全零向量,并从距离方位二维时域数据矩阵的最后1行向下扩展至少一行长度为Nr的全零向量,得出大小为Na′×Nr的方位向补零扩展后的距离方位二维时域数据矩阵,可以看出Na′-Na表示扩展的全零向量的行数。在沿方位向进行补零扩展时,需要在在GPU的全局内存上为扩展后的结果分配新的空间,清0并将原回波数据复制到中心,就可以实现全局内存方位向补零扩展。
子步骤S4,对方位向补零扩展后的距离方位二维时域数据矩阵进行方位向傅里叶变换,得出方位向傅里叶变换后数据矩阵,对方位向傅里叶变换后数据矩阵进行转置,得出转置后的方位向傅里叶变换后数据矩阵。
此时方位向傅里叶变换的目的在于便于做后续的方位向脉冲压缩处理。为了方便后续的方位向脉冲压缩处理,在此处采用cufftplanmany函数对方位向傅里叶变换后数据矩阵作列方向的傅里叶变换,同时将方位向傅里叶变换后的结果按行连续排列,这就实现了方位向傅里叶变换后的转置操作。则转置后的方位向傅里叶变换后数据矩阵是沿距离向存储,也就是同一个距离向采样点处的数据连续存储。
由于转置后的方位向傅里叶变换后数据矩阵是沿距离向存储的大小为Nr×Na′的矩阵,所以做后续方位向处理时,启动核函数的线程网格也随之改变。具体地,在GPU端,使用两个核函数(第3核函数和第4核函数)实现方位向处理,它们的线程组织方式如图10所示。参照图10,为GPU端进行方位向处理时核函数的线程分配方式示意图。图10中,Block(0,1)至Block(0,Nr)分别表示Nr个线程块,Thread0至Thread255分别表示256个线程。
对于方位向的处理而言,GPU端调用核函数前只要保证转置后的方位向傅里叶变换后数据矩阵沿距离向存储,那么转置后的方位向傅里叶变换后数据矩阵中一行就是一个距离向方位向采样点处的数据。因此,在得出转置后的方位向傅里叶变换后数据矩阵之后,设置Nr个线程块,在Nr个线程块中,第j个线程块用于对转置后的方位向傅里叶变换后数据矩阵的第j行进行处理,j取1至Nr,Nr为合成孔径雷达距离向采样点数。也就是说,Nr个线程块中的每个线程块可以处理一个距离向采样点处的数据,Nr个线程块就可以处理Nr个距离向采样点处的数据。以此线程网格执行第3核函数和第4核函数,便于线程对全局内存的合并访问和提高流处理器的占用率,本发明中单个线程块均设为行连续的256个线程。每个线程通过循环处理多个方位向采样点数据,使线程负责足够多的计算以保证核函数的效率。
在GPU端,调用第3核函数对转置后的方位向傅里叶变换后数据矩阵进行高次相位补偿及高次相位滤波,得出相位补偿及相位滤波后的方位频域数据。
具体地,对转置后的方位向傅里叶变换后数据矩阵进行高次相位补偿的同时,对转置后的方位向傅里叶变换后数据矩阵进行高次相位滤波。高次相位补偿实现方位频域补偿方位向非空变的高次相位,在进行高次相位补偿及高次相位滤波时,需要用到相位补偿函数和相位滤波函数,相位补偿函数分别与方位向频率和距离向频率相关,相位滤波函数分别与方位向频率和距离向频率相关。转置后的方位向傅里叶变换后数据矩阵的每一个元素需要根据它的方位向频率和距离向频率计算它对应的相位补偿函数和相位滤波函数,并根据得出的相位补偿函数和相位滤波函数进行复乘。
本发明实施例中,时域距离走动校正后落入同一距离单元的点具有不同的多普勒调频率和高次相位系数,造成方位无法统一聚焦成像。方位频域(信号表达式)的四次五次相位影响方位向的精确聚焦,由于其空变性较小,可以近似为非空变的,直接进行补偿。为了校正时域调频率随方位位置的空变,还需要在频域引入高次相位滤波函数,对二次、三次相位进行校正。
在GPU端,相位补偿及相位滤波后的方位频域数据进行方位向逆傅里叶变换,得出相位补偿后的方位时域数据。调用第4核函数在方位时域对相位补偿后的方位时域数据进行残余高次相位补偿,对残余高次相位补偿后的方位时域数据进行方位deramp处理(通过乘以方位Deramp函数实现),对方位deramp处理后的方位时域数据进行方位向傅里叶变换,得到聚焦后的SAR图像数据,将聚焦后的SAR图像数据从GPU的全局内存复制到CPU中。
本发明实施例中,调用第4核函数,实现在方位时域补偿残余高次相位,并对信号乘以方位Deramp函数。由于子步骤S1和子步骤S2引入了频域的高次相位滤波函数,相应地在时域会引入三次、四次的高次相位,这里需要在方位时域补偿残余高次相位。
本发明的效果可以通过以下仿真实验进一步说明。
在仿真实验中,设置五个点目标,其中四个点目标位于合成孔径雷达的边缘。采用如下两种方法得出包含这五个点目标的聚焦后的SAR图像,方法一为本发明,方法2为仅利用CPU进行成像处理。仿真中涉及的软件平台、CPU、GPU如下表所示:
软件平台 | Visual studio 2010,CUDA Toolkit v5.5 |
CPU | Intel X5650 |
GPU | Tesla c2070 |
参照图11a,为仿真实验中利用本发明得出的五个点目标的成像结果示意图。参照图11b,为仿真实验中利用本发明得出位于合成孔径雷达的边缘的第一个点目标的等高线图。参照图11c,为仿真实验中利用本发明得出位于合成孔径雷达的边缘的第二个点目标的等高线图。参照图11d,为仿真实验中利用本发明得出位于合成孔径雷达的边缘的第三个点目标的等高线图。参照图11e,为仿真实验中利用本发明得出位于合成孔径雷达的边缘的第四个点目标的等高线图。图11a至图11e中,横轴表示方位向采样点序号,纵轴表示距离向采样点序号。从图11a至图11e可以看出,本发明实现的成像处理聚焦效果良好。
参照图12a,为仿真实验中包含五个点目标的原始场景图,参照图12b,为仿真实验中利用本发明得出的五个点目标回波的成像结果示意图。从图12a和图12b的对比可以看出,本发明能够实现良好的图像聚焦。
整个处理过程在CPU和GPU上的时间和加速比如下表所示。
回波数据大小 | 方法一耗时(s) | 本发明耗时(s) | 加速比 |
2048*2048 | 16.3 | 1..3 | 9.4 |
3072*3072 | 29.5 | 2.5 | 11.8 |
4096*4096 | 33.6 | 3.8 | 8.8 |
由上表可以看出综合的加速比在10倍左右。对于计算量较密集的步骤,进行高次相位的补偿时,加速比在30~40倍左右。由于较多的FFT、IFFT变换使整个程序启动核函数的次数较多,而大部分核函数中计算量不够密集,所以程序实现10倍的加速很大程度提高了成像处理的效率。本发明在保证良好聚焦效果的同时,成像时间在2.5s左右,基本上满足了实时成像的要求。
综上所述,LabVIEW是当今最完善、影响力最大的一种图形化的编程语言,在工业测控、信号处理等特定领域有着非常广泛的应用。它提供了丰富的图形控件和分析函数,具有强大的人机交互界面设计和数据分析处理功能。通过调用DLL的方式,可以轻松实现LabVIEW对基于GPU的回波仿真和成像处理程序的调用。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (8)
1.基于LabVIEW的弹载SAR回波仿真方法,其特征在于,包括以下步骤:在LabVIEW界面输入合成孔径雷达的工作参数,利用CUDA架构将弹载SAR回波仿真的过程封装为DLL函数;LabVIEW将合成孔径雷达的工作参数输出至库函数节点,库函数节点调用所述DLL函数,得到所有方位时间SAR观测场景的回波数据;
利用CUDA架构进行弹载SAR回波仿真的过程包括以下子步骤:
子步骤1,在CPU端,设置合成孔径雷达的工作参数;所述合成孔径雷达的工作参数包括合成孔径雷达方位向采样点数Na;所述合成孔径雷达的工作参数还包括合成孔径雷达距离向采样点数Nr;
子步骤2,在CPU端,设置SAR观测场景,以SAR观测场景的中心为参考点建立坐标系,设置SAR每个阵元在每个方位时间的位置,设置SAR观测场景中每个散射点的坐标和散射系数;子步骤3,将CPU在子步骤1和子步骤2中设置的所有数据复制到GPU的全局内存中;
子步骤4,在GPU端,使用第1个Kernel函数、第2个Kernel函数和第3个Kernel函数得出第l个方位时间SAR观测场景的回波数据,l=1,2,...,Na;在子步骤4中,得出第l个方位时间SAR观测场景的回波数据的过程为:
在GPU端,为第1个Kernel函数分配N1个线程块, 表示向上取整,Point_num表示第l个方位时间SAR观测场景中所有散射点的个数,N为设定的自然数,为第1个Kernel函数分配的每个线程块包含256个线程;
利用第1个Kernel函数的每个线程得出第l个方位时间N个散射点的回波数据,在计算第l个方位时间每个散射点的回波数据时,计算第l个方位时间对应散射点所在距离单元的回波数据并进行sin c插值,将对应散射点所在距离单元的回波数据进行第k次sin c插值后的数据记为对应散射点的第k次sinc插值数据,k取1至Nr;将对应散射点的第1次sinc插值数据至对应散射点的第Nr次sinc插值数据组合为对应散射点的回波数据;
当第1个Kernel函数的每个线程得出第l个方位时间N个散射点的回波数据之后,对第l个方位时间N个散射点的回波数据进行累加,得出第l个方位时间N个散射点的回波数据的第1个距离单元的累加结果至第l个方位时间N个散射点的回波数据的第Nr个距离单元的累加结果,将第l个方位时间N个散射点的回波数据的第1个距离单元的累加结果至第l个方位时间N个散射点的回波数据的第Nr个距离单元的累加结果组成第l个方位时间N个散射点的回波数据的累加结果;在得出第l个方位时间N个散射点的回波数据的累加结果的过程中,第1个Kernel函数的每个线程块得出256×Nr个复数元素;
在GPU端,为第2个Kernel函数分配N2个线程块为第2个Kernel函数分配的每个线程块包括256个线程;
针对第1个Kernel函数的每个线程块得出的256×Nr个复数元素,在第2个Kernel函数中调用Nr个线程块;针对第1个Kernel函数的每个线程块得出的第l个方位时间N个散射点第k个距离单元的256个复数元素,在第2个Kernel函数对应的Nr个线程块中使用第k个线程块对第1个Kernel函数的每个线程块得出的第l个方位时间N个散射点第k个距离单元的256个复数元素进行并行归约求和,得出第l个方位时间第2个Kernel函数对应的Nr个线程块中第k个线程块的累加求和结果;
在GPU端,为第3个Kernel函数分配Nr个线程块,为第3个Kernel函数分配的每个线程块包括256个线程;
在调用第2个Kernel函数实现回波数据的部分累加后,采用第3个Kernel函数将第2个Kernel函数的输出结果再次用共享内存进行累加;第3个Kernel函数的第k个线程块从GPU的全局内存中读取第2个Kernel函数得出的第l个方位时间的第k个距离单元的累加结果,然后对第2个Kernel函数得出的第l个方位时间的第k个距离单元的累加求和结果进行并行归约求和,得出对应的累加求和结果;第3个Kernel函数得出的第l个方位时间的Nr个累加求和结果为第l个方位时间SAR观测场景的回波数据;
子步骤5,令l依次取1,2,...,Na,并重复执行子步骤4,得出所有方位时间SAR观测场景的回波数据。
2.如权利要求1所述的基于LabVIEW的弹载SAR回波仿真方法,其特征在于,在子步骤5之后,在GPU端,对所有方位时间SAR观测场景的回波数据做距离向傅里叶变换,得到距离频域所有方位时间的回波数据;将距离频域所有方位时间的回波数据乘以距离频域匹配项,得出距离频域匹配后所有方位时间的回波数据;对距离频域匹配后所有方位时间的回波数据作距离向逆傅里叶变换,得出距离频域匹配后所有方位时间的时域回波数据。
3.基于LabVIEW的弹载SAR成像方法,其特征在于,包括以下步骤:在LabVIEW界面输入弹载合成孔径雷达的工作参数,利用CUDA架构将弹载SAR成像的过程封装为DLL函数;LabVIEW将合成孔径雷达的工作参数输出至库函数节点,库函数节点调用所述DLL函数,得到聚焦后的SAR图像数据;
利用CUDA架构进行弹载SAR成像的过程包括以下子步骤:
子步骤S1,在CPU端设置合成孔径雷达的工作参数,并获取SAR原始回波数据,所述合成孔径雷达的工作参数包括合成孔径雷达方位向采样点数Na、合成孔径雷达距离向采样点数Nr;CPU将合成孔径雷达的工作参数存储于GPU中,将SAR原始回波数据以矩阵的形式存储于GPU中;
子步骤S2,在GPU端,对SAR原始回波数据矩阵作距离向处理,得出距离方位二维时域数据;所述对SAR原始回波数据矩阵作距离向处理的过程为:针对SAR原始回波数据矩阵依次进行距离向傅里叶变换、距离向脉冲压缩、进行距离走动校正及多普勒中心补偿、方位向傅里叶变换、距离弯曲校正、二次距离向脉冲压缩、距离向逆傅里叶变换和方位向逆傅里叶变换;
子步骤S3,在GPU端,将距离方位二维时域数据矩阵沿方位向进行补零扩展,得出大小为Na′×Nr的方位向补零扩展后的距离方位二维时域数据矩阵,Na′为大于Na的自然数;
子步骤S4,在GPU端,对方位向补零扩展后的距离方位二维时域数据矩阵依次进行方位向傅里叶变换、转置,得出转置后的方位向傅里叶变换后数据矩阵;在方位频域,针对转置后的方位向傅里叶变换后数据矩阵每个元素,计算对应的高次相位补偿函数和高次相位滤波函数,将转置后的方位向傅里叶变换后数据矩阵每个元素依次乘以对应相位补偿函数和相位滤波函数,得出相位补偿及相位滤波后的方位频域数据;所述相位补偿函数用于对转置后的方位向傅里叶变换后数据矩阵对应的元素进行四次相位补偿和五次相位补偿,所述相位滤波函数用于对转置后的方位向傅里叶变换后数据矩阵对应的元素进行二次相位校正和三次相位校正;在得出相位补偿及相位滤波后的方位频域数据之后,在GPU端,对相位补偿及相位滤波后的方位频域数据进行方位向逆傅里叶变换,得出相位补偿及相位滤波后的方位时域数据;在方位时域针对相位补偿及相位滤波后的方位时域数据,补偿由相位滤波函数引入的高次相位,得出残余高次相位补偿后的方位时域数据;对残余高次相位补偿后的方位时域数据进行方位deramp处理,对方位deramp处理后的方位时域数据进行方位向傅里叶变换,得到聚焦后的SAR图像数据。
4.如权利要求3所述的基于LabVIEW的弹载SAR成像方法,其特征在于,在子步骤S1中,在CPU端设置雷达的工作参数;所述合成孔径雷达的工作参数包括合成孔径雷达的常量参数和合成孔径雷达的工作向量,所述合成孔径雷达的常量参数包括:合成孔径雷达方位向采样点数Na、合成孔径雷达距离向采样点数Nr、合成孔径雷达距离向采样率Fs、合成孔径雷达发射信号的线性调频率γ、合成孔径雷达发射信号的脉冲宽度Tp、合成孔径雷达发射信号的载频频率fc、合成孔径雷达斜视角θ0、弹体飞行速度v、合成孔径雷达波束中心线扫过目标时的斜距R0、多普勒中心频率fdc、光速c,所述合成孔径雷达的工作向量包括距离时间向量tr、方位时间向量tm、距离向频率向量fr、方位向频率向量fa。
5.如权利要求4所述的基于LabVIEW的弹载SAR成像方法,其特征在于,在子步骤S1之后,设置Na个线程块,在Na个线程块中,第i个线程块用于对原始回波数据矩阵的第i行进行距离向处理,i取1至Na,Na为方位向采样点数。
6.如权利要求4所述的基于LabVIEW的弹载SAR成像方法,其特征在于,在子步骤S2中,在GPU端,对全局内存中的SAR原始回波数据矩阵做距离向傅里叶变换,得到距离频域方位时域数据矩阵,距离频域方位时域数据矩阵是大小为Na×Nr的矩阵;
在GPU端,对距离频域方位时域数据矩阵进行距离向匹配滤波处理,实现距离向脉冲压缩,得出距离向脉冲压缩后数据,距离向匹配滤波处理的过程包括构造频域匹配滤波的参考函数、以及频域匹配滤波的参考函数与距离频域方位时域数据的相乘运算;
在GPU端,在距离频域对距离向脉冲压缩后数据进行距离走动校正及多普勒中心补偿,得出距离走动校正及多普勒中心补偿后数据;
在GPU端,对距离走动校正及多普勒中心补偿后数据进行方位向傅里叶变换,得出距离方位二维频域数据;
在GPU端,对距离方位二维频域数据进行距离弯曲校正和二次距离向脉冲压缩,得到二次距离向脉冲压缩数据;
对距离方位二维频域数据依次进行距离向逆傅里叶变换和方位向逆傅里叶变换,得出距离方位二维时域数据,距离方位二维时域数据以矩阵的形式进行存储,距离方位二维时域数据矩阵是大小为Na×Nr的矩阵。
7.如权利要求4所述的基于LabVIEW的弹载SAR成像方法,其特征在于,在子步骤S3中,在GPU端,从距离方位二维时域数据矩阵的第1行向上扩展至少一行长度为Nr的全零向量,并从距离方位二维时域数据矩阵的最后1行向下扩展至少一行长度为Nr的全零向量,得出大小为Na′×Nr的方位向补零扩展后的距离方位二维时域数据矩阵。
8.如权利要求4所述的基于LabVIEW的弹载SAR成像方法,其特征在于,在子步骤S4中,对方位向补零扩展后的距离方位二维时域数据矩阵进行方位向傅里叶变换,得出方位向傅里叶变换后数据矩阵,对方位向傅里叶变换后数据矩阵进行转置,得出转置后的方位向傅里叶变换后数据矩阵;
设置Nr个线程块,在Nr个线程块中,第j个线程块用于对转置后的方位向傅里叶变换后数据矩阵的第j行进行方位向处理,j取1至Nr;
在GPU端,在方位频域,针对转置后的方位向傅里叶变换后数据矩阵每个元素,计算对应的高次相位补偿函数和高次相位滤波函数,将转置后的方位向傅里叶变换后数据矩阵每个元素依次乘以对应相位补偿函数和相位滤波函数,得出相位补偿及相位滤波后的方位频域数据;所述相位补偿函数用于对转置后的方位向傅里叶变换后数据矩阵对应的元素进行四次相位补偿和五次相位补偿,所述相位滤波函数用于对转置后的方位向傅里叶变换后数据矩阵对应的元素进行二次相位校正和三次相位校正;
在GPU端,对相位补偿及相位滤波后的方位频域数据进行方位向逆傅里叶变换,得出相位补偿及相位滤波后的方位时域数据;在方位时域针对相位补偿及相位滤波后的方位时域数据,补偿由相位滤波函数引入的高次相位,得出残余高次相位补偿后的方位时域数据;对残余高次相位补偿后的方位时域数据进行方位deramp处理,对方位deramp处理后的方位时域数据进行方位向傅里叶变换,得到聚焦后的SAR图像数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410720663.0A CN104459666B (zh) | 2014-12-01 | 2014-12-01 | 基于LabVIEW的弹载SAR回波仿真及成像方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410720663.0A CN104459666B (zh) | 2014-12-01 | 2014-12-01 | 基于LabVIEW的弹载SAR回波仿真及成像方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104459666A CN104459666A (zh) | 2015-03-25 |
CN104459666B true CN104459666B (zh) | 2017-03-08 |
Family
ID=52906019
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410720663.0A Expired - Fee Related CN104459666B (zh) | 2014-12-01 | 2014-12-01 | 基于LabVIEW的弹载SAR回波仿真及成像方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104459666B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105182331A (zh) * | 2015-08-25 | 2015-12-23 | 电子科技大学 | 基于局域网和图形处理器的机载雷达实时信号处理方法 |
CN106802593B (zh) * | 2016-12-20 | 2019-03-26 | 上海交通大学 | 雷达回波模拟器高精度延时控制方法及雷达回波模拟器 |
CN107229051B (zh) * | 2017-05-26 | 2020-05-01 | 西安电子科技大学 | 基于gpu的视频sar回波仿真并行实现方法 |
CN108802726B (zh) * | 2017-12-29 | 2020-04-14 | 西安电子科技大学 | 基于图形处理器gpu的合成孔径雷达成像方法 |
CN109491796B (zh) * | 2018-11-23 | 2021-07-27 | 西安电子科技大学 | 基于累积和并行化的机载雷达运动速度估计方法 |
CN110471041B (zh) * | 2019-07-19 | 2021-05-07 | 西安电子科技大学 | 一种基于Vivado HLS的二维DOA估计方法 |
US11933913B2 (en) * | 2019-10-31 | 2024-03-19 | Keysight Technologies, Inc. | Implementing non-point targets using direct synthesis of radar signals |
CN111025246B (zh) * | 2019-11-28 | 2021-09-07 | 北京遥测技术研究所 | 一种静止轨道sar对海面及船只复合场景成像仿真系统及方法 |
CN110879391B (zh) * | 2019-12-02 | 2021-08-13 | 北京航空航天大学 | 基于电磁仿真和弹载回波仿真的雷达图像数据集制作方法 |
CN111551905A (zh) * | 2020-04-20 | 2020-08-18 | 北京无线电计量测试研究所 | 一种散射点延时参数校准方法和系统 |
CN112230212B (zh) * | 2020-09-28 | 2023-06-16 | 北京环境特性研究所 | 雷达测距信号处理方法和装置 |
CN117192503B (zh) * | 2023-11-07 | 2024-03-26 | 北京理工雷科电子信息技术有限公司 | 一种弹载sar回波模拟方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101937082A (zh) * | 2009-07-02 | 2011-01-05 | 北京理工大学 | 基于gpu众核平台的合成孔径雷达并行成像方法 |
CN103176170A (zh) * | 2013-02-06 | 2013-06-26 | 中国科学院电子学研究所 | 一种基于gpu并行计算的sar回波模拟方法 |
CN103885040A (zh) * | 2014-03-29 | 2014-06-25 | 江西理工大学 | 一种基于cpu-gpu异构计算的圆迹合成孔径雷达回波生成方法 |
CN103901428A (zh) * | 2014-03-28 | 2014-07-02 | 西安电子科技大学 | 弹载sar子孔径前斜视高阶非线性调频变标成像方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5860648B2 (ja) * | 2011-09-26 | 2016-02-16 | 東芝電波プロダクツ株式会社 | レーダ画像生成装置及びレーダ画像生成方法 |
-
2014
- 2014-12-01 CN CN201410720663.0A patent/CN104459666B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101937082A (zh) * | 2009-07-02 | 2011-01-05 | 北京理工大学 | 基于gpu众核平台的合成孔径雷达并行成像方法 |
CN103176170A (zh) * | 2013-02-06 | 2013-06-26 | 中国科学院电子学研究所 | 一种基于gpu并行计算的sar回波模拟方法 |
CN103901428A (zh) * | 2014-03-28 | 2014-07-02 | 西安电子科技大学 | 弹载sar子孔径前斜视高阶非线性调频变标成像方法 |
CN103885040A (zh) * | 2014-03-29 | 2014-06-25 | 江西理工大学 | 一种基于cpu-gpu异构计算的圆迹合成孔径雷达回波生成方法 |
Non-Patent Citations (4)
Title |
---|
基于CPU的SAR回波信号模拟的研究与实现;李博;《中国优秀硕士学位论文全文数据库 信息科技辑》;20141115(第11期);正文第46页第4段、第51页-第52页第5.2.2节,图4.4、图5.12 * |
基于LabVIEW的机载SAR回波模拟器设计;姜祝等;《电子测量技术》;20090731;第32卷(第7期);第98-101页 * |
多通道波束指向高分辨率SAR和动目标成像技术;孙光才;《中国博士学位论文全文数据库 信息科技辑》;20131115(第11期);全文 * |
实时阵列声成像定位技术研究;余立志;《中国优秀硕士学位论文全文数据库 信息科技辑》;20140415(第04期);正文第17、28页,图4-5 * |
Also Published As
Publication number | Publication date |
---|---|
CN104459666A (zh) | 2015-03-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104459666B (zh) | 基于LabVIEW的弹载SAR回波仿真及成像方法 | |
CN104459693A (zh) | 基于gpu的弹载sar前斜视成像方法 | |
DE202018101330U1 (de) | Transportieren von Matrizen neuronaler Netze in Hardware | |
DE102017121887A1 (de) | Ausführen von Kerndurchschreiten in Hardware | |
DE102017120588A1 (de) | Befehlssatzarchitektur für neuronale Netze | |
CN108957450A (zh) | 一种毫米波雷达gpu实时三维成像方法 | |
CN108804220A (zh) | 一种基于并行计算的卫星任务规划算法研究的方法 | |
CN106682820A (zh) | 一种基于脉冲交错的数字阵列雷达任务优化调度方法 | |
CN108647414A (zh) | 基于仿真实验的作战计划适应性分析方法及存储介质 | |
CN110110844B (zh) | 基于OpenCL的卷积神经网络并行处理方法 | |
CN111521976B (zh) | 一种空时自适应干扰处理方法、装置及存储介质 | |
CN105911532B (zh) | 基于深度协同的合成孔径雷达回波并行模拟方法 | |
CN109932699A (zh) | 一种雷达辐射源识别方法、装置、计算机设备和存储介质 | |
CN107451955A (zh) | 一种k‑t算法重建天文图像中斑点图的并行化实现方法 | |
CN109683147A (zh) | 杂乱脉冲流信号的实时生成方法、装置及电子设备 | |
DE102019112353A1 (de) | Lade/speicher-befehl | |
CN114841055B (zh) | 一种基于生成对抗网络的无人机集群任务预分配方法 | |
CN110390382A (zh) | 一种带新型特征图缓存模块的卷积神经网络硬件加速器 | |
CN109964611A (zh) | 一种大田作物精准施肥方法及系统 | |
CN105137402B (zh) | 一种基于gpu的机载前视扫描雷达并行处理方法 | |
CN113985408B (zh) | 一种结合门单元和迁移学习的逆合成孔径雷达成像方法 | |
CN108107428B (zh) | 用于mimo阵列的相移偏移成像方法及装置 | |
CN109884625A (zh) | 基于卷积神经网络的雷达关联成像方法 | |
CN107589421A (zh) | 一种阵列前视sar成像方法 | |
CN105974416B (zh) | 积累互相关包络对齐的8核dsp片上并行实现方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170308 Termination date: 20171201 |
|
CF01 | Termination of patent right due to non-payment of annual fee |