楊 杰 馬夢博 鐘何平
(1.海軍裝備部駐天津地區(qū)防救軍事代表室 天津 300042)(2.海軍工程大學海軍水聲技術研究所 武漢 430033)
合成孔徑聲納(Synthetic Aperture Sonar,SAS)是一種高分辨率成像聲納,其具有距離向分辨率高和方位向分辨率與距離無關的優(yōu)點,與常規(guī)的側掃聲納和多波束測深儀相比,分辨率高1~2個數量級,可以廣泛用于海底測量、水下考古、海底石油勘探和搜尋水下失落物體等,也能提高水雷的識別能力[1~5]。在合成孔徑聲納系統(tǒng)設計過程中,原始回波仿真是一個比不可少的環(huán)節(jié)[6~7],可通過仿真來預測設計的系統(tǒng)性能,驗證系統(tǒng)設計參數的合理性,避免造成錯誤設計所帶來的損失。常用的回波仿真方法主要有時域法[8~9]和頻域法[10~12]兩種。時域法主要是完全按照回波模型進行仿真,沒有進行任何近似,是最精確的仿真方法,其缺點是運算量極大,嚴重限制了其應用。頻域仿真方法與時域仿真方法相比,效率較高,但是降低了所生成的仿真回波精度。
隨機計算機技術的發(fā)展,多核計算已在多種應用領域取得顯著加速性能,它為快速原始合成孔徑聲納回波生成提供了一種有效手段。本文在共享內存環(huán)境下,采用Matlab并行編程方式實現(xiàn)了一種快速合成孔徑聲納回波仿真方法。首先給出了合成孔徑聲納回波仿真模型,然后在共享內存環(huán)境下設計了并行仿真方法,并通過試驗對并行回波仿真方法的正確性和效率進行了驗證。試驗結果表明:并行算法與串行算法相比,加速比高達3.74,并且其加速性能還會隨著計算平臺性能提升而提升。

圖1 合成孔徑聲納回波模型
圖1 直角坐標系中,合成孔徑聲納平臺沿著方位向運動,目標位于坐標(r,0)處,發(fā)射陣和N個接收子陣沿方位向排列,發(fā)射陣位于尾端,其位置為(0,vt)。為簡化處理,我們僅考慮一個接收子陣(取第i個接收子陣)的情況,此接收子陣與發(fā)射陣方位向相位中心間隔為Δhi,第i個接收子陣接收到的回波信號可表示為

其中Ri(t,r)=R1+R3為信號實際傳播路徑,其中去回程為s(τ)=rect(τT)為發(fā)射信號包絡,c為聲速,f0為信號中心頻率,k為信號調頻斜率。
對于多個點目標進行仿真時,需要在每個發(fā)射陣位置依次判斷每個點目標是否在波束照射范圍內。對于位于波束范圍內的點目標,計算其與每個接收陣之間的時延,將發(fā)射信號進行對應時延后疊加到對應子陣回波上。
Matlab的并行計算實質還是主從結構的分布式計算。初始化Matlab并行計算環(huán)境時,起始的Matlab進程自動成為主節(jié)點,同時初始化多個Matlab計算子節(jié)點,子節(jié)點個數通過參數指定。Matlab的并行計算架構主要依賴于并行計算工具箱(Parallel Computing Toolbox),為完成并行計算,Matlab提供了一系列的并行結構,其中最常用的為parfor循環(huán)結構,可方便用戶進行并行程序設計。為簡化用戶操作,Matlab隱藏了并行任務創(chuàng)建和管理的具體細節(jié),降低了用戶開發(fā)的難度,同時存在限制用戶靈活性的問題。
采用Matlab進行并行計算前,首先要調用parpool函數配置和開啟并行計算池。Matlab并行執(zhí)行parfor循環(huán)時,采用client和worker模式,其中client指啟動并行代碼的Matlab段,worker指并行運行代碼的Matlab段。Matlab在處理parfor代碼段時,它將任務分配給多個workers上并行執(zhí)行。假設worker的數量為m,循環(huán)的次數為n。如果兩者之比為整數,則剛好實現(xiàn)計算任務的均衡分配;否則,部分worker的計算任務會比較大,只能采用非均衡的計算任務分配方法。

圖2 并行回波仿真流程
基于Matlab的合成孔徑聲納原始回波仿真流程如圖2所示,具體步驟如下:
1)啟動Matlab,載入原始回波參數。
2)根據仿真回波參數開辟原始回波存儲空間。
3)調用matlabpool命令,啟動Matlab并行環(huán)境,并指定計算核數。
4)根據計算核數和仿真的原始回波在空間上的長度進行原始回波分塊,每一計算核負責不同分塊上的回波計算,該部分主要依靠parfor來實現(xiàn)。
5)將分塊計算的回波在進行拼接獲取完整的原始回波。
6)調用matlabpool close命令,釋放Matlab并行環(huán)境,并結束程序運行。
為了驗證并行合成孔徑聲納回波仿真方法性能,在如下計算環(huán)境進行了回波仿真試驗:處理器Intel(R)Xeon(R)CPU 3.3G(4核);內存8G;操作系統(tǒng)Windows 7專業(yè)版;軟件環(huán)境Matlab2015。
仿真試驗中采用了3個點目標,它們的相對位置如圖3所示,中心點位于(70m,0m),左邊點目標位于(60m,0m),右邊點目標位于(80m,0m)。仿真試驗參數如表1所示,中心頻率為150kHz,帶寬15kHz,脈寬10ms,陣長0.04m,載體速度1m/s,聲速1500 m/s,接收子陣10個,脈沖間隔為0.2s。串行回波仿真所得原始回波如圖4(a)所示,回波在方位向的長度隨距離而增加,并行回波仿真幅度如圖4(b)所示,可看出兩者結果一致。在驗證并行回波仿真算法效率前,我們先采用距離多普勒成像算法對仿真回波進行了成像試驗,圖5(a)為成像結果的幅度圖,其位置與仿真目標位置完全一致。點目標對應的距離和方位向剖面如圖5(b)所示,其旁瓣和分辨率都滿足成像要求,驗證了并行合成孔徑聲納回波仿真算法的正確性。

圖3 仿真目標點相對位置

表1 原始回波仿真參數

圖4 原始回波幅度圖

圖5 點目標成像結果
不同計算核數下回波信號仿真效率比較如表2所示。從表中可以看出,單核進行原始回波計算時,所需時間最長,為14.6s,在加速比計算過程中,以單核計算時間為參考,將其加速比設置為1。隨著計算核數增加,加速比顯著增加,計算核數分別為 2、3、4和 5時,加速比分別為 1.92、2.81、3.74、3.65。由于計算平臺總核數為4,因此當設置計算核數為5時,對效率提升沒有效果,反而效率略有下降。一般情況下,為達到最高加速比,應該將計算核數設置為計算平臺的核數。從回波仿真計算時間結果來看,采用并行計算方式后,合成孔徑聲納回波仿真效率得到顯著提升。

表2 回波仿真算法成像效率比較(s)
本文提出了一種基于Matlab的合成孔徑聲納回波并行仿真方法。首先給出了合成孔徑聲納回波仿真模型,然后在共享內存環(huán)境下基于Matlab進行了并行回波仿真方法設計,最后通過實驗驗證了并行回波仿真方法的正確性和高效性。隨著計算平臺計算性能的提升,計算核數增加,并行算法的加速性能在無需修改程序的情況下可得到進一步提升。