張 章張 磊
(1.寶雞職業(yè)技術(shù)學(xué)院機(jī)電信息學(xué)院 寶雞 721000)(2.陜西烽火通信集團(tuán)有限公司產(chǎn)品研究所 寶雞 721000)
雷達(dá)成像相比于常見的光學(xué)成像,具有全天時(shí)、全天候、遠(yuǎn)距離的成像優(yōu)勢(shì),可以大大提高雷達(dá)的信息獲取能力,特別是戰(zhàn)場感知能力。現(xiàn)在國外對(duì)戰(zhàn)場感知要求高的雷達(dá)都配有二維成像功能,因此,SAR已成為國內(nèi)外研究的熱點(diǎn)。隨著對(duì)成像、InSAR和GMTI等算法問題的深入研究,要大批符合特定條件下的大場景原始回波數(shù)據(jù),這些回波數(shù)據(jù)通過實(shí)測錄得,數(shù)據(jù)量太大,不太現(xiàn)實(shí),所以通過計(jì)算機(jī)仿真來模擬所需要的大場景回波數(shù)據(jù)是一個(gè)重要的方法。
計(jì)算機(jī)模擬回波數(shù)據(jù)時(shí),通常需要在一個(gè)地面分辨單元內(nèi)放置多個(gè)散射點(diǎn)來模擬整個(gè)場景的回波數(shù)據(jù),這樣就出現(xiàn)以下兩個(gè)問題。第一,仿真過程中每一個(gè)點(diǎn)的回波數(shù)據(jù)是以慢時(shí)間為周期循環(huán)產(chǎn)生的,當(dāng)仿真的散射點(diǎn)過多時(shí),仿真時(shí)間過長。第二,每臺(tái)計(jì)算機(jī)的內(nèi)存容量都是有限的,數(shù)據(jù)量過大會(huì)導(dǎo)致計(jì)算機(jī)內(nèi)存溢出而無法繼續(xù)仿真。當(dāng)仿真大場景回波數(shù)據(jù)時(shí),以上兩個(gè)問題就越發(fā)突出了,通常的仿真方法在單臺(tái)PC機(jī)上很難完成。目前通常的做法是采用利用集群系統(tǒng)[1],運(yùn)用BSP(Bulk Synchronous Parallel)計(jì)算模型,按照?qǐng)鼍胺纸獾姆椒ㄟM(jìn)行較大場景回波仿真,但該方法基于C語言,使用了MPI并行程序設(shè)計(jì)[2],而且生成的每個(gè)子場景的回波數(shù)據(jù)需要進(jìn)一步加和處理才能得到需要的整個(gè)大場景回波數(shù)據(jù),具體實(shí)現(xiàn)復(fù)雜,不易操作。
本文提出一種利用Matlab并行化運(yùn)算工具[3]和場景及數(shù)據(jù)矩陣劃分相結(jié)合的仿真方法,該方法能有效地解決上述問題完成大場景回波數(shù)據(jù)的仿真,且操作簡單,成本低。最后的仿真結(jié)果驗(yàn)證了本文方法的有效性和正確性。
SAR原始回波數(shù)據(jù)仿真能夠并行處理正是由其數(shù)據(jù)錄取方式?jīng)Q定的,下面先了解一下產(chǎn)生數(shù)據(jù)的基本方法,設(shè)雷達(dá)發(fā)射信號(hào)是線性調(diào)頻脈沖信號(hào)[4]:
式中,ar(·)為雷達(dá)線形調(diào)頻信號(hào)的窗函數(shù),aa(·)方位窗函數(shù)。
當(dāng)場景比較復(fù)雜時(shí),可以通過大量的點(diǎn)目標(biāo)來描述,設(shè)條帶內(nèi)點(diǎn)目標(biāo)的個(gè)數(shù)為M×N,合成孔徑時(shí)間為t0≤tm≤tn,所以回波信號(hào)模型為
基于回波生成原理,可以看出數(shù)據(jù)錄取在慢時(shí)間以及散射點(diǎn)上都是相對(duì)獨(dú)立的,所以在仿真大場景回波數(shù)據(jù)時(shí)可以將其分塊生成,這樣即避免內(nèi)存溢出,還可以利用并行運(yùn)算縮短仿真時(shí)間。這里本文采用Matlab并行計(jì)算模型(Distributed Computing Toolbox&Distributed Computing Engine)來對(duì)回波進(jìn)行并行仿真。Matlab并行計(jì)算模型只需若干臺(tái)PC機(jī)聯(lián)機(jī)即可,無須專門儀器設(shè)備,編程相對(duì)簡單。如果需要聯(lián)機(jī),任務(wù)分解時(shí),需要注意計(jì)算機(jī)與計(jì)算機(jī)之間數(shù)據(jù)交互傳輸量是有上限的。
基于信號(hào)模型,有兩種任務(wù)分解方法。
第一,基于場景的任務(wù)分解
設(shè)將場景按列分解成h塊,大小分別為N1,N2,…,Nh,N1+N2+…+Nh=N,則可分別產(chǎn)生h個(gè)大小相同的回波數(shù)據(jù)矩陣,矩陣的回波信號(hào)分別為
以上,就是整個(gè)場景的回波數(shù)據(jù)。
第二,基于慢時(shí)間的任務(wù)分解
我們知道,數(shù)據(jù)矩陣的方位向長度對(duì)應(yīng)于慢時(shí)間采樣點(diǎn),所以按慢時(shí)間分解任務(wù)也就是對(duì)數(shù)據(jù)矩陣做分塊處理。設(shè)將數(shù)據(jù)矩陣按列分為n塊,也就是將慢時(shí)間分為n段,即t0≤t1≤t2≤…≤tn-1≤tn,這樣,矩陣內(nèi)的回波信號(hào)為
這些矩陣可在并行計(jì)算的工作機(jī)中單獨(dú)生成,之后再按順序拼接起來,便可以得到整個(gè)場景的回波數(shù)據(jù)。
通過上面的分析,我們可以看出,第一種方法將場景分塊,不但可使主機(jī)向工作機(jī)傳輸?shù)囊淮螖?shù)據(jù)量降低,防止傳輸?shù)臄?shù)據(jù)量超過數(shù)據(jù)交互量的上限,而且還可以避免一次讀取整個(gè)場景矩陣數(shù)據(jù)量太大而造成得內(nèi)存溢出,但這樣做,增加了最后一步的求和運(yùn)算,效率相對(duì)較低;為了提高效率,可以采用第二種方法,將回波數(shù)據(jù)矩陣分塊分別在工作機(jī)中生成,這樣降低了工作機(jī)將生成的數(shù)據(jù)返回主機(jī)時(shí)的數(shù)據(jù)量,同時(shí)按順序接收子回波矩陣,可以接收一塊,存儲(chǔ)一塊,從而有效避免了內(nèi)存不足問題,但這種方法相當(dāng)于是將整個(gè)場景一次傳輸,如果場景太大超過數(shù)據(jù)交互上限時(shí),會(huì)造成交互失敗。在仿真大場景時(shí),其場景非常大,回波數(shù)據(jù)矩陣也非常大,以上兩種方法均不能滿足仿真需求,我們可以將兩種方法結(jié)合起來分解任務(wù),每一個(gè)任務(wù)仿真如式(6)的回波信號(hào),最后,將所有的任務(wù)回收、加和、拼接,得到大場景原始回波數(shù)據(jù)。
下面我們定量的分析一下這樣做的優(yōu)點(diǎn),設(shè)Nr為距離向采樣點(diǎn)數(shù),其中Na為距離向采樣點(diǎn)數(shù)Namp_r為場景在距離向的點(diǎn)數(shù),Namp_a為場景在方位向上的點(diǎn)數(shù),Dt為一個(gè)浮點(diǎn)數(shù)占用的字節(jié)數(shù),Cf為一個(gè)目標(biāo)點(diǎn)的計(jì)算量,所以對(duì)一臺(tái)計(jì)算機(jī)而言在數(shù)據(jù)量方面按場景劃分為2Dt Na Nr,按慢時(shí)間劃分為 2Dt Na Nr/Nmatrix,本文的方法為2Dt Na Nr/Nmatrix,在計(jì)算量方面按場景劃分為Namp_a Namp_r Cf/Namp,按慢時(shí)間劃分為Namp_a Namp_r Cf,本文的方法為Namp_a Namp_r Cf/Namp,其中,Nmatrix、Namp分別為回波矩陣分塊數(shù)以及場景分塊數(shù)。從上面可以看出在數(shù)據(jù)量,計(jì)算量方面,本位的方法都是最優(yōu)的,可以大幅減少單機(jī)的數(shù)據(jù)量、計(jì)算量,從而加快仿真速度,避免內(nèi)存不足,使大場景仿真成為可能。具體仿真流程如下。
在仿真真實(shí)場景回波數(shù)據(jù)時(shí),采用已有的實(shí)測數(shù)據(jù)圖像作為所產(chǎn)生回波的地面散射點(diǎn),并在其中加入高程信息,在每個(gè)散射點(diǎn)上加入距離向及方位向上的隨機(jī)偏移量,使其更接近真實(shí)地面的散射點(diǎn)分布。如流程圖1所示,首先對(duì)慢時(shí)間分塊,在一段慢時(shí)間內(nèi),再對(duì)場景分塊,將一段慢時(shí)間內(nèi)一塊場景要產(chǎn)生的回波劃分為并行工作的一個(gè)任務(wù),分配給一個(gè)工作機(jī)產(chǎn)生回波數(shù)據(jù),這里對(duì)于整個(gè)任務(wù)劃分有一個(gè)排序問題,本文是按慢時(shí)間塊為大體順序,場景塊為內(nèi)部順序排列的,也就是說第一個(gè)任務(wù)為第一塊慢時(shí)間的第一個(gè)子場景,第二個(gè)任務(wù)為第一塊慢時(shí)間的第二個(gè)子場景,當(dāng)所有子場景都遍歷一遍后開始對(duì)第二段慢時(shí)間分配任務(wù)。這樣做可避免回收數(shù)據(jù)時(shí)主機(jī)由于數(shù)據(jù)量過大而引起的內(nèi)存溢出。依據(jù)上述方法分配任務(wù),回波數(shù)據(jù)也按此順序生成,這樣主機(jī)也即可按順序先回收第一段慢時(shí)間上所有場景的回波數(shù)據(jù),將回波數(shù)據(jù)矩陣加和后(此即為此段慢時(shí)間內(nèi)的仿真數(shù)據(jù))保存在硬盤中,并清空內(nèi)存(clear),再產(chǎn)生下一個(gè)慢時(shí)間塊的數(shù)據(jù)直至回波數(shù)據(jù)全部產(chǎn)生保存,這樣就生成了大場景的原始回波數(shù)據(jù)。
從以上流程可以看出,任務(wù)劃分解決了仿真大場景時(shí)PC機(jī)內(nèi)存不足的問題,并行計(jì)算解決了大場景回波仿真時(shí)間過長的問題,從而使大場景SAR原始回波數(shù)據(jù)仿真成為可能。
實(shí)驗(yàn)系統(tǒng)采用7臺(tái)普通計(jì)算機(jī),一臺(tái)作為主機(jī),收發(fā)保存數(shù)據(jù),6臺(tái)作為工作機(jī),并行計(jì)算回波數(shù)據(jù),配置為Pentium(R)4 CPU 3.0GHz,1GB內(nèi)存,計(jì)算機(jī)之間通過百兆以太網(wǎng)連接,場景大小為800×5000個(gè)點(diǎn)目標(biāo),雷達(dá)脈沖重復(fù)頻率為2000Hz。
場景分塊個(gè)數(shù)為Namp=(Namp_r×Namp_a)/Ntra_max,Ntra_max為主機(jī)與工作機(jī)之間的傳輸上限?;夭ň仃嚪謮K個(gè)數(shù)為Nmatrix=(Nr×Na×Nantenna)/Ntra_max,Nantenna為一發(fā)多收時(shí)接收天線的個(gè)數(shù)。通過計(jì)算可知實(shí)驗(yàn)系統(tǒng)Namp=12,Nmatrix=9。
圖2是用上述方法得到的大場景SAR回波數(shù)據(jù)仿真結(jié)果,每一塊子矩陣為整個(gè)場景在這一段慢時(shí)間內(nèi)產(chǎn)生的回波數(shù)據(jù),通過這9塊數(shù)據(jù)可以大體看出這塊場景的回波形狀。圖3為不同工作計(jì)算機(jī)數(shù)目下產(chǎn)生回波所用時(shí)間的曲線,在任務(wù)劃分方式不變(即Namp=12,Nmatrix=9)的情況下,一臺(tái)計(jì)算機(jī)用時(shí)220.4h,三臺(tái)計(jì)算機(jī)用時(shí)75.6h,六臺(tái)計(jì)算機(jī)用時(shí)38.9h,基本符合Tn=T1/n這一原則,這里Tn為n臺(tái)計(jì)算機(jī)所用時(shí)間。而對(duì)于內(nèi)存使用,取決于場景與回波矩陣的分塊數(shù)量,數(shù)量越多內(nèi)存占用率越少,但這里注意如果分塊數(shù)量太多會(huì)使計(jì)算機(jī)之間的數(shù)據(jù)傳輸花費(fèi)很長的時(shí)間,嚴(yán)重影響數(shù)據(jù)產(chǎn)生的效率,所以在保證內(nèi)存不溢出的情況下合理的分配任務(wù),才能實(shí)現(xiàn)較高的數(shù)據(jù),產(chǎn)生效率。
圖3 工作計(jì)算機(jī)臺(tái)數(shù)與仿真時(shí)間關(guān)系
圖4 仿真回波數(shù)據(jù)成像結(jié)果
通過仿真可知,利用場景劃分和并行化運(yùn)算相結(jié)合的方法產(chǎn)生大場景SAR原始回波數(shù)據(jù),可以充分解決由于PC機(jī)內(nèi)存不足引起的無法仿真問題以及仿真時(shí)間過長問題。
本文基于場景劃分和并行化運(yùn)算尋找到一種在普通計(jì)算機(jī)上進(jìn)行大場景SAR原始回波數(shù)據(jù)仿真的方法,仿真實(shí)驗(yàn)證明本方法可大大縮短仿真時(shí)間,降低內(nèi)存使用量,且成本低實(shí)現(xiàn)簡單,易操作,是可行的、高效的。