程 婧,王志俊,李國(guó)棟,魏 珂
(中國(guó)水產(chǎn)科學(xué)研究院漁業(yè)機(jī)械儀器研究所,上海 200092)
漁用聲吶作為在漁業(yè)領(lǐng)域利用聲波對(duì)水下魚群進(jìn)行探測(cè)的重要助魚儀器[1],近幾十年來,在海洋捕撈漁業(yè)中發(fā)揮重要作用[2]。漁用聲吶從利用聲波波束的角度可分為單波束[3]、分裂波束[4]、多波束等多種方式[5],其中多波束漁用聲吶通過多個(gè)換能器陣子協(xié)同工作,可在較短的時(shí)間內(nèi)進(jìn)行掃海,相較于單波束可以更加準(zhǔn)確地探測(cè)較大范圍內(nèi)的魚群距離和方位[6-7],主要在中大型圍網(wǎng)和拖網(wǎng)捕撈漁船上使用[8],提高了捕撈效率[9-11]。
波束成形作為多波束聲吶的一項(xiàng)核心技術(shù),是一種抗噪聲和混響干擾的主要方法[12],其實(shí)現(xiàn)性能決定了聲吶探測(cè)距離和空間分辨能力[13]。相位補(bǔ)償?shù)牟ㄊ尚畏椒ㄙY源占用少且運(yùn)算速度較快,在窄帶波束成形中有較多使用。相較于窄帶技術(shù),寬帶技術(shù)由于具有更好的抗混響和距離分辨能力[14]被廣泛應(yīng)用在漁業(yè)探測(cè)中[15-17],然而因其相位的實(shí)時(shí)變化,相位補(bǔ)償?shù)姆椒▽⒉辉龠m用。常用的寬帶波束成形方法有時(shí)移法、頻域變換法[18]和移邊帶波束成形法(SSB)等,其中時(shí)移法主要使用延時(shí)濾波器組對(duì)寬帶信號(hào)中不同頻率的信號(hào)幅度與相位加權(quán)[19],其精度受采樣周期的制約;頻域變換法是先將寬帶信號(hào)變換到頻域,然后將多個(gè)頻率分量,對(duì)不同頻點(diǎn)的信號(hào)采用窄帶波束成形進(jìn)行波束合成,最后再變換到時(shí)域上[20],其波束成形精度受頻點(diǎn)精細(xì)度的影響,精細(xì)度越高運(yùn)算量越大[12];SSB算法采用下變頻的方法,將較高的載頻信號(hào)先搬移到較低頻率然后進(jìn)行相位和時(shí)間補(bǔ)償,避免了采樣率的限制,可在較低的采樣率下達(dá)到較高精度,然而由于其相位和時(shí)間補(bǔ)償過程采用并行運(yùn)算,參與波束成形的陣子數(shù)越多,運(yùn)算量和硬件資源占用量越大[21],制約了其在漁船這類對(duì)空間和能耗要求較嚴(yán)苛的搭載儀器上的使用。
本研究根據(jù)現(xiàn)有硬件的資源和運(yùn)算能力[22-23],提出一種基于分布式的全方位漁用聲吶多波束掃海方式,并對(duì)SSB算法進(jìn)行改進(jìn),采用串行處理代替原有算法的大量并行運(yùn)算,并結(jié)合FPGA的特性[24-25]采用時(shí)分復(fù)用設(shè)計(jì),實(shí)現(xiàn)了在未降低算法性能的同時(shí),大量節(jié)省片上資源,并提高了信號(hào)處理速度。
多波束探魚儀工作時(shí),采用旋轉(zhuǎn)定向掃描發(fā)射,即在某一時(shí)刻一個(gè)扇區(qū)內(nèi)同時(shí)發(fā)射多個(gè)波束,然后在下一時(shí)刻水平旋轉(zhuǎn)至下一扇區(qū)繼續(xù)發(fā)射多個(gè)波束,以便保證各個(gè)方位都可以被波束覆蓋到。對(duì)于多波束探魚儀的接收部分采用多個(gè)陣子同步接收,并對(duì)回波進(jìn)行信號(hào)處理。
接收波束成形中的關(guān)鍵環(huán)節(jié)是對(duì)各個(gè)陣子接收相位延時(shí)進(jìn)行精準(zhǔn)的控制與計(jì)算[26-27],使得回波波束的聚焦點(diǎn)小,指向性好從而獲得更加清晰的圖像。
由于圓柱陣換能器的陣子較多,單板無法對(duì)信號(hào)進(jìn)行處理,因此為了提高波束成形的運(yùn)算速度,采用分布式跨板間計(jì)算。所用換能器基陣采用8塊多通道接收機(jī)構(gòu)成,每塊多通道接收機(jī)由32個(gè)陣子組成,共計(jì)256個(gè)陣子組成所需圓柱陣。
如圖1、2所示為每塊多通道接收機(jī)中的陣子排列方式:水平方向上共4列換能器,每列由8個(gè)陣子組成,相鄰兩列陣子與坐標(biāo)系中心連線的夾角為11.25°,每個(gè)多通道接收機(jī)可以分別與其左側(cè)和右側(cè)的多通道接收機(jī)組成對(duì)應(yīng)虛擬扇區(qū)。該探魚儀在垂直方向上兩個(gè)陣子之間的間距為0.042 m,單個(gè)陣子的半徑為0.185 m,指向性開角約為78°,圓柱陣周長(zhǎng)為1.18 m。每個(gè)扇區(qū)可以完成20個(gè)波束,從-21.375°至21.375°,波束間隔為2.25°。單個(gè)多通道接收機(jī)參與40個(gè)波束,前20個(gè)波束與其右側(cè)的多通道接收機(jī)一起完成,后20個(gè)波束與其左側(cè)多通道接收機(jī)一起完成。
圖1 扇區(qū)劃分Fig.1 Sector division
圖2 第一扇區(qū)Fig.2 First sector
移邊帶波束形成算法原理如圖3所示,具體為將接收到的信號(hào)移動(dòng)f1至中頻f0-f1,信號(hào)被調(diào)制為exp(-iω1t)的限制條件為:0 波束成形的輸入信號(hào)形式見(1): xm(t)=x(t-τm)exp[iω0(t-τm)] (1) 式中:xm為陣子m接收到的回波信號(hào)(m=1,2,3,...,M);τm為陣子m相對(duì)于坐標(biāo)原點(diǎn)的時(shí)延值,s;ω0為基帶信號(hào)的中心角頻率,rad/s。經(jīng)過下混頻模塊,可得到信號(hào)的實(shí)部與虛部分別為: xsmr(t)=xm(t)×2cos(ω1t) (2) xsmi(t)=xm(t)×2sin(ω1t) (3) 式中:xsmr與xsmi分別為經(jīng)過下混頻模塊后的實(shí)部與虛部信號(hào);ω1為載波信號(hào)的角頻率,rad/s。當(dāng)下混頻后的信號(hào)經(jīng)過低通濾波器,可將(ω0+ω1)過濾掉,僅保留(ω0-ω1),此時(shí)對(duì)應(yīng)的信號(hào)表達(dá)式為: xfmr(t)=x(t-τm)[cos(ω0-ω1)t-ω0τm)+jsin(ω0-ω1)t-ω0τm)] (4) xfmi(t)=x(t-τm)[sin(ω0-ω1)t-ω0τm)-jcos(ω0-ω1)t-ω0τm)] (5) 式中:xfmr與xfmi分別對(duì)應(yīng)經(jīng)過低通濾波的實(shí)部與虛部信號(hào)。將低通濾波后的信號(hào)經(jīng)過相位補(bǔ)償后輸出信號(hào)見公式(6)。 xmpn(t)=xfmr(t)×cos(ω0τm)-xfmi(t)×sin(ω0τm)=x(t-τm)exp[i(ω0-ω1)t] (6) 式中:xmPn為陣子m的波束n相移之后的信號(hào)(m=1,2,3,...,M,n=1,2,3,...,N)。 (7) 式中:bn為累加過后的第n個(gè)波束(n=1,2,3,...,N);m為對(duì)應(yīng)的陣子數(shù)(m=1,2,3,...,M)。 全方位圓柱陣多波束漁用聲吶算法是在SSB算法的基礎(chǔ)上進(jìn)行改進(jìn),主要調(diào)整了模塊的順序,采用時(shí)分復(fù)用的技術(shù),將傳統(tǒng)的并行結(jié)構(gòu)進(jìn)行了串行處理,且采用分布式多板同步的方式進(jìn)行波束累加(圖4)。 圖4 算法改進(jìn)原理框圖Fig.4 Diagram of the improved algorithm 移時(shí)模塊的串行處理如圖5所示,每個(gè)陣子對(duì)應(yīng)的存儲(chǔ)器分別存儲(chǔ)N個(gè)波束的補(bǔ)償參數(shù),將低通濾波的輸出依次寫入對(duì)應(yīng)的緩沖區(qū),同時(shí)額外存在一個(gè)指針,根據(jù)傳入的補(bǔ)償參數(shù)在此指針位置上進(jìn)行對(duì)應(yīng)地址的讀取,最后依次串行輸出N個(gè)波束的實(shí)部和虛部至對(duì)應(yīng)陣子的相位補(bǔ)償模塊進(jìn)行下一級(jí)的運(yùn)算。與圖3相比,模塊數(shù)量由原來的M×N個(gè)變?yōu)楝F(xiàn)在的與陣子數(shù)M保持一致,減少了FPGA存儲(chǔ)器的資源同時(shí)提高了后續(xù)在FPGA中信號(hào)處理的運(yùn)算速度。 圖5 改進(jìn)算法的串行處理原理Fig.5 Principal of the improved algorithm with serial processing 基于Matlab軟件對(duì)以上兩種算法進(jìn)行仿真研究與對(duì)比。仿真時(shí)接收信號(hào)為線性調(diào)頻(LFM)脈沖信號(hào)[28],工作頻率為20 kHz~ 30 kHz[29],帶寬Bw為10 kHz,中心頻率f0為25 kHz,脈寬T為1 ms,基波頻率f1為 20 kHz。以一塊多通道接收機(jī)M=32為例,當(dāng)期望指向性角度為水平方向0°垂直方向90°時(shí),兩種算法的仿真結(jié)果如圖6所示,其中上三角對(duì)應(yīng)SSB算法,實(shí)線為本研究提出的改進(jìn)算法,虛線為經(jīng)過低通濾波后輸入補(bǔ)償模塊的波形。 圖6 算法性能比對(duì)Fig.6 Comparison of algorithm performances 為了更加直觀地進(jìn)行比較,圖6將兩算法的仿真輸出幅值同時(shí)縮小5倍。兩種算法的32路陣子累加結(jié)果進(jìn)行對(duì)比可得對(duì)應(yīng)的波形、幅值、以及頻率一致且結(jié)果完全重合,與單列陣子經(jīng)過低通濾波后輸出的波形相比,幅值明顯提高。幅值的增加體現(xiàn)了波束成形空間濾波器的性質(zhì),完全重合的結(jié)果表明改進(jìn)算法與傳統(tǒng)算法的性能一致。 3.1.1 下混頻及低通濾波模塊 該模塊主要由FPGA的直接數(shù)字頻率合成(DDS)IP核、乘法器以及91階低通濾波器[30]組成。實(shí)現(xiàn)過程中系統(tǒng)時(shí)鐘為200 MHz,采樣時(shí)鐘為1 MHz。由于下混頻包括實(shí)部和虛部,因此一個(gè)扇區(qū)中的32個(gè)陣子,在一個(gè)采樣時(shí)鐘內(nèi)將產(chǎn)生64組數(shù)據(jù),為節(jié)省資源采用64路時(shí)分復(fù)用。 一個(gè)采樣周期內(nèi),32路各傳輸一個(gè)數(shù)字信號(hào),先后與DDS產(chǎn)生的余弦值和正弦值經(jīng)過乘法器相乘,最后經(jīng)低通濾波器向時(shí)間補(bǔ)償模塊輸入一組數(shù)據(jù)。下一個(gè)采樣周期時(shí),32路將各傳輸另一個(gè)數(shù)字信號(hào)值,并按照上述過程向下一級(jí)輸出另一組數(shù)據(jù),以此類推。 3.1.2 時(shí)間補(bǔ)償模塊 時(shí)間補(bǔ)償模塊狀態(tài)機(jī)如圖7所示,分為初始態(tài)、實(shí)部讀取態(tài)、虛部讀取態(tài)、以及返回態(tài)。初始態(tài)主要判斷上一模塊輸出通道數(shù)的高五位與時(shí)間補(bǔ)償模塊的對(duì)應(yīng)通道數(shù)是否相等。當(dāng)兩者相等且控制信號(hào)處在高位時(shí),時(shí)移緩沖區(qū)的地址寫入當(dāng)前指針值,同時(shí)時(shí)移緩沖區(qū)依次寫入上一模塊輸出數(shù)據(jù)的實(shí)部和虛部。虛部寫入完畢后轉(zhuǎn)至實(shí)部讀取態(tài),當(dāng)波束計(jì)數(shù)器小于39 時(shí),狀態(tài)機(jī)跳轉(zhuǎn)至虛部讀取態(tài)進(jìn)行地址運(yùn)算,否則狀態(tài)跳轉(zhuǎn)至返回態(tài)而后回到初始態(tài)進(jìn)行下一個(gè)采樣時(shí)鐘的時(shí)移計(jì)算。 圖7 時(shí)間補(bǔ)償狀態(tài)機(jī)Fig.7 State machine of time compensation 3.1.3 相位補(bǔ)償模塊 由相位補(bǔ)償模塊的計(jì)算公式可得,算法實(shí)現(xiàn)時(shí)需要對(duì)輸入本模塊的實(shí)部乘上對(duì)應(yīng)的正余弦值。為節(jié)省片上資源,只將0°~90°精度為0.1°的900個(gè)正弦值sin(2πf0τ)存入只讀存儲(chǔ)器(rom)中,根據(jù)正余弦轉(zhuǎn)化公式,實(shí)時(shí)計(jì)算出相對(duì)應(yīng)的余弦值。最后通過乘法器和加法器按照公式(6)計(jì)算出相位補(bǔ)償模塊的輸出值。 相位補(bǔ)償模塊的狀態(tài)機(jī)見圖8。初始態(tài)時(shí)上一模塊的有效值輸出,對(duì)應(yīng)的控制信號(hào)置于高位,狀態(tài)機(jī)跳轉(zhuǎn)至下一狀態(tài)。相位補(bǔ)償余弦態(tài)和正弦態(tài)分別利用乘法器完成輸入數(shù)據(jù)的虛部與正弦相乘、實(shí)部與余弦相乘,同時(shí)在余弦態(tài)中,完成上一組輸入數(shù)據(jù)正余弦相乘后的相加,且在正弦態(tài)中,當(dāng)波束計(jì)數(shù)器大于39時(shí)狀態(tài)跳轉(zhuǎn)至返回態(tài)。 圖8 相位補(bǔ)償狀態(tài)機(jī)Fig.8 State machine of phase compensation 若使用傳統(tǒng)移邊帶算法進(jìn)行FPGA的實(shí)現(xiàn),由于其并行的結(jié)構(gòu)特點(diǎn),需要例化32個(gè)存儲(chǔ)器分別計(jì)算并輸出對(duì)應(yīng)通道的相位補(bǔ)償數(shù)據(jù),每個(gè)通道輸出40個(gè)波形數(shù)據(jù)。然后將每個(gè)采樣時(shí)鐘對(duì)應(yīng)的移項(xiàng)后的數(shù)據(jù)存入緩沖區(qū),根據(jù)時(shí)間補(bǔ)償參數(shù)進(jìn)行地址運(yùn)算,此時(shí)每個(gè)通道將產(chǎn)生40個(gè)時(shí)間補(bǔ)償模塊,需例化40個(gè)存儲(chǔ)器。每一個(gè)時(shí)間補(bǔ)償模塊消耗0.5個(gè)塊隨機(jī)存儲(chǔ)器(BRAM),故參數(shù)補(bǔ)償部分需要消耗0.5×40×32=640個(gè)BRAM。 若使用改進(jìn)算法進(jìn)行FPGA的實(shí)現(xiàn),由于采用了時(shí)分復(fù)用的串行結(jié)構(gòu),經(jīng)過下混頻模塊后的數(shù)據(jù)先進(jìn)行時(shí)移計(jì)算,每個(gè)通道對(duì)應(yīng)一個(gè)時(shí)間補(bǔ)償模塊,每個(gè)時(shí)間補(bǔ)償模塊串行輸出對(duì)應(yīng)的40組移時(shí)數(shù)據(jù)。隨后進(jìn)行移項(xiàng)時(shí)只需要實(shí)時(shí)計(jì)算出當(dāng)前的相位補(bǔ)償值并串行輸出給下一級(jí),不需要占用額外的存儲(chǔ)器。此時(shí)每路陣子只對(duì)應(yīng)一個(gè)時(shí)間補(bǔ)償模塊和一個(gè)相位補(bǔ)償模塊,且一塊多通道接收機(jī)在進(jìn)行補(bǔ)償計(jì)算時(shí)只消耗32×0.5=16個(gè)BRAM,相較于傳統(tǒng)算法而言改進(jìn)算法節(jié)省了更多的BRAM。 改進(jìn)算法主要優(yōu)化了實(shí)現(xiàn)過程中的資源消耗量,將通過FPGA實(shí)現(xiàn)的兩種算法的資源消耗量進(jìn)行對(duì)比,由表1可得,查找表(LUTs)、寄存器(Register)的資源消耗變化不大,然而相較于傳統(tǒng)算法,改進(jìn)算法的BRAM消耗量大幅度減小,且隨著陣子數(shù)量的增加,節(jié)約的BRAM數(shù)量顯著增加,當(dāng)陣子數(shù)為64時(shí)節(jié)約了近90.6%的BRAM見圖9。 表1 兩種算法32路陣子的資源消耗對(duì)比Tab.1 Comparison of the resource consumption of the two algorithms for 32 arrays 圖9 BRAM消耗對(duì)比Fig.9 Consumption comparison of BRAM 為了進(jìn)一步檢驗(yàn)改進(jìn)算法的波束成形性能,在消聲水池中進(jìn)行了相關(guān)試驗(yàn)。綜合考慮水池的測(cè)試條件,選取圓柱陣的相鄰?fù)瑢拥?個(gè)陣子,進(jìn)行波束成形測(cè)試。同時(shí)為方便觀察接收波束成形的效果,采用收發(fā)分離的測(cè)試方案來搭建測(cè)試平臺(tái)如圖10所示,全向發(fā)射的換能器和圓柱陣換能器置于消聲水池中,入水深度均為2.7 m,兩者距離為5.5 m。全向發(fā)射的換能器作為L(zhǎng)FM信號(hào)發(fā)射端,連續(xù)發(fā)射脈沖為1 ms的LFM信號(hào),由圓柱陣換能器接收回波信號(hào)。 圖10 測(cè)試平臺(tái)Fig.10 Test system 為了測(cè)試單個(gè)陣子的性能,首先對(duì)4個(gè)陣子的指向性進(jìn)行了測(cè)試,其指向性見圖11,可得試驗(yàn)使用的換能器陣子1開角為82°,陣子2開角為86°,陣子3開角為90°,陣子4開角為78°,且相鄰兩陣子間夾角約為22°。 圖11 陣子指向性Fig.11 Arrays directivity 根據(jù)上文掃海方式,主要對(duì)-10°、-5°、0°、5°、10°幾個(gè)特殊的角度進(jìn)行測(cè)試。將四陣子各自對(duì)應(yīng)的指向性作為加擋函數(shù)并帶入指向性函數(shù)[8]即可得到理論結(jié)果。最后將測(cè)試時(shí)采集到的數(shù)據(jù)與理論結(jié)果進(jìn)行對(duì)比,并分析誤差。 測(cè)試結(jié)果見圖12,虛線為理論值,實(shí)線為實(shí)際測(cè)量值。當(dāng)期望指向性為0°時(shí),測(cè)量結(jié)果與理論結(jié)果的主瓣幾乎重合,兩者指向性均為0°;當(dāng)期望指向性為5°和-5°時(shí),測(cè)試結(jié)果的指向性分別為5°和-6°,理論結(jié)果的指向性分別為5°和-5°;當(dāng)期望指向性為10°和-10°時(shí),測(cè)試結(jié)果的指向性分別為10°、-9°,理論結(jié)果的指向性分別為10°、-10.5°。 圖12 實(shí)測(cè)與理論在不同角度的指向性對(duì)比Fig.12 Comparison of directivity between test and theory at different angles 根據(jù)測(cè)量結(jié)果可得,當(dāng)期望指向性角為±5°時(shí),理論和實(shí)測(cè)的指向性角度大約偏差1°左右,可能是由于測(cè)量時(shí)伺服機(jī)精度不夠造成誤差。當(dāng)期望指向性為10°時(shí),旁瓣值高,造成的原因可能是此時(shí)的聲程差較大,帶來的測(cè)量誤差較大,即當(dāng)指向性角越向正向偏離0°,聲程差越大,對(duì)應(yīng)旁瓣越高。同時(shí)本試驗(yàn)所用換能器采用了束控,這也是導(dǎo)致旁瓣較高的原因之一[31]。實(shí)測(cè)的波束圖相較于理論仿真[12]的偏差在合理范圍中,進(jìn)一步證明改進(jìn)算法與傳統(tǒng)移邊帶[21]算法在性能上的一致。 基于傳統(tǒng)的移邊帶波束成形算法原理,改進(jìn)算法對(duì)傳統(tǒng)移邊帶算法的時(shí)間補(bǔ)償和相位補(bǔ)償模塊進(jìn)行了順序的調(diào)整與改進(jìn),將原有資源占用量較大的并行處理優(yōu)化為串行運(yùn)算,并結(jié)合FPGA的特點(diǎn)利用時(shí)分復(fù)用的方法降低資源的消耗量,在保留原有算法精度的前提下提高了硬件處理速度,同時(shí)節(jié)省了硬件的成本。本研究主要考慮了硬件處理方面的資源消耗與波束成形性能之間的關(guān)系,要更加直觀地觀察回波是否擊中目標(biāo)物體,還需要通過上位機(jī)的界面顯示來實(shí)現(xiàn),然而由于網(wǎng)口傳輸?shù)臄?shù)據(jù)量有限,因此今后還應(yīng)對(duì)波束成形過程中各個(gè)模塊的數(shù)據(jù)進(jìn)行相應(yīng)的截位,并對(duì)采集到的數(shù)據(jù)進(jìn)行分析,以實(shí)現(xiàn)在波束成形性能不變的同時(shí),傳輸更多的數(shù)據(jù),從而獲得更加清晰的圖像。 □2.2 算法改進(jìn)
2.3 兩種算法仿真比較
3 改進(jìn)算法的FPGA實(shí)現(xiàn)
3.1 模塊設(shè)計(jì)與實(shí)現(xiàn)
3.2 資源消耗對(duì)比
4 試驗(yàn)測(cè)試
5 結(jié)論