摘 要:目前國內戰場偵察雷達沒有目標識別功能,判斷目標類型是通過操作手分辨目標多普勒聲音信號來實現的。然而,目標多普勒聲音信號受噪聲干擾大,操作手對目標尤其是對多目標進行判別非常困難,需要進行大量訓練。為了提高目標類型的判斷效果,采用偽彩色時頻圖方法進行目標判別,取得良好的效果。分析了某型戰場偵察雷達視頻回波特性,并對其進行了一系列處理,得到時頻信息,用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.