某型侦察雷达时频图伪彩色处理和动态显示
摘 要:目前国内战场侦察雷达没有目标识别功能,判断目标类型是通过操作手分辨目标多普勒声音信号来实现的。然而,目标多普勒声音信号受噪声干扰大,操作手对目标尤其是对多目标进行判别非常困难,需要进行大量训练。为了提高目标类型的判断效果,采用伪彩色时频图方法进行目标判别,取得良好的效果。分析了某型战场侦察雷达视频回波特性,并对其进行了一系列处理,得到时频信息,用Matlab中Colormap建立伪彩色列表,以Visual C#为平台,采用GDI+方式对时频信息进行处理,实现了伪彩色绘图和位图的动态显示。
关键词:战场侦察雷达;C#;伪彩色;时频图
中图分类号:TP95 文献标识码:A
文章编号:1004-373X(2010)03-033-04
Pseudo Color Processing and Dynamic Display of Time-frequency
Graph of a Certain Reconnaissance Radar
WANG Yonglei1,HAN Zhuangzhi1,HE Qiang1,ZHAO Jianwen2
(1.Department of Optical and Electronic Engineering,Ordnance Engineerring College,Shijiazhuang,050003,China;
2.The General Equipment Delegate Chamber of Liaoyang Area,Liaoyang,111000,China)
Abstract:At home,there is no target recognition function within battlefield reconnaissance radar.The target type is deci-ded upon by the operator with the assistance of the Doppler sound signal.But the Doppler sound signal is largely interfered by noise,it′s very difficult for the operator to judge the target type and lots of training is compulsory.To improve the effect of target type recognition,the method of time-frequency graph with peusdo color is used for recognizing various targets.First,the paper analyzes the characteristic of the video frequency echo of some battlefield reconnaissance radar,and after a series of process,the time-frequency information is caught.Then,the Colormap function in Matlab is used for building the peusdo color table.Based on the bench of Visual C#,the GDI+ method is used for processing the time-frequency information and the dynamic display of bitmap and the peusdo multicolor plot are all realized successfully.
Keywords:battlefield reconnaissance radar;C#;pseudo color;time-frequency graph
0 引 言
战场侦察雷达在掌握战场态势,实时提供战场情报方面发挥着越来越重要的作用,其主要功能是对地面运动目标、低空直升机和海面目标进行探测,发现目标,实现定位。但是,国内地面战场侦察雷达没有目标识别功能,部分战场侦察雷达都是通过耳机监听目标回波信号来进行目标种类的区分,操作手需要根据目标的多普勒信号特征,凭经验对目标进行简单的分类。然而目标多普勒声音信号受噪声干扰大,操作手对目标尤其是对多目标进行判别非常困难,需要进行大量训练才可判别目标类型。由于多普勒声音刺耳,操作手身心健康受到严重影响。
基于目标回波的多普勒特性进行目标识别是常用的一种目标识别技术。本文正是基于目标速度与其多普勒频率之间的关系,采用绘制时频图的方式来帮助操作手直观地对目标进行判断。通过对时频图的观察可以很容易地判断有无目标,并且大致可以判断是何种类型的目标,这无疑对提高雷达性能起到了重要作用。本文所用到的时频信息来源于某型战场侦察雷达回波信号经DSP处理后的时频信息。
GDI+作为公共语言运行库,是Windows图形设计界面(GDI)的高级实现。利用它可以创建图形,绘制文本以及将图形图像作为对象操作[1,2],并且可在Windows窗体和控件上呈现图形图像。目前,GDI+是在Windows窗体应用程序中以编程方式呈现图形的重要方法。本文以Visual C#为平台,采用GDI+方式对视频信息进行处理,包括数据接收、数据转化和用伪彩色图像进行处理、显示等几个部分。
1 时频信息获取
本文研究的某型战场侦察雷达工作于伪码调相正弦调频的连续波体制。连续波体制有利于动目标的检测,能采用固态微波集成电路,有利于减小设备体积,无近距离盲区,特别适用于近程战场侦察雷达[3]。
系统对雷达的视频回波进行处理,得到上位机所需的时频信息。图1是雷达视频回波处理流程图。
图1 雷达视频回波处理流程图
雷达视频回波包括无延迟的伪码,含有距离信息的伪码和各个距离单元目标的多普勒信息。伪码具有良好的自相关特性,利用此特性可以分离出各个距离单元的时域信号,而相关运算可以用卷积来实现[4,5]。因此,对回波信号进行卷积运算,即可分离出各个距离单元的时域信号,卷积运算所用公式如式(1)所示。
g(n)=∑∞m=-∞x(n-m)y(m)(1)
式中:x(m)是伪码的翻转;y(m)是回波信号。对输出g(n)进行采样,即可得到各个距离单元的时域信号。
分离出各个距离单元的时域信号后,对各个距离单元的信号进行短时傅里叶变换和求对数功率谱即可得到相应的时频信息,短时傅里叶变换如式(2)所示,式(3)是其功率谱的计算公式。
St(f)=∫+∞-∞st(τ)e-j2πfτdτ=∫+∞-∞s(t+τ)h(τ)e-j2πfτdτ(2)
Ps(t,f)=St(f)2(3)
式中:h(τ)是窗函数,不同的窗函数会得到不同的短时频谱,但是一般来说,信号特性的分析并不随窗函数的不同而有显著变化。加窗强调了t时刻的信号,那么这样得到的频谱也就能反映此时信号的频率分量。对于不同的时刻,即变化t,就可以得到特定时刻的瞬时频谱,所有这些瞬时频谱便构成了信号的时频分析。对功率谱取对数即可得到上位机显示所需的时频信息。
2 伪彩色
伪彩色(Pseudo Color)处理是基于20世纪80年代彩色传感器和彩色图像处理硬件的不断成熟而发展起来的一种图像处理技术,是为了人们更好地观察和解释图像中的灰度目标,在不改变原有图像信息的基础上,将不同的灰度或灰度范围赋予不同的颜色,使人眼能直接作用于有差异且分辨率高的彩色图像上进行分析,从而克服人类视觉对灰度的不敏感,提高人眼对图像信息的观察和鉴别能力[6]。
伪彩色图像的含义是,每个像素的颜色不是由每个基色分量的数值直接决定,而是把像素值当作彩色查找表(Color Look-Up Table,CLUT)的表项入口地址,去查找一个显示图像时使用的R,G,B强度值,用查找出的R,G,B强度值产生的彩色称为伪彩色。
图像伪彩色处理最常用的方法是灰度级-彩色变换法。它是将灰度图像送入具有不同变换特性的红、绿、蓝三个变换器,然后将三个变换器的不同输出分别送到彩色显像管的红、绿、蓝枪,再合成某种颜色。同一灰度由于三个变换器对其实施不同的变换,使三个变换器的输出不同,从而不同大小的灰度级可以合成不同的颜色[7,8]。如图2所示,描述了一组三色传递函数描绘曲线。
图2 三色传递函数描绘曲线
3 软件编程实现
3.1 Matlab建立伪彩色查询数组
Matlab中,每个figure都有(而且仅有)一个colormap,即色图。colormap实际上是一个m×3的矩阵,每一行的3个值都为0~1之间数,分别代表颜色组成的R,G,B值,如[0 0 1]代表蓝色。系统自带了一些colormap,如:Cool,Jet等。输入Cool,就可以看到它是一个64×3的矩阵。用户可以自定义自己的colormap,而且不一定是64维的。图3列出了5种colormap对应的色阶显示图像。
Hot类型的colormap对应的颜色是从黑色到红色、桔红色、黄色,一直到白色的渐变色,而且颜色的亮度从低到高,非常适合应用于雷达时频图的显示,图像对比度较高。所以选择Hot类型作为建立伪彩色查询数组列表的依据。
在Matlab中用如下代码可以创建一个256×3的矩阵:
A=round(255*hot(256))
上式中矩阵A的每一行对应这一组RGB值,3个分量合在一起对应一个颜色,用A可以建立256×3的二维伪彩色查询数组。
图3 几种colormap对应色阶显示图像
3.2 软件实现时频图动态显示
在C#中,使用GDI+处理二维(2D)的图形和图像。使用DirectX处理三维(3D)的图形图像,图形图像处理用到的主要命名空间是System Drawing,它提供了对GDI+基本图形功能的访问,主要有Graphics类、Bitmap类、从Brush类继承的类、Font类、Icon类、Image类、Pen类、Color类等。其中,Bitmap类、BitmapData类和Graphics类是C#图像处理中最重要的三个类。
Bitmap类封装GDI+位图,此位图由图形图像及其属性的像素数据组成。Bitmap是用于处理由像素数据定义的图像的对象。主要方法为GetPixel,SetPixel,LockBits和UnlockBits,前两个方法用来获取和设置图像指定像素的颜色,后两个方法分别锁定和解锁系统内存中的位图像素。
BitmapData指定位图图像的属性。BitmapData类由Bitmap类的LockBits和UnlockBits方法使用,Scan0属性是被锁定数组首字节地址。
Graphics对象是GDI+的关键,该类定义了绘制和填充图形对象的方法和属性。
由于要显示的数字图像数据来源于雷达回波信号经DSP处理后的时频信息,所以需要先创建一个位图,然后根据接收到的数据对位图进行处理,最后再将位图在窗体上显示。假设要显示的时频图大小为128×240,在此建立的新位图大小为128×480,也就是说每一列的像素点数不变,而列数是显示列数的2倍,这样可以提高效率,其流程如图4所示。
3.2.1 创建位图
位图创建有很多种方法,从指定的现有图像初始化 Bitmap类的新实例,从指定的数据流初始化Bitmap类的新实例等[9],本文用到的是用指定的大小和格式初始化Bitmap类的新实例:
Bitmap bmp=new Bitmap(480,128,PixelFormat.Format-24bppRgb);
3.2.2 修改位图
首先将位图以可读写的方式锁定到内存中,得到其首地址ptr,然后通过对内存中对应数据进行修改,从而改变位图局部颜色。
图4 时频图显示流程图
int h=bmp.Height;
int w=bmp.Width;
Rectangle rect=new Rectangle(0,0,w,h);
BitmapData bmpData=bmp.LockBits(rect,
System.Drawing.Imaging.ImageLockMode.ReadWrite,PixelFormat.Format24bppRgb);
IntPtr ptr=bmpData.Scan0;
bmp.UnlockBits(bmpData);
//启动不安全模式
unsafe
{byte*pOut=(byte*)(ptr.ToPointer());
//画一列数据(即改变某列对应内存中的数据大小)
for (int j=0;j<128;j++)
{//y[]为读取的频率数组经过处理后的数据,范围是[0,255]
//m为要画的列数,RGB是调色板数组
num=y[128 * columnNum-j-1 ];
pOut[3*(240 + columnNum)-3]=(byte)(RGB[num,2]);
//从创建的位图的第j行,第240+columnNum列给某点颜色对应的内存地址赋值
pOut[3*(240+columnNum)-2]=(byte)(RGB[num,1]);
pOut[3*(240+columnNum)-1]=(byte)(RGB[num,0]);
pOut+=1 440;
//pout增加1 440表示换到下一行的第240列开始画图
}}
3.2.3 显示位图
利用双缓存技术实现位图的显示[10]:
Graphics g = this.CreateGraphics();
//指定欲显示的位图部分参数所用的度量单位
GraphicsUnit units = GraphicsUnit.Pixel;//要复制的位图部分,其中flag为复制的位图的起始列数
Rectangle originalRectangle1=new Rectangle(columnNum,0,240,128);//在指定位置显示位图的指定部分
g.DrawImage(bmp1,100,100,originalRectangle1,units)
时频图显示效果如图5和图6所示。颜色的变化反映了某时刻某个频率值上能量的大小,亮度越高说明能量越大,所以根据时频图可以很容易地判断出目标信息,根据频率大小可以大致判断是何种目标。根据接收数据的周期可以确定图像更新一列的时间。如果图像更新时间小于100 ms时,就可以认为图像是连续的。
图5 单目标时频图瞬时显示效果图
图6 多目标时频图瞬时显示效果图
4 结 语
雷达视频回波经过卷积、短时傅里叶变换和求对数功率谱后得到所需的时频信息,用GDI+对时频信息进行伪彩色处理并显示。通过观察时频图可以很容易地发现目标并将其分类,操作手无需经过大量的训练即可判别目标,而且判断准确率大大提高,尤其是对多目标判断更加准确。
参考文献
[1]Robinson S,Allen K S.C#高级编程[M].北京:清华大学出版社,2002.
[2]张立.C#2.0宝典[M].北京:电子工业出版社,2007.
[3]刘国岁,孙光民,顾红.连续波雷达及其信号处理技术[J].现代雷达,1995,12(6):20-36.
[4]范梅梅,马彦恒,何强.伪码调相连续波雷达数字接收及其快速算法[J].现代电子技术,2008,31(5):61-66.
[5]范梅梅,马彦恒,齐晓慧.基于BP网络的侦察雷达目标识别方法研究[J].微计算机信息,2007,23(22):265-269.
[6]范留明,李宁,丁卫华.数字图像伪彩色增强方法在岩土CT图像分析中的应用[J].岩石力学与工程学报,2004,23(13):2 257-2 261.
[7]赵春江.C#数字图像处理算法典型实例[M].北京:人民邮电出版社,2009.
[8][美] Kenneth R Castleman.数字图像处理[M].朱学刚,林学阎,译.北京:电子工业出版社,2002.
[9]Chand M.GDI+图形程序设计[M].北京:电子工业出版社,2005.
[10]闫宇晗,常鑫.在C#中用GDI+实现图形动态显示[J].计算机技术与发展,2006,16(12):117-232.