概述
在各种雷达数据处理系统中,雷达显示终端是雷达与操作员之间直接进行交互操作的界 面,是整个系统的最重要组成部分之一。在建立雷达数据处理或虚拟操作系统时,雷达显示 器的仿真水平将直接影响到整个系统的效果。随着计算机、图形处理及其网络通信技术的飞 速发展,各种雷达的仿真软件脱颖而出,其中传统雷达PPI雷达显示器的计算机仿真,是雷 达显示逼真与否的关键技术,其数据显示的实时性又是仿真软件的主要性能指标。
画线方法是一种十分简单而且容易实现的长余辉仿真方法,即在屏幕上以画直线的方式 画出每一角度的扫描线。当程序运行时,扫描线轨迹不断地在屏幕上转动,该方法不能无缝 覆盖整个扇扫区域,产生一个辐射状的固定花纹,难以进行真实的仿真。固定扇扫点方法是 在画线方法基础上改进的一种仿真方法,它虽然消除了辐射状花纹,但这种方法也存在一些 问题:对于没有回波与有回波信号显示时,由于数据量的增加,造成扫描线的转速不同;数 据计算和显示过程所消耗的时间降低了实时性。
摘要
依据雷达系统的实际功能要求及发展方向,设计和实现了基于通用计算机软件化处理的雷达显示终端。基于实验室提供的数据采集器,对接收到的雷达数据实现实时采集,并通过 CPCI 总线以 DMA 的方式传送给 PC 机,供显示终端使用,对采集到的雷达回波进行显示。本文重点讨论了雷达显示软件中的数据实时传输、坐标的转换、多线程编程、回波数据的显示等关键问题的解决方案。
绪论
“雷达”一词由 Radio DectionAnd Ranging 的缩写 Radar 音译而来,指的是“无线电探测和测距”——基于无线电的方法发现标,并对目标进行定位。雷达发射出无线电磁波,对接收到的回波信号进行提取,得到目标的方位、距离、速度、位置、高度等信息。不论白天黑夜,雷达都能够探测到远处较小的目标,而且不会被云、雨和雾阻挡,能够全天候使用。
传统的雷达显示终端采用专用的硬件设备,造价昂贵,兼容性和通用性差,扩展与升级时需要同时改变软件与硬件,周期较长;基于通用计算机的雷达显示终端具有的优点是很明显的:通用性强、成本低、可移植性好、易于调试和维护。
本文基于数据采集器和通用计算机,配备雷达图像显示软件,来实现软件化雷达显示终端的设计方案。
雷达显示终端主要用来对雷达获取的情
报和目标信息(包括目标的位置、特征参数、运动状况等)进行显示。
通用计算机显卡性能良好、兼容性良好,并
且计算机自身的软硬件资源丰富,这些都大大地推进了雷达显示技术的发展,使得雷达显示终端的软件化实现成为可能。基于通用计算机的雷达显示终端具有良好的灵活性和通用性,能够充分利用计算机的高速处理能力和强大的控制能力,并且完全符合雷达显示系统的特点——数字化信息处理、人机交互界面友好。把通用计算机作为显示控制的逻辑部件,也是雷达显示系统的发展趋势。同时,软件化、标准化、高分辨率、通用性,将是国内外雷达显示系统的追求目标。
随着 PCI 总线的发展,基于 PCI 数据总线的数据采集系统能够将采集到的雷达回波数据高速、实时地传输给计算机,从而能够满足雷达显示终端的数据传输要求。因此,目前常采用的方案是将数据采集器采集的雷达回波数据,经由 PCI 总线,传输到通用计算机,再由开发的显示软件进行显示和进一步的处理。
实现基于 PC 机的软件化雷达显示终端,同时在雷达显示软件中实现对雷达视频图像的显示,重点在于研究显示软件的实现方法。主要是在 Windows 操作系统下,利用 Visual C++ 6.0 来完成应用程序的编写,软件主要具有实时采集回波数据、把数据在屏幕上进行显示、记录雷达数据等功能。
软件画雷达显示终端的总体方案
在整个雷达系统中,雷达显示终端主要承担着雷达工作状态的控制和监视等,
主要完成雷达信号数据的采集、存储、显示以及处理等功能。
总体要求
1、显示量程
雷达显示终端的显示量程要能够根据实际需要的不同而做出相应的变化。如为了能够详细地显示近处的周围环境情况,应该选择较小的显示量程;当需要对远处的目标情况进行显示时,应该选择较大的显示量程。依据雷达的实际脉冲宽度和工作波长,从实际需要出发,设置了 15 公里、30 公里、60 公里三个档的量程变换。
2、实时扫描
实际工作中用到的某雷达的天线转速为 6~10 转/分钟,即扫描周期为 6~10秒。在雷达显示系统中,实时扫描是必须满足的指标之一。在显示雷达视频图像时,一定要保证显示的扫描线同步于雷达天线,即要使雷达图像依据扫描线的转动进行实时更新。
3、显示分辨率
为了避免目标丢失,能够有较高的目标检测能力,雷达视频图像的显示效果还依赖于显示分辨率,如果显示的分辨率低,也会造成目标显示的偏差。
4、多种显示方式
为了能够使操作人员根据雷达视频图像准确地判断出目标信息,除了 PPI 显示之外,还要有 A 显、偏心 PPI 显示等多种显示方式供操作人员参考。
-
PPI 显示:通常以极坐标的形式全面显示雷达周围 360°方位范围内的全部目标位置信息。雷达所探测到的目标回波信号以亮点的形式在距离扫描线上显示,根据荧光屏上的距离刻度和方位刻度标志,即能快速地测定目标的方位和距离。
-
偏心 PPI 显示:为在特定方向上,得到更大的扩展扫描,可以采用雷达偏心显示,即将扫描中心移至显示区域内非几何中心的任意位置。偏心 PPI 显示能够扩大特定方向的视野。
-
A 显:与示波器的显示方式类似,水平方向表示雷达作用距离,垂直方向表示雷达信号的强度,用来同步显示雷达信号。
-
B 显:又称方位、距离显示器,水平方向表示方位,垂直方向表示雷达作用距离,信号强度用灰度来表示。
5、人机交互
人机交互界面运行在标准的窗口管理下,因此具备在同一个屏幕上提供多个窗口的能力,主要包括雷达图像与信息显示和系统控制这两个部分。
显示部分的主要功能是:雷达原始视频图像的显示,状态信息的显示。
系统控制部分的主要功能是:将操作控制命令传送至数据采集器和雷达显示系统,对数据的读取、显示和存储等操作的控制等。
6、可移植性
模块划分
1、硬件组成
在工作时,采集板通过在主机存储空间中开辟的缓冲区,来进行和主机的数据交换。
雷达在工作时,模拟信号由天线发射和接收,经过混频过程变为中频信号,
由数据采集板完成 A/D 数据采集和对雷达信号的预处理,通过 CPCI 总线将处理后的数据送入主机。
作为显示控制的主机,显示控制计算机主要负责完成雷达回波数据的读取、处理和显示等任务,显示目标的距离、方位等信息。
2、显示终端的内部模块
雷达显示终端的功能模块大体可以分为:
- 控制模块:通过雷达显控界面,控制数据读取、数据存储和显示等模块。在上位机界面的控制区,设置采集参数和雷达工作命令,并通过 CPCI 总线将命令发送到数据采
集器,使雷达和数据采集器按预定的方式工作。 - 数据读取模块:通过 CPCI 接口总线,从数据采集板实时地读取雷达回波数据。由于雷达回波数据的数据量很大,解决实时数据传输是保证实时读取雷达数据的关键。
- 数据存储模块:将读取到的雷达数据进行存储和管理,以便于后期对其进行查询和显示。该功能模块通过 CPCI 接口总线读取雷达回波数据,利用文件分割的方式来实时完成数据存储(以 1G 为文件单位)。在存储的过程中,计算并实时显示磁盘存储速度
和 CPCI 传输速度。 - 图像及目标信息显示模块:实现雷达视频图像的实时显示,能够在雷达坐标中,直观地显示目标的位置信息,使雷达观测人员可以更快地获取雷达探测信息。在该模块中,主要实现雷达信号的 PPI 显示和 A 显。
用通用计算机作为雷达显控终端,具有系统稳定性高、开发实现容易、便于维护管理等特点。
系统硬件配置
在本系统中,将 CPCI 处理板作为 PC 机主板,再配置一个液晶显示器即构成PC 机。本显示系统的 PC 机的基本配置情况如下:
CPU:Intel Core 2 2.53GHz 双核 CPU。2.53GHz 的主频能够对大量的数据进行实时处理,并能够实时显示图形。由于是双核 CPU,可以较好地执行多线程程序,因而能够满足系统的要求。
内存:最大 3GB DDR SRAM。3GB 的系统内存,可以实时地执行大量复杂程
序,能够满足实时性的要求。
显卡:Intel® G33/G31 Express Chipest Family(384MB)。384MB 的显存,能够大幅度提高图形的显示速度,并能够节省系统内存,满足雷达图像实时显示的要求。
在数字信号处理中,数据采集是很重要的环节,数据采集要达到的技术指标随着任务的不同而变化。根据本系统实时显示雷达视频数据的要求,必须保证雷达数据能够实时、高效地从数据采集板传输到计算机内存。此外,由于雷达回波数据每帧的数据量很大,所以必须要保证数据传输过程的可靠性,即丢包率低。基于 CPCI 总线的特点——33MHz 的本地时钟频率,理论上可达到的峰值传输速率为 132MB/s,非常适合在高速数据通信领域中应用,所以本显示终端采用 CPCI 总线接口的方式进行数据传输。
雷达显示终端软件设计
基于 PC 机的雷达显示终端作为人机交互的界面,主要用于操作控制雷达系统和显示雷达回波数据等信息。
雷达显示软件作为人机交互的媒介,要控制整个雷达系统工作,设定雷达工作参数,完成雷达数据的录取、雷达图像的实时显示、雷达数据处理和存储等工作。
本系统中,雷达显示软件是典型的多任务软件,它不仅承担着雷达图像实时显示的任务,还要完成对雷达系统的控制、数据实时录取和存储等工作。因此该软件的开发必须基于多任务的操作系统,并且要求有较高的实时性。目前常用的基于多任务的操作系统有 Windows、Linux、VxWorks、mC/OS-II 等。相比于后三种,基于 Windows 的软件开发技术成熟,开发难度较小,开发周期相对也较短。
多任务的特点对雷达显示软件的设计非常重要,故基于 Windows 操作系统来对整个显示软件进行设计。通过多任务、多线程编程以及线程之间的通信进行实时数据传输和处理等。程序中除了主线程之外,还创建了数据读取线程、图形显示线程、数据存储线程等子线程,来分别完成读取回波数据、绘制雷达图像、存储回波数据等功能。
Visual C++ 6.0 的帮助系统 MSDN,提供了丰富的说明文档、样本代码和技术文章等,这些信息在很大程度上方便了 Visual C++ 6.0 的使用者。
MFC(Microsoft Foundation Classes)是微软基础类库的缩写,在该类库中包含了很多微软公司已经定义好的 C++类。它为用户提供了面向对象的结构框架,借助于这个框架,用户可以很轻松地创建 Windows 应用程序。
雷达显示软件的关键技术和解决方案
本系统的雷达显示软件既要能实时读取雷达回波数据,又要显示雷达原始视频图像和状态信息,还要能够进行雷达数据存储,此外还需要实时地响应来自鼠标、键盘等外部设备的用户指令。因此,本雷达显示软件要着重解决数据传输、多线程程序设计、坐标转换、屏幕无闪烁刷新等关键问题。
作为进程的实体,线程(Thread)是进程中可以单独执行的单元,也是系统调度和执行的基本单位。线程总是在某个进程环境中创建的,不能够独立执行,需要依附于某个应用程序。进程并不执行程序,真正的代码执行是由线程来完成的。
每个进程最少包含一个线程,也可以同时包含多个线程。当一个进程被创建时,这个进程的第一个线程——“主线程”,会由操作系统自动地创建。主线程的入口函数 main 函数或者 WinMain 函数的执行只能由主线程来完成。此后,主线程还可以创建多个线程,来完成该进程中的并发任务的执行,这就是基于线程的多任务,
首先,基于多进程的程序会
占用比较多的资源,因为每创建一个新的进程,系统都需要为其分配私有的 4GB的虚拟地址空间;而如果采用多线程的方法,会占用较少的资源,这是由于创建新线程时,多个线程共享同一个进程的地址空间。
1、关键代码段(Critical Section)
又称临界区,是一种保证在某一时刻只能够由一个线程对数据进行访问的简单方法。
2 互斥锁(Mutex)
互斥锁的工作方式类似于关键代码段,当且仅当线程拥有互斥锁对象时,该线程才能够对共享资源进行访问。
3、信号量(Semaphore)机制
前两种对象仅仅允许一个线程获得对共享资源的访问权。
4 事件对象(Event Object)
事件对象也属于内核对象,可以用于在不同进程的线程之间实现同步。
第一个是主线程,主要用来完成初始化和对用户输入的实时响应等工作;第二个线程为数据读取线程,用来进行雷达回波数据的实时读取;第三个线程为数据显示线程,主要用来进行雷达视频图像的实时显示;第四个线程为数据存储线程,主要用来存储雷达回波数据。线程之间的同步采用基于事件对象的方法。
如果每个仿真周期,对该矩形区域的刷新直接在显示设备进行,必然会出现屏幕闪烁的现象,严重影响显示的效果,这种现象在 A 显过程中也会出现。下面来分析屏幕闪烁的原因,并提出解决该现象的方法。
1 屏幕闪烁的原因
我们大多在 OnDraw 函数或者 OnPaint 函数中完成绘图过程,OnDraw 函数是由OnPaint 函数进行调用的。无论由于任何原因需要重绘显示窗口,都是先将显示区用背景色清除,然后才调用 OnPaint 函数。而往往显示区的背景色和绘图内容有很大的反差。这样,在短时间内会有背景色与显示图形交替出现的现象,使得显示窗口有闪烁的现象发生,反差越大,闪烁越厉害。
2 双缓存避免闪烁
采用双缓存(内存绘图)技术,即并非直接在屏幕上进行绘图,而是先将屏幕区域拷贝到内存,然后在内存中进行相应的绘图。双缓存指的是图形除了在屏幕上进行显示以外,在内存中会有相应地绘制。
雷达显示终端软件的模块实现
把主窗口分为三个主要区域:雷达图像显示区域、系统控制区域、局部放大区域。
数据存储指的是把数据缓存中的雷达回波数据依照指定文件的形式存入 PC机的硬盘,存储的数据可以用来对雷达图像再次显示或者进行其他的处理。
扫描余辉的模拟显示
传统的雷达 PPI 显示器利用显示器内部荧光物质的余辉效应,在雷达显示屏幕上显示出原始雷达回波信号,便于人们对目标的运动状态和天线的扫描位置进行观察。用计算机的屏幕模拟雷达显示器进行雷达图像显示时,无法自动产生传统显示器中荧光粉的余辉效应,因此需要用编程的方法将雷达扫描线的余辉效应模拟出来。本设计中,模拟扫描线的转动同步于天线的扫描,余辉模型的建立非常关键。荧光物质的亮度衰减过程是非线性的,有资料表明,其衰减曲线与指
数衰减曲线极其吻合,可以利用指数函数方程来建立余辉的数学模型。本设计中用一次指数衰减曲线函数来模拟雷达的扫描余辉。
在进行雷达扫描余辉的仿真实现时,大都采用通过设置不同的颜色来模拟余辉效果的方法。在本设计的雷达 PPI 显示仿真实现的过程中并未采用以往的方法,而是通过改变同一颜色的透明度来表现的,将颜色的透明度设置得越高,颜色就越浅。通过采用这种显示模式,能够很逼真的模拟出雷达扫描余辉,并且将工作量减少了很多。
距离圈和方位刻度线绘制
雷达的主要作用之一是测量出目标的距离和方位。在雷达显示器上绘制出距离圈和方位刻度线,这样在精确地对目标的距离和方位进行测量之前,能够便于人们快速方便地在雷达显示器上估计出目标的距离和方位信息。
基于 LINUX 的雷达显示软件研究
LINUX 操作系统概述
Linux 最早是由芬兰赫尔辛基大学的学生Linus Torvalds 设计的。他于 1991 年9 月通过互联网发布了 Linux 0.01,公布了源代码。至今 Linux 已经发展了 20 多年,得到了许多国际上著名的软硬件公司如 IBM,Oracle,Sybase,HP,COMPAQ, Informix 等的支持。现在的 Linux 功能强大,可以在很多平台上运行,其普及性已
经超过了它的前辈 UNIX。
Linux 以它的灵活性和高效性著称。它能够在 GNU 公共许可权限下免费获得,符合 POSIX 标准。
Linux 具有以下显著的特点:
- Linux 遵循世界标准规范,特别是开放系统互连(OSI)国际标准,其源码是公开
的。 - 支持多用户。这里所说的多用户指的是不同的用户各自拥有和使用系统资源,即各个用户对自己的资源(如设备、文件)拥有特定的权限,互相不影响。
- 多任务
多任务是指计算机可以同时执行多个程序,且各个程序的运行是独立的,这是现代计算机最主要的特点之一。Linux 是真正的多任务操作系统,它调度每一进程平等地访问 CPU。由于 CPU 的处理速度很快,启动的应用程序给用户的感觉像
在并行运行。 - 设备无关性
设备无关性是指 Linux 把所有的外设都当成文件统一看待。用户不需要知道它们的具体存在形式,只需要安装它们的驱动程序,就能够像使用文件一样来操纵这些外设。此外,用户能够修改内核源代码,从而适应新添加的硬件设备。 - 网络功能丰富
Linux 自身具备稳定、可靠、强大的网络服务功能,它免费提供了支持 Internet的软件,在网络和通信功能方面要明显优于其他的操作系统。 - 很强的系统可靠性
Linux 采取了一系列安全技术措施,包括控制读、写等操作权限,带保护的子系统,核心授权,审计跟踪等,从而为用户提供了必要的安全保障。 - 可移植性良好
可移植性是指操作系统的运行方式不受运行平台影响的能力。可移植性是Linux 的一大优点,这一特性使得 Linux 能够在从微小的嵌入式设备到大型机等多种硬件平台上运行。 - 实时性
实时性要求系统能够在有限的时间内对外部输入做出响应,具体指的是执行一个特定任务所需要的时间是可预测和精确计算的,且在任何情况下,任务的执行时间期限能够得到保证。 由于 Linux 的源代码是开放的,用户能够根据需要进行内核的裁减,从而使 Linux 能够满足自己的实时性需要。雷达显示终端必须满足实时性,因此基于 Linux 平台的显示软件研究具有重要的意义。
LINUX 下雷达显示软件的界面设计
与 Windows 下 A 显软件的功能类似,该显示软件的人机交互界面主要用于工作人员对系统进行控制以及状态显示等。该显示软件包括的功能主要有:提供良好的人机交互功能,能够接受工作人员的命令,控制上位机软件的工作;能够对数据采集器的采集参数进行设置,使数据采集器按预定的方式工作;在需要的时候,能够在显示软件的 A 显区域,对采集到的数据进行 A 显;根据用户选择的文件存储路径,完成数据存储;能够显示磁盘存储速度、PCI 传输速度、当前显示方位等。
雷达显示软件的界面设计必须符合人机交互界面的设计原则——简洁直观、易于操作、界面美观等等。此外,由于雷达显示终端的特殊要求,本显示软件要能够实时地响应用户的操作,需要采用多线程的方法来设计整个软件。其中由主线程(GUI 线程)来控制人机交互界面,从而能够对用户的操作进行及时响应。
基于 Qt 等图形界面工具开发包来进行界面开发时,要注意人机交互界面的响应速度。由于本软件需要实现的功能较多,其中数据采集和数据存储等模块比较耗时,如果都由图形用户界面(GUI)线程来完成的话,会导致用户界面冻结,无法实时响应用户的操作。故本设计采用多线程技术,除了 GUI 线程之外,另外创建数据采集线程、数据显示线程和数据存储线程来分别完成相应的功能。在 Qt 中要实现多线程比较简单,只需要从 QThead 类派生出新的类,重新实
现 run()函数,以数据读取线程为例:
在本软件中,GUI 线程作为主事件线程,该线程主要负责从窗口系统中获取事件,并将它们分发到各个组件去处理。它负责辅助线程的创建、删除和协调各线程之间的运行等工作。在 Qt 中,GUI 线程是唯一能够执行图形用户界面相关操作的线程;数据采集、存储以及显示部分等比较耗时,分别用三个独立的工作线程来完成。
具体的过程为:在启动雷达显示软件之后,GUI 线程会自动运行,呈现出人机交互的界面,在这个界面中,用户可以设置采集参数(如采集通道、时钟、采集方式、触发方式、触发沿、工作方式等),从而控制数据采集器按照预定的方式工作。接下来,依据用户的选择,开启相应的线程来实现不同的功能。
在各个线程之间要处理好互斥和同步的问题。Qt 中提供了几个常用的类:QMutex 、 QMutexLocker 、 QReadWriteLocker、 QReadLocker 、 QWriteLocker 、QSemaphore、QWaitConditon,来实现线程的同步和互斥。
在本设计中,采用 QWaitCondition,并以 QMutex 作为等待条件,来处理好各线程之间的同步问题。
应用程序与驱动程序的通信
Linux 把所有的外部设备都看做是文件,即“设备文件”。内核和应用程序之间的接口是由系统调用来实现的;而内核和外部设备之间的接口则是由设备驱动程序来完成的。设备驱动程序将外部设备的细节都屏蔽了,因此对应用程序而言,外部设备仅仅是一个文件,应用程序对外部设备进行操作就如同对普通文件操作一样。
Qt 中双缓冲绘图的实现
本软件主要调用 Qt 提供的绘图类 QPainter 来实现基本的绘图功能。该类既提供了如用于绘制直线的函数DrawLine()、绘制扇形的函数 DrawPie()、绘制文本的函数DrawText()来完成简单图形的绘制,还能调用 DrawPath()等函数来完成复杂图形的绘制。除此之外,还能够设置绘图样式。
与 Windows 下双缓存绘图类似,在绘图时,为了减轻绘图的闪烁感,也同样采用双缓存绘图。在本显示软件的控制区以及操作区,不采用双缓存方式,直接在窗口部件(QWidget)上调用绘图类 QPainter 来完成作图。对于 A 显区域,由于该部分在绘图过程中需要频繁的刷新,采用双缓存绘图的方式。具体的实现方法为:首先创建一个 QPixmap 类的位图对象,该对象的大小为 A 显区域的大小;使用 QPainter 提供的绘图函数在该位图对象上进行绘图;使用 bitBlt()函数,将绘制在位图对象上的图形复制到 A 显区域,从而完成一次重绘。周期性重复以上过程,实现 A 显区域显示波形的不断刷新。这里需要强调的是:在进行重绘的时候,要调用repaint(false)函数,从而保证重绘的区域仅仅是波形显示区域,而非整个界面。
结束语
本文主要研究了软件化雷达显示终端的设计与实现。随着科技的发展,雷达显示终端也向着人性化、智能化的方向发展。本文结合雷达的实际应用,对雷达数据采集和处理、雷达图像显示等进行了较为深入的探讨和研究,设计出了基于PC 机的软件化雷达显示终端。主要的工作内容包括:基于 PC 机的软件化雷达显示终端的总体方案设计;对系统中各模块的硬件设备进行了选择和可行性分析;基于 CPCI 总线实现雷达数据的实时传输;基于 Windows 平台,利用 MFC 完成了雷达显示终端的软件设计和开发,实现了雷达图像的实时显示,并设计出了友好的上位机界面,实现控制模块的功能和人机交互。经过调试,实现了雷达显示终端应用程序的主要功能,显示软件易于维护和升级,灵活性高,具有一定的实际意义。最后,对 Linux 下基于 QT 的雷达显示软件的开发进行了探讨,设计出了显示界面,并分析了关键技术的解决方案,为进一步的研究工作奠定了基础。
尽管一年多以来一直致力于软件化雷达显示终端的设计这一课题的研究,但是本课题涉及的知识面广,而且需要较高的编程技巧和算法设计能力,再加上本文作者水平的局限,时间紧迫,在本论文中还存在一些问题需要进一步深入探讨和研究:
第一,雷达显示软件只实现了雷达回波数据的显示,与外部信息的融合还有待完成。
第二,对于回波数据的脉冲压缩、杂波抑制、恒虚警处理等方法还有待完成。
第三,Linux 下显示软件的设计还有待完善
附
DirectDraw 显示雷达终端的机理
DirectDraw是一种Microsoft DirectX API,它可以提供对显示处理、位图数据和非屏幕内 存(off-screen memory)控制以及对其它硬件功能的快速访问。
光栅扫描显示器是以直角坐标系显示数据,而 PPI 雷达显示器采用的是极坐标体制,所 以为了能仿真 PPI 雷达显示器长余辉显示,必须要进行坐标变换。坐标变换的过程可以在 DSP 等器件中实现。坐标变换在 DSP 中实现的好处是:①充分体现 DSP 对实时信号高速处 理的能力,②可以减轻 PC 机资源开销,以便更好地进行视频显示。 根据 DirectDraw 的特性和 PPI 显示的特点,通过支持访问屏外显示内存中位图的软硬 件资源,利用硬件的位块传输和缓冲区翻转功能,允许直接对显存操作,能满足图像处理和 显示的实时性要求。
DirectDraw实现雷达长余辉的方法
利用 DirectDraw 中 alpha 混合的技术,将屏幕坐标点中的颜色元素随着扫描线的旋转进 进行动态的非线性衰减,模拟出 PPI 显示器的长余辉现象。
扫描线数据损耗是为了能够模拟电子扫描线的消隐,调整余辉长度。这一过程是长余辉 消隐机制的精髓,它是通过直接修改颜色值完成的。直接修改颜色值是 DirectDraw 中 alpha 混合的一种,alpha 混合公式如下:
目标颜色值=源色×alpha/256
Alpha 取值范围为 0~255
假设扫描线转动的
t
0
t_0
t0时刻的辉度值为
a
0
a_0
a0,由于余辉特性是随时间非线性变化的(指数或对数曲线),那么,扫描线转过之后的
t
1
t_1
t1时刻的辉度值
a
1
a_1
a1则为:
a
1
=
a
0
−
a
0
∗
1
/
m
=
a
0
(
1
−
1
/
m
)
a_1 = a_0 - a_0*1/m = a_0(1-1/m)
a1=a0−a0∗1/m=a0(1−1/m)
则扫描线转过之后的任意时刻的辉度值 为:
a
n
=
a
0
(
1
−
1
/
m
)
n
a_n = a_0(1-1/m)^n
an=a0(1−1/m)n
为了避免乘除法,我们可能用移位运算符“<<”来进行,以获得在程序实现时最快的运算, 在此,m 可以取 2u(u=1,2,3…)便于移位运算,m 的大小决定了余辉的长短。
实时显示数据的获取
用于实时显示的视频数据是PC主机通过PCI总线采用DMA方式直接从DSP的存储区 中获得。数据格式已经协调定义好,同时数据已经在 DSP 中得到了处理,取过之后即可用于实时显示。
笔记摘自论文:
《软件化雷达显示终端的设计与实现_范飞》
《基于DirectDraw的雷达显示终端的实现》
最后
以上就是自由中心为你收集整理的【论文-笔记】软件化雷达显示终端的设计与实现的全部内容,希望文章能够帮你解决【论文-笔记】软件化雷达显示终端的设计与实现所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复