(海軍工程大學電子工程學院 武漢 430033)
合成孔徑聲納(Synthetic Aperture Sonar,SAS)是一種高分辨率水下成像聲納,基本原理是[1~3]:利用小尺寸基陣沿空間勻速直線運動來合成大孔徑基陣,獲得不依賴于距離和波長大小的高方位向分辨率圖像。SAS被廣泛應用在海底地形測繪、海洋地質考察、沉底物打撈以及水雷的探測和識別。隨著SAS成像技術的發(fā)展和實際應用需求,對回波數據實時處理的要求也越來越迫切。由于SAS成像算法本身的復雜性和數據量大,傳統的處理方式難以滿足實時成像的要求,采用并行技術是實現高性能SAS成像的必經之路。文獻[4]中指出,RD[5]算法能夠兼顧成熟、簡單、高效和精確等因素,至今仍是使用最廣泛的成像算法。本文首先給出了多子陣[9]合成孔徑聲納的RD算法,然后研究了基于GPU 的RD成像算法的并行處理方法。
假定發(fā)射信號為線性調頻信號,易知多子陣合成孔徑聲吶第i個接收陣在距離為r處的點目標的回波信號基帶形式[9]可寫為

式中A0為幅度函數,可視為常數,ωa(·)為方位向包絡函數,k為發(fā)射信號調頻斜率,c為聲速,f0為信號中心頻率,R0(t,r)為延時距離誤差。
首先對式(1)距離向快變時間和方位向慢變時間作傅立葉變換,進入fr-fa域:

其中A2為常數,Wr(·)為距離頻譜包絡,Wa(·)為方位頻譜包絡,fr為距離向瞬時頻率,fa為方位向瞬時頻率,Δhi表示為第i接收子陣中心與發(fā)射陣中心的間距。
將上述公式中的根式對fr做泰勒展開并舍棄二次以上項[8]并作距離向進行反傅立葉變換,進入RD 域:

這里ks為距離多普勒域新的距離調頻率,D=
從式(5)中可以發(fā)現,第一項為方位調制項,它包含兩部分內容:方位脈壓函數φa1和方位走動函數φa2。

第二項為距離彎曲項,時間徙動量為Δτ:

其中Δτi為停走停近似及各個接收陣接收路徑不同造成的延遲誤差,與方位向無關,因而可以在距離脈壓后的回波數據中分別予以補償。
式(5)第三項為停走停近似及不同接收陣引入的固定相位φi,也與方位向無關,也可以在各接收陣回波數據中分別予以補償。

式(5)最后一項為只與各接收陣的方位位置有關的相位項,其物理意義可表征為各接收陣數據方位向的間隔為Δhi/2順序排列。
至此完成了多接收陣的距離多普勒算法,其流程圖如圖1所示。

圖1 多接收陣RD 成像算法流程圖
CUDA 采用了統一處理架構,降低了編程的難度,并且NVIDIA GPU 引入了片內共享存儲器,提高了效率。這兩項改進使CUDA 架構更加適合進行GPU 通用計算。CUDA 中線程按照兩個層次進行組織、共享存儲器和柵欄同步[6]。這些關鍵特性使得CUDA 擁有了兩個層次的并行:線程級并行實現的細粒度數據并行,任務級并行實現的粗粒度并行。
CUDA編程模型是將CPU 作為主機端(Host),將GPU 作為設備端(Device),同時在一個系統中可以存在一個主機和多個設備或者多個主機和多個設備[7],即GPU 集群。CUDA 程序的核心是內核(Kernel)函數,其在設備端執(zhí)行并通過主機端調用,主要任務是完成數據的并行處理。一個完整的CUDA程序是由若干個運行在Device端的Kernel函數并行處理步驟和Host端的串行處理步驟共同組成。在主機端調用時需要設置內核函數的執(zhí)行參數。執(zhí)行參數設置主要是指線程塊、線程網格維度的設計、共享存儲空間的分配以及流的設計等。
本文選擇RD 算法進行SAS的成像[9],首先對距離進行脈沖壓縮,再進行距離徙動校正,然后進行方位向脈沖壓縮。距離脈壓和方位脈壓在這里使用頻域匹配濾波實現,主要涉及的是傅里葉變換、向量和矩陣的點乘和逆傅里葉變換。在CUDA中包含了CUFFT 庫,可以利用CUFFT 庫實現傅里葉變換[10]和逆傅里葉變換在GPU 上的并行計算。然后,通過編寫的核函數實現向量和矩陣的點乘和轉置運算。具體算法流程如圖2所示。

圖2 基于CUDA 的RD 成像并行算法流程圖
利用CUDA開發(fā)的RD成像算法實現流程如下:
1)將回波數據和參數傳入到顯存。
2)調用CUFFT 庫實現距離向的傅里葉變換并行運算,同時計算距離匹配函數、方位匹配函數和距離徙動參數。
3)編寫的點乘核函數實現距離向數據和距離匹配函數的點乘,然后調用CUFFT 庫并行實現距離向的逆傅里葉變換,完成距離向脈沖壓縮。
4)利用距離徙動參數在GPU 上實現距離徙動校正,然后用核函數實現數據的并行轉置。
5)調用CUFFT 庫實現方位向數據的傅里葉變換,然后用點乘核函數實現與方位匹配函數的點乘,最后調用CUFFT 庫并行實現方位向的逆傅里葉變換,完成方位向脈沖壓縮。
6)將圖像數據傳回主機端。
為了驗證本文所提出的SAS成像方法的有效性,本文進行了五個點的SAS 成像仿真實驗。本實驗采用的計算機CPU 為Intel(R)G840CPU 雙核2.8G,內存4G,顯卡為GeForce 210,顯存為1G,運算能力為1.2,運算精度為單精度。軟件使用的是Windows XP下的CUDA 4.0.和VS2008。數據來源于合成孔徑聲納接收回波的計算機仿真。仿真參數如表1所示。

表1 SAS信號仿真參數
針對不同數據大小的回波,在CPU 和GPU 上分別進行RD成像仿真效率的比較,其結果如表2所示。

表2 CPU 和GPU 上RD 算法效率比較
從表2的計算效率比較結果可以看出,隨著原始回波數據量的增加,并行RD 算法的加速比也在逐步增加,可見對于高維數的SAS回波,更能夠體現并行算法的優(yōu)勢。
圖3和圖4分別是RD 算法在GPU 和CPU上局部放大后的1024×1024個復數成像的結果。

圖3 GPU 成像結果

圖4 CPU 成像結果
從圖3和圖4可以看出,基于GPU 的仿真結果和基于CPU 的仿真結果在成像結果上的一致性,但是從表2可以看出兩者的運算速度卻有明顯的差距。
由測試的結果可以知道,基于GPU 的RD成像算法,具有較高的效率,能夠滿足實時成像的要求。
本文設計了基于GPU 的SAS成像并行算法,并對該并行成像算法進行了計算機仿真,驗證了算法的可行性和高效性。實驗結果表明,基于CUDA開發(fā)出來的SAR 成像并行算法,實現了實時成像,可滿足下一步處理的需要。
[1]張學波,唐勁松,張森,等.多接收陣合成孔徑聲納線頻調變標成像算法[J].系統工程與電子技術,2013,35(7):1415-1420.
[2]張學波,唐勁松,鐘何平.合成孔徑聲納多接收陣數據融合CS成像算法[J].哈爾濱工程大學學報,2013,34(2):240-244.
[3]楊海亮,張森,唐勁松.寬測繪帶多接收陣合成孔徑聲納成像處理方法[J].系統仿真學報,2011,23(7):1424-1428.
[4]禹衛(wèi)東.合成孔徑雷達信號處理研究[D].南京:南京航空航天大學博士論文,1997.
[5]保錚,邢孟道,王彤.雷達成像技術[M].北京:電子工業(yè)出版社,2006.
[6]張舒,諸艷利.GPU 高性能運算之CUDA[M].北京:水利水電出版社,2009.
[7]桑德斯(美).GPU 高性能編程CUDA 實戰(zhàn)[M].聶雪軍,等譯.北京:機械工業(yè)出版社,2011.
[8]Cumming I G,Wong F H.合成孔徑聲納雷達成像-算法與實現[M].洪文,等譯.北京:電子工業(yè)出版社,2007,10.
[9]楊海亮.多接收陣合成孔徑聲納成像算法研究[J].博士論文.海軍工程大學,2009.
[10]趙麗麗,張勝兵,張萌,等.基于CUDA 的高速FFT 計算[J].計算機應用研究,2011,28(4):1556-1559.