绪论
1.1 引言
随着数字化技术飞速发展,以硬件为核心的传统雷达系统开发模式将逐渐被以软件技术为核心、以需求为驱动的开发模式所取代。而显控终端是软件化雷达人机交互重要模块,对软件化雷达的研究和应用具有重要意义。
本文首先介绍雷达终端的基本概念、发展历史和研宄现状,并设计一款基于CPU和GPU的异构平台的软件化雷达显控终端。然后根据软件化雷达基本概念,将其分为四个软件模块:终端应用程序、系统函数库、程序函数库和服务器应用程序。同时对CPU和GPU的结构和计算能力方面进行分析和比较,并介绍CUDA编程模型,包括编译方式和软件体系。接着对终端关键算法进行设计,包括脉冲压缩算法、MTI和MTD算法、CFAR检测算法。通过Matlab仿真确定正确性,然后分别基于CPU和GPU实现算法,并对结果进行分析比较。最后是对软件化雷达显控终端进行整体的设计和实现。根据总体设计要求将终端系统分解成四个模块:人机交互模块、通信模块、信号处理模块和信息显示模块,分模块进行设计和实现。
基于上述工作,完成了一款运行于PC的软件化雷达显控终端,结合GPU运算能力和高性能算法,能满足终端信号处理、目标显示的实时性、高精度要求。
1.2 雷达终端概述
雷达名称来自英文Radar的音译,全称是RadioDetectionandRanging,即“无线电探测和测距”。雷达也叫做“无线电定位”,即通过无线电探查目标,测量其方位和距离。但是随着雷达的不断发展,原本单一的定位功能将逐渐演变至对目标速度、目标航迹等多信息的探测。雷达通过发射机发射信号,经过目标反射后形成回波信号并通过接收机进入信号处理机。回波信号经过一系列的信号处理和数据处理后,提取出相关目标信息,包括方位、距离、速度和航迹等。雷达的探测目标多种多样,包括自然生物、日常生活中的车辆、行人等,也包括导弹、卫星等军事目标。为了对雷达测量的工作原理做出简单地说明,下面借助经典的单基地脉冲雷达来做说明,如下图。
简单地将雷达的工作流程概括为:雷达通过发射机产生电磁能,该电磁能通过天线向外辐射,辐射的范围由天线的波束决定。此时如果目标恰好位于此波束内,并反射了部分的电磁能,则天线会接收此信号并通过收发转换开关传输到接收机中,并做后续的信号处理、数据处理等。
而终端作为雷达系统中关键部件,承担着人机交互的重要功能。雷达终端显控系统,作用是将接收到的雷达视频信息通过目标检测、目标跟踪等处理后通过可视化将目标的方位、距离等重要信息反馈给用户;同时用户还能够通过终端对雷达系统进行特定化的设置,使雷达能适应当前的环境。
虽然运行在PC端的新型软件化雷达终端系统能摆脱硬件电路板的依赖,将数据处
理、图像显示等雷达功能与软件化技术相融合,逐步向软件化、通用化、信息化迈进。但同时终端系统要求的数据实时处理能力,多线程运行能力等,会给CPU带来较大的负荷,不仅无法保证实时性,更有可能给整个雷达系统带来损害。除了CPU以外,PC本身自带了一块图形处理单元,即GPU。GPU所擅长的并行处理正是终端系统所需要的。几年来,GPU正以远大于摩尔定律的速度快速发展,其强大的并从计算能力能代替CPU执行大量数据的运算,从而解放CPU去完成逻辑控制、系统调度等任务。基于CPU和GPU合作的平台,不仅能充分利用CPU和GPU各自的优势,完成终端系统日常运行的功能,而且能提高整个系统的性能和稳定性。现在一台普通的PC,其自身就拥有强大的GPU资源,为本文提供了一个良好的开发平台。
1.3 研究现状
国内软件化雷达作为新兴产业,其发展刚刚展现出巨大的活力,国内外并没有多大的差距,完全能够通过一代人地不懈努力赶超国外。
1.4 研究背景与意义
雷达技术在近几十年里取得了巨大的成就。但是,雷达功能的单一性和特定性导致
了雷达装备繁琐。以往的雷达几乎由硬件组成,这意味着如果想改变系统参数必须更改系统的硬件组成。改变雷达的硬件设备需要耗费大量的人力物力,不利于通用化、标准化的雷达建设,为了顺应现代科技发展,雷达的软件化是必然的趋势。软件化雷达是通过终端与用户进行人机交互的,终端的重要性不言而喻。终端必须能对用户的操作产生及时的响应,也必须能对获取到的数据进行及时、有效的处理,并将结果直观、准确的方式呈现给用户。
在雷达软件化的研宄过程中,不可避免地会涉及到大量的并行运算和高性能运算方法,这对系统的计算性能有严格的要求。
1.5 研究内容
本文旨在设计一款运行于PC上的软件化雷达显控终端系统,具备目标显示、系统参数控制、数据处理等功能。终端接收硬件信号处理后的数据并进行恒虚警检测、点迹凝聚等处理,将处理后的结果实时显示到人机交互界面上。
软件化雷达基于“面向实际需求,以软件技术为核心”的开发理念,以软件功能代替硬件,推动雷达的软件化、信息化发展。在PC的CPU和GPU性能高速发展的今天,将终端与PC结合,构建基于CPU和GPU异构平台的软件化雷达显控终端是必然趋势。
软件化雷达平台
2.1 基本概念
以适应“面向实际需求,以软件技术为核心”的开发理念,并能够以软件化开发模式灵活地实现系统扩展、更新和升级。
特征:
- 可重构一一即雷达系统可以通过更换系统软件改变功能,而无须涉及硬件的更换,这也正是软件化雷达的核心。传统的单一雷达已经无法跟上数字化的步伐,这要求雷达能摆脱传统的束缚,结合计算机技术,仅依靠软件的升级和更新即能重新定义功能。可重构的最终目的是通过改变雷达软件来提高雷达性能。
- 同时多功能一一即要求雷达能同时实现两种及以上的功能,是多种功能的集成。比如能同时进行制导、电子对抗、目标搜索等。同时多功能赋予了雷达高效的性能,一部雷达即能满足各类要求。
- 节点化一一单独的雷达在实现自身功能的同时,更作为整个雷达网络中的一部分,能配合其他雷达实现整体雷达网络的功能。
2.2 软件模块
- 终端应用程序一一软件化雷达要求终端提供完整的显示和控制功能,包括数据的实时显示,控制服务器进行相关参数的设置等。
- 服务器应用程序一一软件化雷达服务端接收雷达回波信号并进行处理,还需将处理好的数据进行分发。在对服务器应用程序进行开发时,需要调用系统底层的函数来进行
处理,通过这些函数的组合实现雷达服务器的功能。 - 应用程序函数库一一即常用的软件开发平台自带的开发工具包,例如VS2015中的函数库,它负责为终端和服务器应用程序提供底层的实现。
- 系统函数库一一例如在Windows操作系统下进行开发的程序,主要应用的是Windows中的系统函数库。通过系统函数库可以获得系统的环境变量、进程信息等,辅助服务器应用程序和终端应用程序的实现。
优势:
- 当系统需要扩展新的功能时,或者进行日常的维护和升级时,只需要将功能的实现函数添加进相应的应用程序函数库中,并更新函数接口即可。
- 系统开发人员可以从应用程序函数库中选择不同的功能来满足不同的用户,程序复用性高。
- 模块化的开发模式,不仅可以让开发人员并行开发,缩短开发周期,也提高了系统的集成性和鲁棒性。
- 将终端和服务器分离,通过网络进行通信,而不是局限地让他们运行在一台设备上,两者即独立,又互有联系。
2.3 CPU与GPU分析与比较
在CPU架构中,控制器和寄存器占/大部分面积,与之相对的,GPU则拥有更多的ALU(Arithmetic Logic Unit,逻辑运算单元)。从这结构的差异中可以得知,CPU更注重数据高速缓存和流控制,但无法做到真正意义上的数据并行处理;而GPU拥有高度并行结构,适合对密集型数据进行并行处理,在处理图形数据和复杂算法方而拥有比CPU更高的效率
。
GPU采用流式并行计算模式,可对每个数据进行独立的并行计算,所谓“对数据进行独立计算”,即,流内任意元素的计算不依赖于其它同类型数据,例如,计算一个顶点的世界位置坐标,不依赖于其他顶点的位置。而所谓“并行计算”是指“多个数据可以同时被使用,多个数据并行运算的时间和1个数据单独执行的时间是一样的”。
GPU的运算方式是单指令流多数据,在同一时间内,在每一个线程内执行算法相同工作量一样的任务,这也是GPU能进行大规模并行运算的基础。通过上述方法能让一个比较复杂的算法通过编程分解成若千个简单的运算,从而将复杂算法简单化。
随着成本和性能等方面逐渐提高,以及晶体管大小的设计和制造已经逐渐接近极限,CPU的浮点运算能力渐渐无法满足当代社会对运算精度、运算实时性方面的要求。但是GPU却仍以远大于摩尔定律的速度增长,其性能在短时间内就会提升一倍。这对于未来新型软件化雷达要求的高精度、高性能、大规模数据运算来说是不可或缺的。
CPU和GPU通信方式
在CUDA的架构体系中,CPU和GPU是无法直接进行通信的。GPU若想获取CPU内存中的数据,必须先将数据从主内存中拷贝到显存中,然后才能进行处理。所以只有在保证CPU和GPU两者之间通信的完整性后,才能确保系统能够正常运行。
2.4CUDA软件体系
CUDA Library(库函数)、CUDA Runtime API(运行时API)与CUDA Driver API(驱动API)—起组成了CUDA的三层软件架构,从上层应用程序身到GPU底层硬件的CUDA驱动程序,其中CUDA Library主要包含一些常用的数学函数和信号处理函数,CUDA runtime API主要包含一些对GPU存储器和计算控制的函数,而CUDA Driver API主要负责硬件驱动。
软件化雷达显控终端算法设计
软件化雷达显控终端系统与传统雷达的差异在于,传统雷达的信号处理、数据处理过程均由FPGA、DSP等硬件组成,而软件化雷达将全部的信号处理、数据处理过程交由PC的CPU和GPU实现。
3.1 信号处理框架
雷达在接收到目标回波信号后,经过A/D模块将模拟信号转换为数字信号,然后交由信号处理模块进行实时处理。信号处理过程目的是获得有效目标的距离、方位信息,确定目标点迹和运动轨迹,同时抑制噪声、杂波干扰,提高信噪比,增加目标检测概率。一般的信号处理模块包括脉冲压缩、MTI (Moving Target Indication,动目标显示)和MTD(Moving Target Detection,动目标检测)以及CFAR(Constant False Alarm Rate,恒虚警率)检测。
3.2 脉冲压缩算法设计
脉冲压缩可以在时域实现,也可以在频域实现。时域实现是利用FIR滤波器实现时域脉冲压缩,时域脉压处理方法比较直观。当距离单元数较小时,相对运算量不大,采用时域脉压处理也可以满足实时性要求。但是当距离单元数很大,时域卷积的运算量很大,这时宜采用频域脉冲压缩方法。为了提高运算速度,离散傅里叶变换可以采用快速傅里叶变换实现。
3.3 MTI、MTD算法设计
动目标显示是用来抑制树林、山坡、建筑物、海浪等固定或者是比较慢的无用信号,并能够发现运动目标的信号。
3.4 CFAR算法设计
雷达信号的检测通常是在干扰环境中进行的,为了保证在千扰强度发生变化时虚警率保持恒定,雷达信号需要经过恒虚警检测。
软件化雷达显控终端软件实现
控终端作为软件化雷达的人机交互模块,承担着和用户直接接触的重要功能。终端既要对数据进行处理和显示,也要对用户的操作进行响应。本章根据软件化雷达系统要求提出终端的总体功能要求,并根据功能划分软件模块,最后分模块进行设计和实现。
显控终端包含显示和控制两部分主要功能,显示功能指对目标信息(方位、距离、航迹、速度等)的显示,控制部分指设置相关参数,发送控制命令,实现对雷达的控制。具体的要求如下:
- 在PC上基于Windows系统设计一款显控终端。
- 窗口界面人机交互良好,用户操作简易。
- 终端通信良好,数据的接收和发送能做到实时、准确。
- 雷达工作方式及工作状态的显示和管理控制。
- 数据处理算法运行性能良好,实时性好。
- 目标可视化,在界面上显示目标的方位、距离等信息。
实现各个子模块并利用多线程编程协调好终端各功能,提高程序运行效率。
4.1 终端模块划分
人机交互模块、信息显示模块、通信模块和数据处理模块
人机交互模块的功能是实现显控终端和用户之间的交互,一方面终端提供模拟的雷达显示界面(主要为PPI显),方便用户直观地获得目标信息;另一方面,用户能够通过终端控制雷达的参数,包括发射机参数、接收机参数、终端参数等。
雷达视频图像显示区:用以显示雷达图像,并根据用户设置绘制出辅助坐标系,用户可以直观地观察目标的距离、方位等信息。
雷达参数设置区:在该区中设置相关按钮来改变雷达系统的参数设置,包括发射机参数、接收机参数以及终端参数等。
界面大致上可以分成四个区域:图像显示区、发射机参数设置区、接收机参数设置区和终端界面参数设置区。下面将分区域进行介绍。
(1)图像显示区
终端界面的图像显示区如图中黑色背景区域所示,当终端开始工作时可以在该区域进行PPI显示或者B显的绘制。
(2)发射机参数设置
该区域设置了关于雷达发射机的相关参数,分别为工作频率(预设了发射机常用的工作频率,分别为L波段(1-2 GHz)、S波段(2-4 GHz)、C波段(4-8 GHz)、X波段(8-12 GHz)和其他,用户可以根据实际雷达发射机的功率进行选择)、输出功率(输出功率指的是发射机在脉冲重复周期内输出功牛:的平均值。输出功率预设了五个范围,分别为:0-5 Kw、15-10 Kw、10-15 Kw、15-20 Kw和其他。用户可以根据实际雷达发射机的输出功率进行选择)、信号形式(根据雷达体制的不同,可选用各种各样的信号形式,在这里我们预设了简中的儿种信号形式供用户选择,包括线性调频、非线性调频、脉冲编码信号和随机信号)以及信号稳定度(信号稳定度:当用P按F信号稳定度按钮时会弹出新的对话框。信号的稳记度包括载波频率、脉冲重复周期、脉冲重复频率和脉冲宽度。用户可根据实际情况自行输入)。
(3)接收机参数设置区
该区域设置了雷达接收机的若干参数,分别为灵敏度、噪声系数、工作频带以及接收增益。用户可以在编辑框中输入实际参数。
(4)终端参数设置区
在该区域内设置了不同的数据处理过程,包括脉冲压缩、MTI、MTD、CFAR检测。当数据进入终端系统时,系统会调用封装好的数据处理函数,并将处理后的数据存储在对应的数据结构中。当用户按下某一按钮时,会弹出对应的非模态对话框,显示该按钮对应的处理结果。通过对数据处理分阶段显示,用户可以清晰地观察数据在不同处理过程中的中间态,便于用户比较和记录。
(5)终端参数
1、天线转速:由于终端显示区需要模拟实际雷达显示,所以扫描线也要和天线的转速保持一致。用户通过输入天线转速来控制天线的实际转速,并调节终端模拟扫描线的速度。
2、显示类型
终端的显示类型多种多样,这里暂时选了常用的三种,分别为PPI显示、B显示和扇形显示。用户可以根据需求自行选择,终端默认的是PPI显示。
3、量程
量程:根据目标的远近可分为远程目标和近程目标。终端预设了四种量程,分别为0-5 Km、5-10 Km、10-20 Km和20-30 Km。当用户选择不同的量程时,显示区的量程也会发生相应的变化。终端默认的是0-5 Km。
4、点迹设置
由于对雷达图像的显示是通过描点来实现的,所以设计了点迹设置来控制点迹的大小、形状、颜色。
5、辅助坐标
在雷达图像显示时,为了能更直观地判断H标,在图像中设置了辅助坐标,包括距离圈和径向直线。用户可以通过距离圈和径向A线大致估计目标的距离和方位。终端默认的是5个距离圈,径向直线问隔90°。
6、工作模式
雷达根据目的小以在多种模式下工作,终端也需要根据雷达工作模式的改变而做出相应的改变。终端预设了三种工作模式,分别为搜索模式、测量模式和跟踪模式,用户可以根据实际情况做出不同的选择。
7、杂波模式
杂波模式分为正常模式和抑制模式,默认的模式是正常模式
8、固定门限
雷达在对目标进行判别式需要通过?定的门限来排除干扰,正确找到目标,除了恒虚警检测外,用户也可以通过设置固定的门限来辅助判决。固定门限设置范围为1-15.
9、目标显示
终端除了能将目标实时的显示在图像上以外,还设计了一个目标显示的功能。通过将目标在表格内罗列,能更清晰的看到各个目标之间的关系,便于用户判别。表格内H标的信息包括距离、方位、幅度。
4.2 信息显示模块的设计与实现
雷达坐标系绘制
1、P显模式下坐标系绘制
P显以正北为方位角的零度,角度按顺时针增加,距离延半径方向增加,圆心则为雷达主机所在的位置,如图所示。其中距离有4种量程可供用户选择,分别为:1Km、5Km、10Km、20Km。
2、B显模式下的坐标系绘制
在B显模式下,坐标系纵轴代表目标的距离,坐标系横轴代表雷达的方位。本文设计的B显,其横坐标和纵坐标可以根据用户的参数设置显示不同范围。横坐标有6中范围可以选择,分别为0-60、60-120、120-180、180-240、240-300、300-360;纵坐标有4种量程选择:1Km、5Km、10Km、20Km。
目标信息绘制
目标信息的数据在极坐标方式下进行处理,所以雷达终端在接收服务器端发送过来的数据时,需要将目标的方位和距离信息进行坐标转换,换成显示区中直角坐标系中的像素点信息。下面将对不同显示方式下坐标变换的方法做出分析。
1、P显目标信息显示
2、B显目标信息显示
终端通过UDP的形式接收服务器端发送的数据,并且开辟了单独的线程以实现雷
达回波数据的实时显示,数据读取线程与数据处理线程同步完成PPI显示功能。
双缓存绘图技术!!!
增先创建和屏幕设备对应的内存设备环境,并创建与指定的设备环境兼容的位图,然后将位图选入当前的内存环境当中。
扫描线绘制
环酮的雷达为了将雷达视频图像显示在屏幕上,需要利用显示器内部的荧光物质。荧光物质具有余辉效应,能模拟天线的扫描状态、目标的运动状态等,便于用户观察和分析。但是在计算机上进行PPI显示的绘制时,无法像传统显示器那样利用内部荧光物质,只能通过编程的方法模拟扫描线的余辉效应。在本设计中,通过设定一个循环来不断增加扫描线的颜色深度来模拟余辉,即在定义画笔画扫描线时将画笔的颜色深度不断加深。
辅助坐标系绘制
设计了辅助距离圈和径向直线,用户能根据这些辅助图形对目标信息进行快速简单的估计。
距离圈通过一组同心圆来实现,且每个距离圈均匀排列。
为了能更清晰的观察目标的运动状态,需要对其航迹进行绘制。目标的航迹绘制是,将不同时间内的同一目标点迹同时显示在屏幕上。
4.3 通信模块设计与实现
在本文设计的显控终端中,通信模块负责系统中数据通信部分。通过通信模块程序,终端可以接收雷达目标数据,并可以发送控制指令给雷达主机。
由于数据量较大,为了保证数据实时处理,在设计通信模块时要设计专门的多线程来接收并存储数据。在选择终端与服务器的通信时,TCP提供了一种面向连接的、可靠的、基于字节流的运输通信协议,能传输安全性能高、信息量小的数据;而UDP提供了一种无连接的传输层协议,可以用来传输信息量大,安全性能要求较低的数据。
4.4 数据处理模块设计与实现
在雷达系统中,接收到的射频信号经过低噪声放大、混频之后成为中频信号,经过AD采样后进入FPGA进行数字正交相位检波、数字波束形成、脉冲压缩、动目标处理和动目标检测后进入计算机内存。在软件中进行求模运算、固定门限处理、恒虚警门限处理等数据处理后,在屏幕上完成和天线同步扫描的实时显示雷达目标图像。