一种雷达并行处理系统及方法、存储介质、终端
技术领域
本发明涉及信号并行处理
技术领域
,具体涉及一种雷达并行处理系统及方法、存储介质、终端。背景技术
雷达信号处理系统具有高浮点计算密度,高并行,算法集中等特点,现有主流的并行处理方案一般采用DSP+FPGA等嵌入式平台,一般而言FPGA平台完成脉冲压缩、距离走动校正等信号处理流程,DSP完成目标检测、数量估计、目标航迹跟踪等数据处理流程。还有一部分主流处理方案采用GPU做并行处理,该方案一般使用GPU的CUDA库,在GPU中完成并行信号处理以及数据处理等工作。
现有的DSP+FPGA嵌入式并行处理平台,其主流处理器性能一般主频范围从100MHZ-1GHZ之间,相较于台式机或服务器动辄1GHZ以上的主频而言其性能显得有所差距。其次现有的DSP+FPGA依赖于其对应的硬件构架,没有对应的统一软件平台,因此有系统移植困难、编程周期长等缺点。对于采用GPU做并行处理,虽然其运行效率高,但也存在着依赖CUDA平台,同时价格昂贵等缺点。
发明内容
本发明的目的在于提供一种雷达并行处理系统及方法,解决现有并行技术CPU利用率低、运行时间长的问题。
本发明通过下述技术方案实现:
一种雷达并行处理系统,包括:
信号发生模块,用于产生N列天线的回波数据,所述信号发生模块采用双级并行模式;
信号处理模块,采用多通道并行处理模式,以回波信号作为输入对每一列天线做并行信号处理;
数据处理模块,用于接收所有信号处理模块处理后的信号并对信号进行处理,所述数据处理模块采用串行处理模式;
终端显示模块,用于显示数据处理模块所处理的中间结果以及最终跟踪结果,所述终端显示模块的信号显示与信号发生模块的信号发射同步;
所述雷达并行处理系统采用生产者-消费者模式进行同步处理,其中,信号发生模块为生产者,信号处理模块、数据处理模块和终端显示模块为消费者,在生产者和消费者之间设置共享内存;所述生产者-消费者模式存在生产和消费同步机制以及消费者内部同步机制。
本发明的系统的关键在于:
实现了多层级的并行处理,第一级是算法部分(信号产生+信号处理+数据处理)和图形界面显示部分通过在存储上使用PingPongBuffer(共享内存)模型以及在时序上使用生产者-消费者模型实现了并行处理。第二级是在算法部分中的信号产生以及信号处理这两个模块中又单独使用了两级并行处理。
现有的串行cpu利用率维持在3%左右的平均水平,本发明的并行CPU利用率峰值能达到63%,谷值能达到30%左右。
进一步地,生产和消费同步机制如下:
生产者交替向共享内存发送回波信号消费者等待共享内存处于填满的状态,释放掉对应的信号量并开始运行,同时生产者向共享内存发送回波信号,当消费者运行结束释放掉一个生产者信号量。
进一步地,消费者内部同步机制如下:
当消费者1得到生产者的数据后开始运行,当运行结束得到数据后释放掉其互斥信号量,数据处理模块得到该信号量开始运行,数据处理模块运行结束将数据传送给终端显示模块,同时向其释放掉互斥信号量,终端显示模块显示运行结束后,将结果显示到界面同时释放掉生产者的信号量。
进一步地,信号发生模块的双级并行模式如下:
假设系统有n个目标,设置k个线程,对第一个模块每个目标做并行处理,线程对目标采用先到先得模式,同时第一个模块和第二个模块做信号同步:当第一模块所有目标产生了对应回波信号,释放掉其信号量,第二个模块得到其信号量开始工作;
第二个模块对每个通道做并行处理:设置m个线程供n个通道并行处理,每个线程对通道采用抢占式先到先得模式,每个线程先对每个目标产生的回波相加,然后乘以该线程抢到的对应通道的相位因子得到该通道数据;所有通道产生相应的回波数据后释放掉其对应的信号量供信号处理模块使用。
进一步地,信号处理模块的信号处理流程分成两级并行处理:
首先对于n各通道设置m个线程做流程1的并行处理得到相关数据,乘以该线程抢占到的通道对应的相位因子,当所有通道完成相同操作以后释放其信号量,流程2进行;
流程2用于完成采样点在所有通道累加的并行处理。
进一步地,信号处理模块的处理流程依次包括脉冲压缩、距离走动校正、多普勒走动校正、距离-多普勒域;所述数据处理模块的处理流程依次包括DBF后求幅值、CFAR检测、DBSCAN数量估计和扩展卡尔曼滤波。
进一步地,终端显示模块采用MFC平台,所述雷达并行处理系统的编译环境采用VS2010X64架构,操作系统采用WinowsSrver 2012 64位操作。
基于雷达并行处理系统的并行处理方法,包括以下步骤:
S1、对参数进行设置,所述参数包括系统参数、仿真参数、以及相应目标编队示意图;
S2、完成相关参数设置后,并行产生N列天线的回波数据;
S3、以回波信号作为输入对每一列天线做并行信号处理;
S4、所有通道信号处理完成后汇总至数据处理模块进行数据处理;最后将中间结果以及最终跟踪结果发送给终端显示模块;
所述并行处理方法采用生产者-消费者模式进行同步处理,其中,信号发生模块为生产者,信号处理模块、数据处理模块和终端显示模块为消费者,在生产者和消费者之间设置共享内存;所述生产者-消费者模式存在生产和消费同步机制以及消费者内部同步机制。
一种终端,包括存储器和处理器,所述存储器上存储有在所述处理器上运行的计算机指令,所述处理器运行所述计算机指令是执行上述并行处理方法中的步骤。
一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行上述并行处理方法中的步骤。
本发明与现有技术相比,具有如下的优点和有益效果:
1、本发明的系统所使用的多线程并行处理技术能够使得服务器硬件平台发挥多核处理的优势,它依赖于高度集成的软件开发环境,并且对硬件处理器资源进行了优化,从而实现系统平台高并行性。
2、本发明的系统充分考虑多核处理器的硬件架构,通过资源配置对任务进行划分,在操作系统的支持下对多线程进行调度,降低了计算的复杂度,为平台的高效运行提供了强有力的技术支持。
3、本发明基于VS平台的X64架构具有更加完整的软件生态,不依赖于单纯的硬件平台的软件通用特性,其支持包括对Win32API下的POSIX标准线程库、MFC、Teechart、FFT3W等第三方库在内的支持,能够更好的服务于本系统所需要的并行处理、界面显示、图形显示等相关需求,解决了现有技术依赖硬件环境的问题。
附图说明
此处所说明的附图用来提供对本发明实施例的进一步理解,构成本申请的一部分,并不构成对本发明实施例的限定。在附图中:
图1为本发明系统的总体流程图;
图2为本发明系统并行处理模型图;
图3为本发明信号产生模块并行处理模型图;
图4为本发明信号处理并行模型图;
图5为本发明数据处理模型;
图6为参数设置界面图;
图7a为信号处理结果显示1的脉冲压缩示意图;
图7b为信号处理结果显示1的运动补偿示意图;
图7c为信号处理结果显示1的脉压后RD域示意图;
图7d为信号处理结果显示1的补偿RD域示意图;
图8a为信号处理结果显示2的DBF结果图;
图8b为信号处理结果显示2的CFAR检测结果图;
图8c为信号处理结果显示2的数量估计结果图;
图8d为信号处理结果显示2的目标角度示意图;
图9a为目标跟踪结果示意图;
图9b为无人机当帧模型示意图;
图10为串行CPU利用率示意图;
图11为并行CPU利用率示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明作进一步的详细说明,本发明的示意性实施方式及其说明仅用于解释本发明,并不作为对本发明的限定。
实施例1:
如图1所示,一种雷达并行处理系统,包括:
信号发生模块,用于产生N列天线的回波数据,所述信号发生模块采用双级并行模式;
对于信号发生模块,如果采用串行设计,当通道数目以及仿真目标数目增加的时候其运行时间会明显增加,从而降低了整体运行效率,因此本系统对信号发生模块采取双级并行模式进行处理。其具体流程如图3所示:
假设系统有n个目标,可以设置k个线程,对第一个模块每个目标做并行处理,线程对目标采用先到先得模式,同时第一个模块和第二个模块做信号同步,当第一模块所有目标产生了对应回波信号,释放掉其信号量,第二个模块得到其信号量开始工作。
第二个模块对每个通道做并行处理。可以设置m个线程供n个通道并行处理,每个线程对通道采用抢占式先到先得模式,每个线程先对每个目标产生的回波相加,然后乘以该线程抢到的对应通道的相位因子得到该通道数据。所有通道产生相应的回波数据后释放掉其对应的信号量供信号处理流程使用。
信号处理模块,采用多通道并行处理模式,以回波信号作为输入对每一列天线做并行信号处理;
由于信号处理模块对于每个通道的处理属于相同的过程,并且计算高度集中因此可以采用多通道并行处理提高运行效率。其具体流程如图4所示:
信号处理流程同样分成两级并行处理,首先对于n各通道设置m个线程做流程1的并行处理,包括脉冲压缩、距离走动校正、多普勒走动校正、距离-多普勒域、得到相关数据,乘以该线程抢占到的通道对应的相位因子(DBF前半部分),当所有通道完成相同操作以后释放其信号量流程2得以进行。
流程2主要是完成采样点在所有通道累加的并行处理,由于考虑到本系统每一帧通道采样点数目过多,串行累加的话会影响运算效率,因此流程2对于每一个采样点在每个通道做累加。设置F个线程处理总共K个采样点,同时线程对采样点也是先到先得模式。
最后考虑同步,当流程1所有通道完成对应信号处理,其释放掉对应的信号量,流程2得到信号量后开始进行处理,当流程2完成DBF操作释放掉对应信号量转接到数据处理流程。
数据处理模块,用于接收所有信号处理模块处理后的信号并对信号进行处理,所述数据处理模块采用串行处理模式;
考虑到数据处理的复杂性,以及所有通道数据汇总到一起,因此数据处理采用串行处理模式。图5显示了其具体流程:
数据处理部分分配一个线程做串行处理。首先数据处理部分会等待信号处理的信号量,被释放,当其获得该信号量则开始进行数据处理。
首先对DBF后的结果求幅值,由于考虑到仿真目标运动速度相近,故目标在多普勒频谱上比较集中,因此首先在多普勒维度做CFAR,当得到目标对应多普勒频率后在对应距离维做CFAR检测,最终得到目标距离、速度、目标在二维矩阵的索引,以及SNR(信噪比)等信息。对于每个目标由其二维索引得到其在二维矩阵对应复数数组,该数组经过AOA估计得到其角度信息。最后目标通过DBSCAN数量估计模块得到包括目标距离、速度、角度、SNR,以及其对应目标距离、速度、角度维度上的均方误差等信息,供后续跟踪模块使用。跟踪模块使用扩展卡尔曼滤波实现对应目标的跟踪。
数据处理完成以后,其同时释放掉对应的信号量,供后续终端显示模块使用。
终端显示模块,用于显示数据处理模块所处理的中间结果以及最终跟踪结果,所述终端显示模块的信号显示与信号发生模块的信号发射同步;
本系统的终端显示模块使用MFC平台,图形显示使用Teechart控件,对于终端显示模块使用一个单线程做串行处理,当程序进入显示模块的同时生产者开始向PingPongbuffer发送数据,这样就完成了显示模块和算法模块并行处理,当显示模块完成显示的时候其释放掉对应的信号量,生产者得到该信号量重新生产下一帧回波数据。
上述雷达并行处理系统的并行处理方法包括以下步骤:
S1、对参数进行设置,所述参数包括系统参数、仿真参数、以及相应目标编队示意图;
S2、完成相关参数设置后,并行产生N列天线的回波数据;
S3、以回波信号作为输入对每一列天线做并行信号处理;
S4、所有通道信号处理完成后汇总至数据处理模块进行数据处理;最后将中间结果以及最终跟踪结果发送给终端显示模块。
本实施例的仿真结果展示如下:
本系统仿真1个运动目标,假设其均沿着y轴靠近雷达(靠近雷达速度为正)其仿真参数如表1所示,其中无人机相对y轴正半轴以20m/s的速度朝向雷达运行。
表1 运动目标模型
现根据仿真的目标对整体仿真系统进行展示,图6显示了目标参数,以及根据目标域所画的无人机位置。
图7a-7d显示了目标做信号处理1的结果。7a是做完脉冲压缩的一维距离像图形,如图可以看出存在距离走动,如果直接转化到距离-多普勒域(7c),可以看出目标位置范围模糊。7b是做完距离走动校正后的一维距离像,可以看出将原来的“斜线”搬直了,转化到距离-多普勒域(7d),可以清晰的看出目标位置。
图8a-8d显示了信号处理2的结果。图8a是做完波束成形后的结果,其相对7d的结果目标具有更高的SNR因此颜色相对更深,8b是对8a的结果求幅值后做CFAR检测的结果,8c对CFAR检测结果做DBSCAN数量估计后得到的目标结果,如图可以看出其数量估计数量和初始仿真的1个目标相符。8d是对目标做波达角AOA估计的结果。
图9a-9b显示了10帧目标跟踪结果以及第一帧目标位置,从9a可以看出单个目标的跟踪结果,9b是第一帧的结果,和无人机仿真设置位置相近。
性能分析:
硬件环境如表2所示:
表2 硬件环境配置
对仿真系统每个子模块串行处理和并行处理比较,其对应线程数如表3所示,对并行处理模块来说,信号参数初始化占据一个线程,所有目标各自产生对应回波总计占据1个线程,其汇总以后所有通道将所有目标回波叠加占据8个线程,总共10个线程处理回波产生模块。信号处理部分8个线程使用抢占式模式处理16个通道处理,DBF累加这部分工作分配100个线程处理,因此信号处理占据108个线程,数据处理部分以及目标显示部分各自占据1个线程。
表3 系统设定线程数
表4显示了每个子模块分别执行串行处理和并行处理所运行时间,从表中看出并行处理所需要的运行时间明显低于串行处理(串行处理指的是所有流程均顺序执行)。
表4 模块运行时间
图10和图11分别是串行和并行处理下整体CPU利用率,从图10和图11可以看出串行cpu利用率维持在3%左右的平均水平,并行CPU利用率峰值能达到63%,谷值能达到30%左右。
综上,对于目前雷达系统使用的DSP+FPGA或者GPU平台,要么存在着CPU利用率低、运行时间长,或者依赖硬件环境等缺点。基于上述平台的缺点本发明采用了基于VS2010+Win32API+MFC(VS2010是windows环境下的编译器,Win32API是windows应用程序接口,针对windows操作系统家族的系统编程接口,MFC是微软基础库,其包含了一个应用程序框架)的雷达并行处理技术。基于VS平台的X64架构具有更加完整的软件生态,不依赖于单纯的硬件平台的软件通用特性,其支持包括对Win32API下的POSIX标准线程库、MFC、Teechart、FFT3W等第三方库在内的支持,能够更好的服务于本系统所需要的并行处理、界面显示、图形显示等相关需求。
本系统所使用的多线程并行处理技术能够使得服务器硬件平台发挥多核处理的优势,它依赖于高度集成的软件开发环境,并且对硬件处理器资源进行了优化,从而实现系统平台高并行性。该系统充分考虑多核处理器的硬件架构,通过资源配置对任务进行划分,在操作系统的支持下对多线程进行调度,降低了计算的复杂度,为平台的高效运行提供了强有力的技术支持。该系统使用了多种第三方库,例如谷歌的TCMalloc实现了高效的多线程内存管理,用于替代系统的内存分配相关函数(malloc、free等),FFT3W可以实现多维并行浮点FFT运算,MFC作为终端显示模块,其支持Teechart第三方画图模块,能够显示包括2D,3D在内的各种图形。
实施例2:
一种终端,包括存储器和处理器,所述存储器上存储有在所述处理器上运行的计算机指令,其特征在于,所述处理器运行所述计算机指令是执行实施例1所述并行处理方法中的步骤。
实施例3:
一种存储介质,其上存储有计算机指令,所述计算机指令运行时执行实施例1所述并行处理方法中的步骤。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。