專利名稱:一種基于fpga的水下實時成像方法及系統的制作方法
技術領域:
本發明涉及現場可編程邏輯陣列(Field Programmable Gate Array,FPGA)技術,水聲信號處理技術和高性能并行計算技術,特別是ニ維前視成像聲納的實時波束形成處理,具體涉及ー種基于FPGA的水下實時成像方法及系統。
背景技術:
ニ維前視成像聲納的波束形成技術是水聲信號處理中實現水下成像的一種常見信號處理方式,為了提高成像精度和質量,往往選用頻率較高的信號作為聲納的發射信號,在接收端使用大規模的接收換能器,這些因素使得處理系統的采樣頻率和數據通道數都不斷提升,需要處理的數據量也隨之増大。在實際應用中,實現大規模的實時波束形成從而對水下環境進行成像已成為了難點技木。
在信號處理量不大時或實時性要求不高時,實現水下成像的相關算法時往往使用數字信號處理器(Digital Signal Processor, DSP)。DSP具有較為成熟的技術,通過編寫軟件就可以實現各種算法,但其內部的硬件結構為不可改變的通用結構,使得其計算效能往往不高。目前為了實現高性能的實時處理,也有使用多DSP并行的方式,這種方法雖然可以解決計算性能的問題,但在硬件規模、能量消耗都有較大的開銷,使得系統的效能較低。目前FPGA技術發展迅速,單片FPGA已經可以提供數以兆計算的邏輯單元數量,其單片的姆秒乘加運算次數遠遠超越了 DSP的水平。此外受益于片上可編程系統(System OnProgrammable Chip, S0PC)技術的發展,FPGA中嵌入了大量了輔助模塊,如高速串行接ロ,DSP硬核等等。FPGA的可編程內部硬件結構十分適合實現如波束形成這種并行規模大的計算,雖然開發難度高于DSP,但其處理速度和效率都要高于DSP。現有技術已有使用FPGA作為該類運算處理器的趨勢,并已有了一些應用和成果。但多為被動聲納的非實時波束形成算法或是主動側掃聲納的實時成像算法(側掃聲納用于航行器側面水域的探測)且使用大量的片外數據緩存,這樣會導致開發成本的大大提高,目前還缺乏對基于FPGA且無需片外緩存的高精度ニ維前視聲納的實時成像算法(所述的前視聲納用于航行器前方水域的探測,它與側視聲納的數據更新方式和波束形成的計算方法不同)實現的研究。本發明僅應用于ニ維前視聲納領域,而非其他聲納領域。
發明內容
本發明的目的在干,為克服現有現有技術使用FPGA作為波束形成的設計時多為被動聲納的非實時波束形成算法或是主動側掃聲納的實時成像算法且使用大量的片外數據緩存等問題,本發明提供一種基于FPGA的水下實時成像方法及系統。為實現上述目的,本發明提供一種基于FPGA的水下實時成像系統,該系統基于ニ維主動成像聲納,包含發射單元、接受陣列單元和波束形成単元,其特征在于,所述波束形成單元采用FPGA進行波束形成,該單元進ー步包含高速串行收發器,用于接收所述接受陣列單元發送的若干路基帶信號,并進行串并變換,變換為若干路并列的通道;所述每一路通道還分別包含ー臨時緩存單元、一波束形成緩存單元、一相位補償器、一數據選擇器、一乘法器;所述若干通道還共享數個時分復用的延時計算單元和一累加器;其中,所述臨時緩存單元,用于接收所述高速串行收發器發送的臨時存儲數據,可選的所述臨時緩存單元采用兩個臨時緩存單元構成乒乓結構;所述波束形成緩存單元,用于保存進行波束形成的數據,且該單元以一個距離分辨率的采樣點數為單位構成先入先出緩存結構;其輸入端與所述臨時緩存輸出端相連;所述延時計算單元,采用時分復用的方式根據其輸入端接收的距離和角度參數為若干個接收陣元通道分別計算其延時參數值和相位補償參數值;所述相位補償器,用于根據所述相位補償參數值通過查表方法產生對數據進行相位補償的三角函數;將三角函數輸出給乘法器;所述數據選擇器,用于根據所述延時參數值在所述波束形成緩存中挑選正確的數據輸出;所述乘法器,用于將所述相位補償器得到的三角函數和所述數據選擇器選擇的數據相乘,獲得經過相位補償后的結果,得到某 一陣元通道的波束;所述累加器,用于收集所有陣元通道的波束結果進行累加,得到最終波束并輸出。其中,所述發射單元發射單頻調制脈沖;所述接收陣元單元,用于接收發射信號水下的反射信號,并進行處理得到基帶信號。上述技術方案中,所述系統還包含第一判斷模塊,用于判斷是否完成了某一段位移上所有距離點的波束形成;第二判斷模塊,用于判斷某一距離的位置點是否完成了ー設定角度范圍內的所有角度的波束形成。所述臨時緩存單元長度為每個距離分辨率下的采樣點數;所述波束形成緩存長度為若干個距離分辨率的采樣點數,其長度滿足最大的延時需求;所述延時計算單元通過多級流水線的結構進行計算。基于以上系統,本發明還提供一種基于FPGA的水下實時成像方法,該方法基于權利要求I所述的系統,包含發射單頻調制脈沖的步驟;接收反射信號并進行相關處理得到每個陣元通道的基帶信號,并將該信號轉換為串行信號并發送;波束形成的步驟,該步驟進一歩包含如下子步驟步驟I :串并變換及存儲的步驟將串行數據轉換為若干路并行數據并在臨時緩存中存儲;步驟2 :判斷是否計算新的距離的步驟,如果波束形成緩存從臨時緩存中接收ー次數據表示需要計算新的距離,進入下ー步驟,如果不需要計算新的距離,則等待,直到波束形成緩存從臨時緩存中接收一次數據,開始計算新的距離;步驟3 :保存該距離位置點進行波束形成的數據的步驟,將若干次臨時緩存中的數據連續傳給波束形成緩存;步驟4 :計算延時參數和相位補償參數的步驟,所述延時計算單元根據輸入的距離和角度值以時分復用的方式計算各個通道在該距離點出某一角度的延時參數和相位補償參數;步驟5 :計算該距離位置點某一角度的波束形成的步驟,根據延時計算單元提供的延時參數值從波束形成緩存中獲取ー個符合延時參數值的數據,同時更新相位補償結果;根據數據和相位補償結果通過乘法器獲得補償后的結果,之后由累加器收集所有通道的計算結果,得到該角度的波束形成;步驟6 :判斷在該距離位置點下是否計算完某一指定范圍的所有角度,如沒有,則步驟4);如已計算所有角度,則返回步驟2);計算完所有距離及每個距離點對應的所有角度的波束形成,即完成了最終的波束形成。上述技術方案中,所述將串行數據轉換為若干路并行數據的路數與所述接收陣元包含的陣列的個數相等。 所述臨時緩存采用兩個臨時緩存單元組成乒乓結構。所述臨時緩存單元長度為每個距離分辨率下的采樣點數;所述波束形成緩存長度為若干個距離分辨率的采樣點數,其長度滿足最大的延時需求;所述延時計算單元通過多級流水線的結構進行計算。本發明優點在于首先,提出一種基于FPGA的ニ維前視聲納成像系統,使用FPGA相比通用處理器(如DSP)可以提高計算效率,減少硬件的開銷,同時填補了前視聲納數據采用FPGA實現波束形成的空白;其次,采用波束形成時內置緩存,節約了片外緩存,降低了開發成本。
圖I是本發明的一種基于FPGA的水下實時成像系統的組成框圖;圖2是本發明的FPGA波束形成單元的組成框圖;圖3是本發明的一種基于FPGA的水下實時成像方法的流程圖;圖4是本發明的采用FPGA進行波束形成的流程圖;圖5是本發明實施例部分提供的種基于FPGA的水下實時成像系統的坐標系示意圖;圖6為本發明的延時計算單元的結構框圖;圖7是本發明的優化的延時計算單元的結構框圖。
具體實施例方式下面結合附圖及具體實施例對本發明作進ー步的描述。如圖I所示,該圖為整個聲納系統框圖,包括發射陣,發射機,接收陣,接收機、系統控制和信號處理系統。發射機控制發射陣發射脈沖信號;接收機初步處理接收陣獲取的信號再傳給信號處理系統,上傳信號滿足式(2),所有水聽器通道的數據以串行數據形式傳輸;信號處理系統主要由FPGA組成,將接收到的信號進行實時波束形成的計算;控制系統用來協同接收機、發射機和信號處理系統的工作。如圖2所示,該圖為FPGA進行波束形成的內部硬件結構圖,數據通過高速串行收發器進入FPGA中,將串行數據按不同的通道進行分配。每個通道具有相同的結構,包括臨時緩存、波束形成緩存、數據選擇器、相位補償器和乘法器。所述若干通道采用時分復用的方式共用延時計算單位,該延時計算單元為每個通道計算需要的結果,其數量視計算速度而疋。所述高速串行收發器,用于接收所述接受陣列單元發送的若干路基帶信號,并進行串并變換,變換為若干路并列的通道;所述臨時緩存單元,用于接收所述高速串行收發器發送的臨時存儲數據,所述臨時緩存単元采用兩個臨時緩存單元組成乒乓結構;使用兩個長度與單位距離分辨率的采樣點數相同的臨時緩存,分別命名為緩存I和緩存2。緩存I先開始接收并保存數據,當緩存I存滿后,切換為緩存2接收并保存數據,緩存I的數據由波束形成緩存讀取;當緩存2存滿后,切換為緩存I接收并保存數據,緩存2的數據由波束形成緩存讀取。波束形成緩存讀取一個臨時緩存的數度遠大于ー個臨時緩存存滿的速度。所述波束形成緩存單元,用于保存進行波束形成的數據,且該單元以一個距離分辨率的采樣點數為單位構成先入先出緩存結構;其輸入端與所述臨時緩存輸出端相連;
所述延時計算單元,采用時分復用的方式根據其輸入端接收的距離和角度參數為若干個接收陣元通道分別計算其延時參數值和相位補償參數值;所述相位補償器,用于根據所述相位補償參數值通過查表方法產生對數據進行相位補償的三角函數;將三角函數輸出給乘法器;所述數據選擇器,用于根據所述延時參數值在所述波束形成緩存中挑選正確的數據輸出;所述乘法器,用于將所述相位補償器得到的三角函數和所述數據選擇器選擇的數據相乘,獲得經過相位補償后的計算結果,得到某一陣元通道的波束形成;所述累加器,用于收集所有陣元通道的波束形成的計算結果進行累加,得到最終波束并輸出;其中,所述發射單元發射單頻調制脈沖;所述接收陣元單元,用于接收發射信號水下的反射信號,并進行處理得到基帶信號。如圖3和圖4所示,圖4為基于FPGA的水下實時成像方法的流程圖。如圖3所示步驟301 :系統發送單頻調制脈沖;步驟302 :接收反射信號并進行相關處理得到每個陣元通道的基帶信號;步驟303 :進行波束形成。如圖4所示所有陣元基帶信號數據將以高速串行數據的形式發送給FPGA進行進一步處理。在FPGA內部其流程為,先將串行數據轉換為并行數據在臨時緩存中存儲,然后判斷是否計算新的距離,其判據為臨時緩存存滿4次采樣的數據長度。如需要計算新的距離則將數據傳給波束形成緩存,波束形成緩存更新數據,并通知延時計算單元重新計算。數據選擇器根據延時計算單元結果從波束形成緩存中獲取數據,同時更新相位補償結果。之后根據數據和相位補償結果通過乘法器獲得補償后的結果。之后由累加器收集所有通道計算結果并輸出。判斷在該距離下是否計算完所有角度,如沒有則通知延時計算單元更新結果繼續計算;如已計算所有角度則返回判斷是否要計算新的距離。實施例本發明采用單頻調制脈沖為發射信號,該信號公式為
權利要求
1.一種基于FPGA的水下實時成像系統,該系統成像采用波束形成方法且基于前視的ニ維主動成像聲納,包含發射單元、接受陣列單元和波束形成単元,其特征在于,所述波束形成單元采用FPGA進行波束形成,該單元進ー步包含 高速串行收發器,用于接收所述接受陣列單元發送的若干路基帶信號,并進行串并變換,變換為若干路并列的通道; 所述每一路通道還分別包含ー臨時緩存單元、一波束形成緩存單元、一相位補償器、一數據選擇器、ー乘法器;所述若干通道還共享數個時分復用的延時計算單元和一累加器; 其中, 所述臨時緩存單元,用于接收所述高速串行收發器發送的臨時存儲數據; 所述波束形成緩存單元,用于保存進行波束形成的數據,且該單元以一個距離分辨率的采樣點數為單位構成先入先出緩存結構;其輸入端與所述臨時緩存輸出端相連; 所述延時計算單元,采用時分復用的方式根據其輸入端接收的距離和角度參數為若干個接收陣元通道分別計算其延時參數值和相位補償參數值; 所述相位補償器,用于根據所述相位補償參數值通過查表方法產生對數據進行相位補償的三角函數;將三角函數輸出給乘法器; 所述數據選擇器,用于根據所述延時參數值在所述波束形成緩存中挑選正確的數據輸出; 所述乘法器,用于將所述相位補償器得到的三角函數和所述數據選擇器選擇的數據相乘,獲得經過相位補償后的計算結果,得到某一陣元通道的波束形成; 所述累加器,用于收集所有陣元通道的波束形成的計算結果進行累加,得到最終波束并輸出; 其中,所述發射單元發射單頻調制脈沖;所述接收陣元單元,用于接收發射信號水下的反射信號,并進行處理得到基帶信號。
2.根據權利要求I所述的基于FPGA的水下實時成像系統,其特征在于,所述臨時緩存單元采用兩個臨時緩存單元組成乒乓結構。
3.根據權利要求I所述的基于FPGA的水下實時成像系統,其特征在于,所述系統還包含 第一判斷模塊,用于判斷是否完成了某一段位移上所有距離點的波束形成; 第二判斷模塊,用于判斷某一距離的位置點是否完成了ー設定角度范圍內的所有角度的波束形成。
4.根據權利要求I所述的基于FPGA的水下實時成像系統,其特征在于,所述臨時緩存単元長度為每個距離分辨率下的采樣點數。
5.根據權利要求I所述的基于FPGA的水下實時成像系統,其特征在于,所述波束形成緩存長度為若干個距離分辨率的采樣點數,其4長度滿足最大的延時需求。
6.根據權利要求I所述的基于FPGA的水下實時成像系統,其特征在于,所述延時計算単元通過多級流水線的結構進行計算。
7.一種基于FPGA的水下實時成像方法,該方法基于權利要求I所述的系統,包含 發射單頻調制脈沖的步驟;接收反射信號并進行相關處理得到每個陣元通道的基帶信號,并將該信號轉換為串行信號并發送; 波束形成的步驟,該步驟進一歩包含如下子步驟 步驟I:串并變換及存儲的步驟將串行數據轉換為若干路并行數據并在臨時緩存中存儲; 步驟2 :判斷是否計算新的距離的步驟,如果波束形成緩存從臨時緩存中接收一次數據表示需要計算新的距離,進入下一步驟;如果不需要計算新的距離,則等待,直到波束形成緩存從臨時緩存中接收一次數據,開始計算新的距離; 步驟3 :保存該距離位置點進行波束形成的數據的步驟,將一次臨時緩存中的數據連續傳給波束形成緩存; 步驟4 :計算延時參數和相位補償參數的步驟,所述延時計算單元根據輸入的距離和角度值以時分復用的方式計算各個通道在該距離點處某一角度的延時參數和相位補償參數; 步驟5:計算該距離位置點某一角度的波束形成的步驟,根據延時計算單元提供的延時參數值從波束形成緩存中獲取ー個符合延時參數值的數據,同時更新相位補償的計算結果;根據數據和相位補償的計算結果通過乘法器獲得這個通道的波束形成結果,之后由累加器收集所有通道的波束形成結果,最終得到該角度所有通道形成的波束; 步驟6 :判斷在該距離位置點下是否計算完某一指定范圍的所有角度的波束形成,如在該位置處還有沒有計算的角度對應的波束形成,則返回步驟4);如已計算了該位置處指定角度范圍內所有角度的波束形成,則返回步驟2)計算一新距離對應的不同位置點的波束形成; 計算完某一段指定距離及針對該距離內的每個距離點對應的指定角度范圍的所有角度的波束形成,即完成了最終的波束形成。
8.根據權利要求7所述的基于FPGA的水下實時成像方法,其特征在于,所述將串行數據轉換為若干路并行數據的路數與所述接收陣元包含的陣列的個數相等。
9.根據權利要求7所述的基于FPGA的水下實時成像方法,其特征在于,所述臨時緩存采用兩個臨時緩存單元組成乒乓結構。
10.根據權利要求7所述的基于FPGA的水下實時成像方法,其特征在于,所述臨時緩存単元長度為每個距離分辨率下的采樣點數。
11.根據權利要求7所述的基于FPGA的水下實時成像方法,其特征在于,所述波束形成緩存長度為若干個距離分辨率的采樣點數,其長度滿足最大的延時需求。
12.根據權利要求7所述的基于FPGA的水下實時成像方法,其特征在于,所述延時計算単元通過多級流水線的結構進行計算。
13.根據權利要求7所述的基于FPGA的水下實時成像方法,其特征在于,所述延時參數對距離為R角度為0的回波采用如下計算公式
14.根據權利要求13所述的基于FPGA的水下實時成像方法,其特征在于,所述IP1J
全文摘要
本發明是一種基于FPGA的水下實時成像系統及方法,該系統包含的波束形成單元采用FPGA進行波束形成,該單元進一步包含高速串行收發器、對應每一陣元通道還分別包含一臨時緩存單元、一波束形成緩存單元、一相位補償器、一數據選擇器、一乘法器;所述若干通道還共享數個時分復用的延時計算單元和一累加器;所述臨時緩存單元采用構成乒乓結構;所述延時計算單元,采用時分復用的方式根據其輸入端接收的距離和角度參數為若干個接收陣元通道分別計算其延時參數值和相位補償參數值;其中,所述發射單元發射單頻調制脈沖;所述接收陣元單元,用于接收發射信號水下的反射信號,并進行處理得到基帶信號。
文檔編號G01S15/89GK102768358SQ201110115140
公開日2012年11月7日 申請日期2011年5月5日 優先權日2011年5月5日
發明者劉紀元, 李淑秋, 楊光, 黃海寧 申請人:中國科學院聲學研究所