宋飛飛 許弋慧
中國船舶第七一五研究所,浙江杭州 310012
吊放聲納是海軍反潛直升機對水下目標進行探測的重要裝備,主要用于對潛艇的搜索、定位、識別及跟蹤[1]。吊放聲納根據(jù)接收的回波聲信號,采用多種算法獲取目標的參數(shù)信息,可以及時、準確地搜索指定海域內(nèi)的敵方潛艇[2]。
吊放聲納信號處理算法一般基于DSP(digital signal processing)實現(xiàn),但DSP價格高,開發(fā)周期長[3],在算法仿真及驗證階段,該方法存在一定的困難。仿真系統(tǒng)往往以通用CPU作為平臺,而普通CPU處理高速數(shù)據(jù)能力有限,本文著重研究了一種基于GSL科學計算庫的吊放聲納信號處理方法在CPU上的高效實現(xiàn)。仿真數(shù)據(jù)比對結果驗證了該方法的正確性和有效性。
吊放聲納發(fā)射某種形式的聲信號,在聲納作用距離內(nèi),發(fā)射脈沖在水中傳播,遇到某一目標,經(jīng)反射產(chǎn)生回波信號,水下基陣接收回波聲信號和背景噪聲[4]進行信號處理,獲取目標的距離、方位等信息。HFM雙曲調(diào)頻信號為常用的發(fā)射信號,其信號波形與頻譜如圖1所示。
HFM信號測量目標距離是通過接收回波與發(fā)射信號的時間差來計算[5],發(fā)射機發(fā)射HFM信號,一旦經(jīng)目標反射,接收機接收到回波信號,測得信號的往返時間差,對其取半即為單程時間差,通過距離計算公式得出:
其中,c ——聲速;
t ——信號往返時間差。
根據(jù)式(1)即可計算出目標距離。
吊放聲納對接收的目標回波信號進行處理,在波束形成結果中搜尋最大值,該最大值所在的波束角作為目標的粗方位。根據(jù)預成波束計算獲取標準測向表,利用最大值所在的波束號及其相鄰2個波束數(shù)據(jù)(共3個值)與標準測向表對應的值進行歐氏距離計算,如式(2)、式(3)所示。
其中,X(n0)、X(n0-1)、X(n0+1)——最大值所在波束號及其相鄰2個波束的數(shù)據(jù);
Δθ' ——設定的偏差角分值;
D1(Δθ')、D2(Δθ')——d1、d2的理論計算值(標準測向表對應的值)。
將歐氏距離r(Δθ')最小值所對應的標準測向表中的角度數(shù)作為修正量,粗方位+修正量即為該目標的方位。
信號處理算法通?;贒SP芯片來實現(xiàn),但DSP芯片價格高,開發(fā)周期長,因此,在算法仿真及驗證階段,使用該方法存在一定的困難?,F(xiàn)在CPU相較以前性能有了很大的提升,再借助一些科學計算庫,在CPU上就可高效實現(xiàn)吊放聲納信號處理算法。
GSL是專門為應用數(shù)學和科學技術領域的數(shù)值計算提供支持的軟件庫,該函數(shù)庫提供了廣泛的數(shù)學算法的實現(xiàn)函數(shù),提供超過1,000個函數(shù),這些函數(shù)包含的范圍有:復數(shù)計算、多項式求根、特殊函數(shù)、向量和矩陣運算、排列、組合、排序、線性代數(shù)、特征值和特征向量、快速傅立葉變換(FFT)、數(shù)值積分、隨機數(shù)生成、隨機數(shù)分布、統(tǒng)計、蒙特卡洛積分等。
吊放聲納信號處理中,F(xiàn)FT運算可調(diào)用GSL中的快速傅里葉模塊,分為3個步驟進行:首先,分配wavetable和workspace所需的空間;然后,調(diào)用函數(shù)gsl_fft_complex_forward;最后,釋放之前分配的空間。為方便使用,將這3個步驟封裝成一個函數(shù),代碼如下所示。
其中,函數(shù)gsl_fft_complex_forward的參數(shù)data為輸入輸出所共用,不利于后期軟件調(diào)試。因此,在封裝函數(shù)時分別定義了輸入輸出數(shù)組,并在調(diào)用函數(shù)gsl_fft_complex_forward前將輸入數(shù)組搬移至輸出數(shù)組,從而避免處理過程中輸入數(shù)組數(shù)據(jù)被覆蓋的問題。
吊放聲納信號處理中的復解調(diào)、降采樣低通濾波、頻域波束形成等運算可調(diào)用GSL的向量與矩陣模塊,涉及到的函數(shù)為向量相乘函數(shù)、向量搬移函數(shù)、向量求模函數(shù)等,根據(jù)各個函數(shù)的運算特點進行封裝即可使用。對函數(shù)進行封裝,不僅避免對GSL底層函數(shù)的直接調(diào)用,減少了開發(fā)人員的工作量,而且具有很好的移植性。
算法流程圖如圖2所示。首先,對吊放聲納回波信號進行復解調(diào),消除載波的影響;接著,對信號進行降采樣低通濾波,提高分辨率,減少運算量,降采樣濾波完成后,進行FFT變換,在頻域做波束形成、譜線選擇、匹配相關;最后,對其進行逆快速傅里葉變換(inverse fast fourier transform,IFFT)。通過以上運算可得到HFM信號處理結果,根據(jù)1.1節(jié)的目標距離測量和1.2節(jié)的目標方位測量原理所述,對HFM信號處理結果進行處理即可獲取目標距離和目標方位。
在Intel x86硬件平臺進行驗證,CPU為i7-4770,內(nèi)存為16 G,操作系統(tǒng)為Windows,開發(fā)工具為Visual Studio 2005。
在進行開發(fā)之前,VS2005需配置GSL開發(fā)環(huán)境,分3個步驟進行[3]:
(1)向Visual Studio C++項目代碼中添加GSL的包含文件目錄為gsl/include;
(2)在項目中增加GSL軟件庫文件libgsl.lib和libgslcblas.lib;
(3)在項目運行目錄中增加動態(tài)鏈接庫libgsl.dll和libgslcblas.dll。
設置2個模擬目標,目標1距離為3 km,方位為255°,目標2距離為5 km,方位為135°,仿真信號采用脈沖寬度為300 ms的HFM,信號處理結果如圖3所示。
圖中對應的縱坐標為目標距離,橫坐標為目標方位,從圖中可以看出,兩目標對應的距離、方位與預設值相符。其他預設值與測量值如表1所示。
表1 測量結果
由表1可以看出,預設值與實測值的誤差均在合理范圍之內(nèi),本文研究的基于GSL實現(xiàn)吊放聲納信號處理方法能正確且有效地估算出目標的參數(shù)信息。
對比基于DSP平臺的實現(xiàn)方法,基于GSL的實現(xiàn)方法具有以下幾個優(yōu)點:
1、代碼規(guī)模減少了約15%;
2、開發(fā)人員可以充分利用Visual Studio強大的調(diào)試功能降低調(diào)試難度,減少工作量,縮短開發(fā)周期;
3、可移植性,對GSL的庫函數(shù)進行二次封裝,通過不同的編譯宏隔離,對硬件平臺進行屏蔽。
本文對吊放聲納信號處理算法原理進行了簡單介紹,著重對GSL的設計思路和實現(xiàn)方法進行了說明。實驗結果表明,基于GSL信號處理算法的實現(xiàn)方法具有實用性,且在滿足算法仿真的正確性和有效性的前提下降低了利用DSP芯片開發(fā)的開發(fā)成本和周期,同時,也降低了直接利用CPU實現(xiàn)算法的運算時間,但該方法數(shù)據(jù)處理耗時較DSP平臺長,需進一步改進。