郭 濤 祝明波 陳 麒 梁佐堂
(1.海軍航空大學(xué)電子信息工程系 煙臺(tái) 264001)(2.海軍航空大學(xué)研究生管理大隊(duì) 煙臺(tái) 264001)
合成孔徑雷達(dá)(Synthetic Aperture Radar,SAR)具有全天時(shí)、全天候的觀測(cè)能力,對(duì)于海洋環(huán)境監(jiān)測(cè)、航海安全、漁業(yè)管理以及海面目標(biāo)的檢測(cè)、監(jiān)視與識(shí)別等方面的研究發(fā)揮著重要作用[1~3]。但是,SAR系統(tǒng)受到各種因素的制約,如探測(cè)環(huán)境、系統(tǒng)參數(shù)、目標(biāo)特性變化等,無(wú)法獲取滿(mǎn)足任意條件下的實(shí)測(cè)數(shù)據(jù),且測(cè)試代價(jià)大、可擴(kuò)展性和數(shù)據(jù)靈活性差[4]。對(duì)海面艦船目標(biāo)進(jìn)行成像模擬解決了SAR系統(tǒng)無(wú)法獲取任意條件下海面艦船SAR圖像的問(wèn)題,在海上目標(biāo)識(shí)別、判讀人員訓(xùn)練、SAR系統(tǒng)設(shè)計(jì)優(yōu)化與性能評(píng)估等應(yīng)用中充分發(fā)揮其優(yōu)勢(shì)。
本文采用基于回波信號(hào)的模擬方法對(duì)海面艦船進(jìn)行SAR成像仿真。介紹了海面艦船SAR成像信號(hào)級(jí)模擬流程,分析其數(shù)據(jù)運(yùn)算的特點(diǎn)。分別基于Microsoft Visual C++(以下簡(jiǎn)稱(chēng)VC++)與Matlab兩種開(kāi)發(fā)環(huán)境,利用C和Matlab兩種編程語(yǔ)言實(shí)現(xiàn)海面艦船SAR成像仿真,對(duì)這兩種編程方法進(jìn)行對(duì)比研究。
為實(shí)現(xiàn)海面艦船SAR成像信號(hào)級(jí)模擬,需構(gòu)建精細(xì)的艦船和時(shí)變動(dòng)態(tài)海面三維復(fù)合模型,進(jìn)行面元的劃分;分析電磁波與隨時(shí)間演進(jìn)的海面及艦船之間的相互作用機(jī)理,通過(guò)電磁計(jì)算方法得到海面和艦船的電磁散射模型;分析海面與艦船復(fù)雜的電磁耦合機(jī)制引起的多徑效應(yīng),構(gòu)建多徑效應(yīng)模型;對(duì)復(fù)合模型進(jìn)行消隱處理,計(jì)算得到復(fù)合模型的后向散射系數(shù);根據(jù)系統(tǒng)參數(shù)進(jìn)行SAR回波模擬,生成原始回波信號(hào);通過(guò)成像算法處理回波數(shù)據(jù),獲得SAR仿真圖像,實(shí)現(xiàn)海面艦船SAR成像信號(hào)級(jí)模擬[5~6]。其流程如圖1所示。
圖1 海面艦船SAR成像信號(hào)級(jí)模擬流程圖
本文中,海面模型采用雙線性疊加法建立,其海譜模型采用雙尺度模型。其波面高度表示為
式中,ζ(x,y,t)為(x,y)位置在t時(shí)刻的波點(diǎn)高度,aij為振幅,ki為波數(shù),θj為波向,ωi為角頻率,εij為初始相位。波數(shù)與角頻率的關(guān)系由色散公式確定。振幅滿(mǎn)足瑞利分布,可由雙尺度海譜模型來(lái)計(jì)算。
對(duì)海面艦船模型進(jìn)行遮擋判斷時(shí),采用Z-Buffer算法,比較同一電磁波射線上所穿過(guò)的面元同雷達(dá)的距離值,做陰影判斷。因此,需要遍歷所有面元進(jìn)行比較計(jì)算。利用物理光學(xué)法和電磁散射計(jì)算得到各個(gè)面元的后向散射系數(shù)后,生成模擬回波。設(shè)方位向采樣點(diǎn)有M個(gè),每個(gè)采樣點(diǎn)內(nèi)在距離向上發(fā)射N(xiāo)個(gè)脈沖串,對(duì)K個(gè)理想點(diǎn)目標(biāo)進(jìn)行采樣后,其回波數(shù)據(jù)為一M×N矩陣?;夭x散后可表示為:
式中Sr為回波矩陣,σ為目標(biāo)模型的后向散射系數(shù)矩陣,C為電磁波傳播速度,λ為電磁波波長(zhǎng),Tr為脈沖持續(xù)時(shí)間,Tsar為合成孔徑時(shí)間。R、x(k)分別為目標(biāo)面元到雷達(dá)的斜距和在參考坐標(biāo)系中方位向坐標(biāo)。
由此可見(jiàn),海面艦船SAR成像模擬的數(shù)據(jù)類(lèi)型大部分是浮點(diǎn)型,數(shù)據(jù)的運(yùn)算大部分為大規(guī)模的矩陣運(yùn)算以及多層循環(huán)計(jì)算,其中矩陣運(yùn)算主要是點(diǎn)乘以及求和運(yùn)算。因此,其數(shù)據(jù)運(yùn)算的特點(diǎn)屬于循環(huán)和浮點(diǎn)運(yùn)算密集型。
由于海面艦船SAR成像模擬中含有大量矩陣運(yùn)算,因此,常常利用以矩陣為運(yùn)算基本單元的Matlab平臺(tái)實(shí)現(xiàn)成像仿真。而對(duì)于軟件的開(kāi)發(fā),則往往采用VC++集成開(kāi)發(fā)環(huán)境,這樣能夠提高應(yīng)用程序的設(shè)計(jì)效率,便于軟件的維護(hù)、升級(jí)。此外,VC++的代碼執(zhí)行效率比Matlab高。
Matlab是由Mathworks軟件開(kāi)發(fā)公司設(shè)計(jì)的一款計(jì)算軟件,其運(yùn)算的基本數(shù)據(jù)元素是沒(méi)有維數(shù)限制的陣列,使得用戶(hù)可以解決許多包含了矩陣和向量的公式計(jì)算的工程技術(shù)上的問(wèn)題[7~9]。它主要面對(duì)科學(xué)計(jì)算、可視化以及交互式程序設(shè)計(jì)的計(jì)算環(huán)境[10]。其Matlab語(yǔ)言是一種解釋性語(yǔ)言,語(yǔ)法規(guī)則簡(jiǎn)單、容易掌握、調(diào)試方便,具有強(qiáng)大、便捷的數(shù)學(xué)運(yùn)算和圖形、圖像處理功能。
Microsoft Visual C++是Microsoft公司推出的C++開(kāi)發(fā)工具,具有集成開(kāi)發(fā)環(huán)境,可以提供C、C++以及C++/CLI等編程語(yǔ)言。它包括Microsoft的代碼優(yōu)化技術(shù)、強(qiáng)大的GUI功能和復(fù)雜的資源編輯器,應(yīng)用程序的設(shè)計(jì)效率高,開(kāi)發(fā)系統(tǒng)執(zhí)行速度快,實(shí)時(shí)性好。具有接口友好、易維護(hù)和升級(jí)等優(yōu)點(diǎn)[11~13]。但是相對(duì)于 Matlab 缺乏對(duì)大量數(shù)據(jù)處理和分析、數(shù)據(jù)可視化分析方面的能力[14]。
Visual Studio 2010是由微軟公司研發(fā)的一套基于組件的開(kāi)發(fā)工具構(gòu)成,是一套完整的開(kāi)發(fā)工具。將Visual Basic、Visual C#和Visual C++集成到了同一開(kāi)發(fā)環(huán)境[15~17]。安裝完 Visual Studio 2010后,在第一次運(yùn)行中即可選擇VC++開(kāi)發(fā)設(shè)置,即可進(jìn)入VC++開(kāi)發(fā)環(huán)境。本文中所進(jìn)行的測(cè)試,均在CORSAIR 900D上進(jìn)行,操作系統(tǒng)為Windows7旗艦版64bit、內(nèi)存8GB、處理器為Intel(R)Xeon(R)CPU E3-1230 v3@3.30GHz。測(cè)試的軟件平臺(tái)為Matlab R2014和Visual Studio 2010。
通過(guò)第2節(jié)分析可知,海面艦船SAR成像模擬的數(shù)據(jù)類(lèi)型大部分是浮點(diǎn)型,且運(yùn)算中含有大量循環(huán)。因此,通過(guò)式(3)來(lái)對(duì)Matlab和C執(zhí)行效率進(jìn)行比較。
上述公式中,循環(huán)次數(shù)N隨之n指數(shù)增大,每次循環(huán)進(jìn)行一次浮點(diǎn)運(yùn)算,并不涉及大容量?jī)?nèi)存的存取,適合測(cè)試程序的浮點(diǎn)運(yùn)算速度和執(zhí)行循環(huán)的效率。測(cè)試結(jié)果如表1所示。
表1 Matlab與C執(zhí)行效率對(duì)比
計(jì)算平均耗時(shí)數(shù)據(jù)時(shí),取算法中的n=25。由上表數(shù)據(jù)可得,C語(yǔ)言在浮點(diǎn)運(yùn)算和循環(huán)次數(shù)多的算法中代碼的執(zhí)行效率比Matlab高,大約是Matlab的4.35倍。
根據(jù)SAR成像工作原理,通過(guò)Matlab和C語(yǔ)言編寫(xiě)實(shí)現(xiàn)點(diǎn)目標(biāo)的回波仿真,隨著點(diǎn)目標(biāo)的數(shù)量的增加,比較兩種編程語(yǔ)言在點(diǎn)目標(biāo)進(jìn)行SAR成像仿真時(shí)的執(zhí)行效率。其耗時(shí)結(jié)果如圖2所示。
圖2 點(diǎn)目標(biāo)仿真下Matlab與C的耗時(shí)對(duì)比
由上圖可知,隨著成像區(qū)域點(diǎn)目標(biāo)個(gè)數(shù)的增加,點(diǎn)目標(biāo)成像仿真的時(shí)間呈線性增長(zhǎng)。由C語(yǔ)言編寫(xiě)實(shí)現(xiàn)點(diǎn)目標(biāo)SAR成像仿真的代碼執(zhí)行效率相對(duì)于Matlab所編寫(xiě)的要高,且目標(biāo)點(diǎn)數(shù)越多,C語(yǔ)言實(shí)時(shí)性好的優(yōu)勢(shì)越明顯。
本文利用3DMAX軟件構(gòu)建艦船模型,同由雙尺度模型生成的海面模型復(fù)合成目標(biāo)模型;對(duì)目標(biāo)模型進(jìn)行遮擋判斷、消隱處理;利用物理光學(xué)法求解目標(biāo)模型的后向散射系數(shù);配置SAR系統(tǒng)參數(shù),生成模擬回波,通過(guò)成像算法處理回波獲得SAR圖像。其計(jì)算量主要在海面生成、艦船與海面復(fù)合模型的遮擋判斷以及回波生成這幾個(gè)方面。因此,將從這三個(gè)方面出發(fā),對(duì)Matlab與C的耗時(shí)進(jìn)行對(duì)比實(shí)驗(yàn)。仿真的海面場(chǎng)景大小為200m×300m,仿真的像素點(diǎn)數(shù)為512×1024個(gè),其結(jié)果如表2所示。
表2 海面艦船SAR成像仿真兩種語(yǔ)言耗時(shí)對(duì)比
由表中數(shù)據(jù)可知,海面艦船SAR成像仿真過(guò)程中消隱處理和回波生成耗時(shí)多,占總仿真時(shí)間約98%。并且在海面生成、消隱處理實(shí)現(xiàn)及回波計(jì)算上C語(yǔ)言執(zhí)行效率明顯占優(yōu)勢(shì)。在海面艦船SAR成像仿真的總耗時(shí)上,C語(yǔ)言編程大約是Matlab編程的5.70%。
在本節(jié)分別從執(zhí)行效率上、點(diǎn)目標(biāo)SAR成像仿真和海面艦船SAR成像仿真三個(gè)層次,對(duì)Matlab與C兩種編程語(yǔ)言進(jìn)行了仿真實(shí)驗(yàn),對(duì)比分析得出結(jié)論?;赩C++開(kāi)發(fā)環(huán)境實(shí)現(xiàn)海面艦船SAR成像仿真的執(zhí)行效率比Matlab高,C語(yǔ)言實(shí)現(xiàn)的海面艦船SAR成像仿真比Matlab所實(shí)現(xiàn)的實(shí)時(shí)性更好。
本文介紹并分析了信號(hào)級(jí)海面艦船SAR仿真的過(guò)程以及數(shù)據(jù)運(yùn)算特點(diǎn),介紹了Matlab和VC++開(kāi)發(fā)環(huán)境。通過(guò)Matlab和C編程實(shí)現(xiàn)了信號(hào)級(jí)海面艦船SAR成像仿真。經(jīng)過(guò)仿真實(shí)驗(yàn)對(duì)比分析,得出結(jié)論。
基于Matlab實(shí)現(xiàn)海面艦船SAR成像模擬,有以下幾方面優(yōu)勢(shì)。
1)數(shù)據(jù)結(jié)構(gòu)。Matlab的基本數(shù)據(jù)結(jié)構(gòu)是矩陣,對(duì)矩陣具有強(qiáng)大處理能力,而SAR成像模擬的計(jì)算過(guò)程大部分是對(duì)矩陣進(jìn)行運(yùn)算,因此,相對(duì)于采用只支持標(biāo)量和非交互式的編程語(yǔ)言(如C語(yǔ)言)實(shí)現(xiàn)起來(lái)更為方便。
2)豐富的數(shù)學(xué)函數(shù)庫(kù)。Matlab中包含了大量的計(jì)算函數(shù),如成像處理算法中所用的Fourier變換和Inverse Fourier變換等,可以方便編程實(shí)現(xiàn)一些復(fù)雜的數(shù)學(xué)表達(dá)式。
3)強(qiáng)大的圖形圖像處理功能。Matlab具有數(shù)據(jù)可視化和圖像處理功能,為用戶(hù)提供了非常豐富的用于數(shù)據(jù)可視化的函數(shù),很好地滿(mǎn)足了SAR成像模擬的結(jié)果數(shù)據(jù)可視化需求。
基于VC++實(shí)現(xiàn)海面艦船SAR成像模擬,有以下幾方面優(yōu)勢(shì)。
1)代碼的執(zhí)行效率高。C語(yǔ)言是較低級(jí)的語(yǔ)言,程序生成的代碼質(zhì)量高,程序執(zhí)行效率高,一般只比匯編程序生成的目標(biāo)代碼效率低10-20%。在同一量級(jí)的循環(huán)次數(shù)下,C比Matlab的代碼執(zhí)行效率要高。海面艦船SAR成像模擬中數(shù)據(jù)的運(yùn)算存在多層的大量的循環(huán),在實(shí)時(shí)性方面,C比Matlab有優(yōu)勢(shì)。
2)結(jié)構(gòu)式的語(yǔ)言。C語(yǔ)言是結(jié)構(gòu)式的語(yǔ)言,程序的各個(gè)部分除了必要的信息交流外彼此獨(dú)立,使得程序?qū)哟吻逦阌谑褂?、維護(hù)。
因此,對(duì)于SAR成像實(shí)時(shí)性要求較高的條件下,應(yīng)該選擇C語(yǔ)言編程。此外,基于VC++開(kāi)發(fā)環(huán)境便于實(shí)現(xiàn)軟件開(kāi)發(fā)、維護(hù)、升級(jí),但是在數(shù)據(jù)可視化實(shí)現(xiàn)上繁瑣。而Matlab具有強(qiáng)大的圖形圖像處理功能,編程語(yǔ)言簡(jiǎn)單,容錯(cuò)性好,操作相對(duì)容易,對(duì)于SAR成像實(shí)時(shí)性要求不高的條件下,可以選擇Matlab進(jìn)行編程。