沈靜波,劉 揚
(中國電子科技集團公司第38研究所,合肥230088)
隨著計算機處理能力的提高和計算機圖形學的發展,雷達光柵顯示設備不僅可以顯示動目標信息,而且可以疊加顯示地圖、刻度線和標繪信息,為用戶提供了更加友好的人機界面,從而成為當前雷達主流的顯示平臺[1]。但光柵顯示也存在一個明顯的瓶頸:雷達回波顯示。由于雷達回波顯示的計算量龐大,再加上余輝模擬的計算量,往往難以支持過高的雷達轉速。現階段的雷達回波顯示技術一般可以良好地支持10~20r/min的轉速,提供連續穩定的回波顯示和余輝繪制。但隨著雷達技術的發展和用戶需求的不斷提高,場面監視雷達的轉速已經提高到60r/min,傳統的雷達回波顯示技術已經不能適應這種高速大容量雷達回波顯示的需求。
雷達回波顯示的主要瓶頸在于計算量大。
雷達顯示器的分辨率一般為1 600×1 200,顯示回波和其他雷達圖像信號的主顯示區大小為1 200×1 200。雷達顯示需要支持漫游和縮放操作,常規雷達可以支持8倍率的放大,這就意味著每個方位必須有至少600×8(即4 800)個點,才能實現距離上的全覆蓋。為了實現遠端方位上的全覆蓋,信號處理一般會傳入16 384個方位,盡可能地消除放大后的遠端死點。對于每個回波點,雷達顯示軟件都需要進行坐標轉換,計算出對應的屏幕像素點,并對位于屏幕顯示范圍內的回波點完成顯示和繪制。這就意味著,當雷達轉速為60r/min時,每秒需要完成4 800×16 384(約8千萬)個點的坐標轉換和繪制工作,這涉及到大量的sin函數和cos函數的浮點運算。且在回波繪制的同時,需要實現余輝消隱,這就意味著每秒鐘至少要對全屏每個像素點進行20次以上的衰減操作。
為了實現雷達回波的實時顯示,傳統雷達主要通過純軟件和軟硬件結合2種方式實現雷達顯示畫面的繪制。
(1)純軟件的方法:主要是通過DirectX的直接寫屏技術[2]或 OpenGL的渲染繪制技術[3],并配合動態查表法以提高坐標轉換的速度,從而實現雷達回波的繪制,最高可以達到30r/min。
(2)軟硬件結合的方法:主要通過專用的圖形采集卡對回波信號直接進行抽取和繪制,最后將形成的回波圖像直接送顯卡,和顯示軟件生成的目標和地圖等二次信息圖像進行疊加,實現雷達回波的繪制,最高也可以達到30r/min。
對于場面監視雷達60r/min的高轉速需求,不管是純軟件的方法還是軟硬件結合的方法,都有些顯得心有余而力不足,所以不得不另辟蹊徑。隨著顯卡性能的不斷提升,當前主流顯卡都已經具備圖形處理單元(GPU)運算能力。而雷達回波繪制的過程是一個高度并行化的計算過程,每個屏幕像素點可以獨立繪制,所以非常適合移植到GPU上進行并行計算。近兩年,謝永亮[4]和王金波[5]先后邁出了雷達回波并行化處理的第一步。
這里考慮引入CUDA技術,通過屏幕直角坐標系的形式存儲雷達回波數據,利用顯卡的并行化計算能力處理分擔中央處理器(CPU)的計算量,實現雷達回波的繪制,同時支持顯示畫面的縮放和漫游等顯示干預操作。
這里的回波繪制分為3個階段:
(1)根據實時傳入的回波數據生成整個回波顯示區的屏幕回波強度表;
(2)根據屏幕回波強度表在回波位面上繪制回波圖像;
(3)余輝衰減。
其中,屏幕回波強度表為一個二維數組,記為arrScreenEcho[1200][1200],用于存儲每個屏幕像素點的回波強度。此處沒有采用如參考文獻[4]和[5]中極坐標系的方式存儲雷達回波數據的主要原因:當顯示畫面需要支持縮放和漫游時,極坐標系所需的存儲空間會隨著方位單元和距離單元數的增加而大幅增長,而屏幕直角坐標系的存儲空間消耗則是穩定的。
首先,為每個方位的回波數據定義一個屬性結構體:

每當接收到一個方位的回波數據,CPU都會把回波數據和方位信息傳入顯卡,由顯卡上的GPU對回波數據進行處理,更新顯存中保存的屏幕回波強度表。這是一個高度并行化的過程,顯卡GPU啟動4 800個線程,每個線程對應一個回波點。每個線程根據當前縮放比例進行坐標轉換,獲得屏幕點坐標,更新屏幕回波強度表。
由于整個屏幕是定時翻屏刷新,所以,每當需要刷新回波畫面時,都需要將屏幕回波強度表中每個像素點顯示到回波位面上。此時,每個像素點對應一個線程,整個屏幕對應了1 200×1 200個線程。這些線程被分為75×75個線程塊,每個塊中包含16×16個線程。假設:

則x和y的值就對應了該線程像素點的屏幕坐標。每個線程根據屏幕回波強度表獲得該像素點的回波強度,計算出該點對應的顏色值,并將結果寫入回波位面的對應地址,從而形成了回波圖像。
整個屏幕定時觸發余輝衰減,對每個像素點的亮度進行衰減,這同樣是一個高度并行化的過程。沿用2.2節的線程劃分,每個像素點對應一個線程,根據屏幕回波強度表中的回波強度進行衰減,再將計算結果存入屏幕回波強度表,等待下一次翻屏刷新時繪制。
通過使用上述三段式的回波繪制方法,CPU只需要實時將回波數據傳入顯存,并定時觸發回波繪制和余輝衰減,再從顯存獲取生成的回波位面即可。而大量的坐標轉換運算、繪制操作和余輝消隱都通過顯卡的GPU并行化實現,極大降低了CPU的負載,使其可以專注于目標信息以及地圖等二次信息的繪制。
上述雷達回波數據顯示技術已在某場面監視雷達中得到應用。該雷達的轉速為60r/min,雷達回波區分辨率1 200×1 200,每秒翻屏50次,余輝衰減25次。程序運行在Pentium Dual-Core CPU上,主頻3.2GHz,顯卡為NVIDIA Quadro 2000。
圖2是根據模擬數據產生的雷達回波畫面,圖3是放大后的雷達回波畫面。該畫面清晰平滑,顯示流暢,可以同時疊加刻度線等矢量信息,能適應高速大容量的雷達回波數據。

圖1 高分辨率的雷達回波畫面

圖2 放大后的回波顯示效果
本文將CUDA技術和DirectX技術相結合,提出了一種高速雷達回波的顯示技術。該技術通過利用顯卡的并行化計算能力,將坐標轉換和余輝消隱等并行化程度高且計算量較大的操作都放在GPU中進行,從而提高了雷達回波的顯示速度,使得CPU可以專注于目標信息、地圖和刻度線信息等二次信息的繪制。該技術已在某場面監視雷達中得到應用,顯示畫面清晰流暢,支持縮放、漫游等顯示干預操作,能滿足60r/min高速雷達回波顯示的設計要求。
[1]劉揚.軟件化多功能雷達光柵顯示設備設計[J].雷達科學與技術,2008,6(3):206-209.
[2]程玉榮,劉忠義,劉鴻.基于動態數據表的實時高分辨率雷達回波顯示[J].系統仿真學報,2008,20(4):882-884.
[3]張鵬.一種基于OpenGL的雷達回波顯示方法 [J].艦船電子對抗,2011,34(3):39-42.
[4]謝永亮,湯曉迪,劉尚富,等.基于CUDA技術模擬雷達余輝的方法[J].微型機與應用,2011,30(8):61-63,66.
[5]王金波,察豪,劉峰.一種利用CUDA技術實現雷達余輝效果的方法[J].海軍工程大學學報,2012,24(3):103-106.