專利名稱:基于Linux集群的聲納實時信號處理實現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明屬于集群并行計算機(jī)領(lǐng)域,聲納信號處理領(lǐng)域,主要是一種基于Linux集群的聲納實時信號處理實現(xiàn)方法。
背景技術(shù):
聲納數(shù)字信號處理主要完成波束形成、數(shù)字濾波、頻譜分析等數(shù)字信號處理功能, 是現(xiàn)代數(shù)字式聲納的重要組成部分。目前,聲納信號處理系統(tǒng)主要在專用的信號處理機(jī)上實現(xiàn),需要專用的信號處理芯片和數(shù)據(jù)傳輸硬件支持,板間和芯片間通訊的拓?fù)浣Y(jié)構(gòu)是固定的,隨著聲納信號處理越來越復(fù)雜,信號處理機(jī)在計算和數(shù)據(jù)規(guī)模激增的情況下往往被總線和板間數(shù)據(jù)傳輸瓶頸限制計算能力的提高。隨著聲納系統(tǒng)不斷的朝著網(wǎng)絡(luò)化、集成化和高性能的方向發(fā)展,對硬件資源的重新分配,軟件的重新構(gòu)建提出了更高的要求,隨著計算機(jī)并行處理技術(shù)的不斷完善,特別是分布式并行處理技術(shù)的成熟,為我們提供了一種有效的技術(shù)手段。
發(fā)明內(nèi)容
本以明的目的正是為了克服上述技術(shù)的不足,而提供一種基于Linux集群的聲納實時信號處理實現(xiàn)方法,基于Linux集群平臺提出了一種實現(xiàn)聲納實時信號處理的方法, 以滿足水聲裝備網(wǎng)絡(luò)化、集成化和軟件重構(gòu)的體制需求。本發(fā)明解決其技術(shù)問題采用的技術(shù)方案這種基于Linux集群的聲納實時信號處理實現(xiàn)方法,包括如下步驟(1)、聲納基陣信號實時模擬在Linux集群上進(jìn)行基陣信號模擬實時計算,根據(jù)不同陣形和陣元數(shù)自動分配計算核心數(shù)量,實時產(chǎn)生基陣數(shù)字信號,通過網(wǎng)絡(luò)發(fā)送給信號處理部分進(jìn)行處理,包括以下步驟步驟1 設(shè)置運行參數(shù),包括態(tài)勢參數(shù)、目標(biāo)源參數(shù)、目標(biāo)注入?yún)?shù)和環(huán)境參數(shù);步驟2 根據(jù)傳入的目標(biāo)態(tài)勢計算各目標(biāo)相對本聲納的距離方位,根據(jù)目標(biāo)源信號參數(shù)計算目標(biāo)源信號,根據(jù)環(huán)境參數(shù)計算傳播損失和環(huán)境噪聲;步驟3 根據(jù)聲納方程計算出基陣參考信號;步驟4 設(shè)基陣陣元數(shù)為N,標(biāo)號為0 (N-I),而所需集群的計算核心數(shù)量為np, 向Linux集群申請np個空閑計算核心,核心物理位置由Linux集群隨機(jī)分配,內(nèi)部統(tǒng)一視為0到np號核心,將基陣參考信號廣播到這np個計算核心上,每個計算核心自行按時延計算N/np個基元輸出信號;步驟5 在0號計算核心上收集所有基元輸出信號,發(fā)送給信號處理部分,根據(jù)航向/航速計算出下一步目標(biāo)和本聲納的位置,即新的態(tài)勢信息,轉(zhuǎn)步驟3 ;(2)、聲納實時信號處理根據(jù)聲納信號處理的不同功能的特點,將信號處理任務(wù)分割成合理的子任務(wù),將它們分配給集群上的不同計算核心進(jìn)行并行處理,上述所有子任務(wù)及主控計算核心均以單獨的進(jìn)程方式運行在Linux集群上,進(jìn)程之間的數(shù)據(jù)和命令傳遞均采用MPI消息傳遞的方式,保證其同步性,從而實現(xiàn)多進(jìn)程獨立并行計算;包括以下步驟步驟1 在Linux集群上并行啟動所需要的M個進(jìn)程,每個進(jìn)程運行在一個空閑的計算核心上。進(jìn)程0為主進(jìn)程,即主控計算核心;步驟2 主控計算核啟動雙線程,主線程等待接收信號處理結(jié)果,并進(jìn)行組織后, 使用UDP協(xié)議發(fā)送至模擬顯控臺進(jìn)行顯示;子線程采用阻塞UDP接收方式等待接收顯控臺發(fā)來的控制命令,主控節(jié)點根據(jù)命令碼選擇發(fā)送給相關(guān)的信號處理節(jié)點,采用的方式為MPI 標(biāo)準(zhǔn)發(fā)送方式;步驟3 信號處理相關(guān)計算核使用廣播方式接收基陣數(shù)據(jù),并進(jìn)行相應(yīng)信號處理后,使用MPI發(fā)送結(jié)果至主控節(jié)點;另外在信號處理過程中,采用MPI非阻塞方式接收主控節(jié)點發(fā)來的命令。所述的信號處理任務(wù)按兩個層次進(jìn)行子任務(wù)的劃分(1)首先進(jìn)行粗粒度的劃分,對信號處理功能所需數(shù)據(jù)的相關(guān)性,按功能進(jìn)行劃分,使得不同子任務(wù)之間能夠保持?jǐn)?shù)據(jù)并行;(2)根據(jù)不同的功能,根據(jù)計算量的不同,計算量大的對它按通道或波束進(jìn)行進(jìn)一步分割,計算量小的功能進(jìn)行合并,使得每個計算核心上運行的程序符合其硬件計算能力要求。本發(fā)明有益的效果是(1)信號處理硬件平臺采用Linux集群,造價低廉、易于構(gòu)建,具有較好可擴(kuò)展性, 且計算能力強(qiáng)大。(2)采用Linux操作系統(tǒng),使得硬件與軟件平臺分離,信號處理編程在一個通用的開發(fā)環(huán)境中進(jìn)行,簡化了信號處理軟件的難度。(3)采用MPI消息傳遞庫進(jìn)行并行程序開發(fā),充分發(fā)揮了集群的并行計算能力。
圖1= Linux集群系統(tǒng)體系結(jié)構(gòu)
圖2實時基陣信號模擬器軟件框圖
圖3信號處理軟件頂層結(jié)構(gòu)圖
圖4主控計算核框圖
圖5信號處理軟件實施方案。
具體實施例方式下面結(jié)合附圖和實施例對本發(fā)明作進(jìn)一步說明本發(fā)明提出了一種基于Linux集群的聲納實時信號處理方法,以Linux集群作為信號處理的硬件平臺。系統(tǒng)體系結(jié)構(gòu)如圖1所示。本發(fā)明將并行處理的設(shè)計思路引入聲納信號處理。將信號處理任務(wù)劃分為各個獨立的子任務(wù),硬件資源的分配和數(shù)據(jù)鏈路由Linux集群自動完成,各個子任務(wù)自動分配運行在各個計算核心上,數(shù)據(jù)流、控制流均通過網(wǎng)絡(luò)通訊方式自動實現(xiàn),不需要人為干預(yù)。實現(xiàn)了不依賴于硬件的聲納信號處理任務(wù),極大地提高了軟件開發(fā)的靈活性和可重構(gòu)性。本發(fā)明使用的Linux集群采用了分布式共享內(nèi)存結(jié)構(gòu)的集群群高性能計算機(jī)(圖 2),計算核間通過高性能網(wǎng)絡(luò)進(jìn)行連接。它是一種造價低廉、易于構(gòu)建,具有較好可擴(kuò)展性的并行機(jī)體系結(jié)構(gòu)。集群中任意兩個計算核間均可以通過網(wǎng)絡(luò)互相通訊,當(dāng)需要擴(kuò)展計算能力時,只需將新增的計算計算核通過網(wǎng)絡(luò)交換機(jī)接入即可,對計算核本身沒有特殊的要求。本發(fā)明包括聲納基陣信號實時模擬器和聲納實時信號處理兩部分。(1)聲納基陣信號實時模擬器本發(fā)明在Linux集群上進(jìn)行信號模擬計算,根據(jù)不同陣形和陣元數(shù)自動分配計算核心數(shù)量。在PC機(jī)上進(jìn)行參數(shù)設(shè)置,將目標(biāo)輻射噪聲、環(huán)境噪聲、傳播損失、目標(biāo)及本艇的運動特征等多種因素引入聲納信號模擬器的仿真,可以根據(jù)目標(biāo)特性產(chǎn)生相應(yīng)的源信號, 根據(jù)環(huán)境特性產(chǎn)生相應(yīng)的環(huán)境噪聲和傳播損失,同時能接入交戰(zhàn)系統(tǒng)和注入實際基陣錄音的數(shù)據(jù)。我們在Linux集群上進(jìn)行基陣信號模擬實時計算,根據(jù)不同陣形和陣元數(shù)自動分配計算核心數(shù)量,實時產(chǎn)生基陣數(shù)字信號,通過網(wǎng)絡(luò)發(fā)送給信號處理部分進(jìn)行處理。包括以下步驟a)平臺運動可以根據(jù)任意設(shè)置的平臺初始態(tài)勢,計算各平臺的當(dāng)前態(tài)勢,顯示當(dāng)前各平臺的經(jīng)緯度,并給出示意圖,還可以接入交戰(zhàn)系統(tǒng),接收實時的目標(biāo)態(tài)勢。b)平臺輻射噪聲可根據(jù)設(shè)置的連續(xù)譜特性生成相應(yīng)的連續(xù)譜源信號,并可疊加DEMON、LOFAR信號,DEMON、LOFAR信號的特性可以設(shè)置。c)背景干擾能根據(jù)不同的海況和航運狀況生成相應(yīng)的環(huán)境噪聲,根據(jù)不同的航速生成相應(yīng)的
自噪聲。d)海洋聲傳播可根據(jù)不同的衰減系數(shù)和吸收系數(shù)產(chǎn)生不同的傳播損失,并可以接入海洋信道濾波器,與源信號卷積生成相應(yīng)的基陣參考信號。e)基陣空間采樣可以進(jìn)行直線陣和圓陣兩種基陣空間采樣。f)注音可以進(jìn)行源信號注音和全基陣注音。實時基陣信號模擬器軟件框圖如圖2,包括以下步驟步驟1 設(shè)置運行參數(shù),包括態(tài)勢參數(shù)、目標(biāo)源參數(shù)、目標(biāo)注入?yún)?shù)和環(huán)境參數(shù)等運行參數(shù)。步驟2 根據(jù)傳入的目標(biāo)態(tài)勢計算各目標(biāo)相對本聲納的距離方位。根據(jù)目標(biāo)源信號參數(shù)計算目標(biāo)源信號,根據(jù)環(huán)境參數(shù)計算傳播損失和環(huán)境噪聲。步驟3 根據(jù)聲納方程計算出基陣參考信號。步驟4 設(shè)基陣陣元數(shù)為N(標(biāo)號為0 (N-I)),而所需集群的計算核心數(shù)量為np,向Linux集群申請np個空閑計算核心,核心物理位置由Linux集群隨機(jī)分配,內(nèi)部統(tǒng)一視為0到np號核心,將基陣參考信號廣播到這np個計算核心上,每個計算核心自行按時延計算N/np個基元輸出信號。步驟5 在0號計算核心上收集所有基元輸出信號,發(fā)送給信號處理部分。根據(jù)航向/航速計算出下一步目標(biāo)和本聲納的位置(即新的態(tài)勢信息),轉(zhuǎn)步驟3。(2)聲納實時信號處理本發(fā)明的信號處理軟件采用主從式的編程方式,主控計算核心負(fù)責(zé)控制和與外部通訊功能,并且收集各個信號處理任務(wù)的結(jié)果進(jìn)行匯總。根據(jù)聲納信號處理的不同功能的特點,將信號處理任務(wù)分割成合理的子任務(wù),將它們分配給集群上的不同計算核心進(jìn)行并行處理。上訴所有子任務(wù)及主控計算核心均以單獨的進(jìn)程方式運行在Linux集群上,進(jìn)程之間的數(shù)據(jù)和命令傳遞均采用MPI消息傳遞的方式,以保證其同步性,從而實現(xiàn)多進(jìn)程獨立并行計算。軟件頂層結(jié)構(gòu)圖如圖3。包括以下步驟步驟1 在Linux集群上并行啟動所需要的M個進(jìn)程,每個進(jìn)程運行在一個空閑的計算核心上。進(jìn)程0為主進(jìn)程,即主控計算核心。步驟2 主控計算核啟動雙線程,主線程等待接收信號處理結(jié)果,并進(jìn)行組織后, 使用UDP協(xié)議發(fā)送至模擬顯控臺進(jìn)行顯示。子線程采用阻塞UDP接收方式等待接收顯控臺發(fā)來的控制命令,主控節(jié)點根據(jù)命令碼選擇發(fā)送給相關(guān)的信號處理節(jié)點,采用的方式為MPI 標(biāo)準(zhǔn)發(fā)送方式。主控計算核框圖如圖4。步驟3 信號處理相關(guān)計算核使用廣播方式接收基陣數(shù)據(jù),并進(jìn)行相應(yīng)信號處理后,使用MPI發(fā)送結(jié)果至主控節(jié)點。另外在信號處理過程中,采用MPI非阻塞方式接收主控節(jié)點發(fā)來的命令。信號處理任務(wù)按兩個層次進(jìn)行子任務(wù)的劃分1)首先進(jìn)行粗粒度的劃分,對信號處理功能所需數(shù)據(jù)的相關(guān)性,按功能進(jìn)行劃分, 使得不同子任務(wù)之間能夠保持?jǐn)?shù)據(jù)并行。2)根據(jù)不同的功能,根據(jù)計算量的不同,計算量大的對它按通道或波束進(jìn)行進(jìn)一步分割,計算量小的功能進(jìn)行合并,使得每個計算核心上運行的程序符合其硬件計算能力要求。信號處理軟件實施方案如圖5。軟件運行環(huán)境基于Linux操作系統(tǒng)和MPI消息傳遞庫,軟件運行時會自動尋找集群上空閑的計算核心,各個進(jìn)程運行的物理核心由系統(tǒng)自動分配,無須人為指定,而且任意進(jìn)程之間均可通過MPI網(wǎng)絡(luò)進(jìn)行數(shù)據(jù)交換和通訊。因此,在一個Linux集群中,可以同時運行和部署多部聲納信號處理,并且可以任意改變不同聲納運行的物理計算核心,具有極大的靈活性。最后應(yīng)說明,以上實例僅用以說明本發(fā)明的技術(shù)方案并且不限與此,而是在應(yīng)用上可以延伸到其它的修改,變化,應(yīng)用,并且認(rèn)為所有這樣的修改,變化,應(yīng)用,實施實例都在本發(fā)明的精神和范圍內(nèi)。
權(quán)利要求
1.一種基于Linux集群的聲納實時信號處理實現(xiàn)方法,其特征是 (1)、聲納基陣信號實時模擬在Linux集群上進(jìn)行基陣信號模擬實時計算,根據(jù)不同陣形和陣元數(shù)自動分配計算核心數(shù)量,實時產(chǎn)生基陣數(shù)字信號,通過網(wǎng)絡(luò)發(fā)送給信號處理部分進(jìn)行處理,包括以下步驟 步驟1 設(shè)置運行參數(shù),包括態(tài)勢參數(shù)、目標(biāo)源參數(shù)、目標(biāo)注入?yún)?shù)和環(huán)境參數(shù); 步驟2 根據(jù)傳入的目標(biāo)態(tài)勢計算各目標(biāo)相對本聲納的距離方位,根據(jù)目標(biāo)源信號參數(shù)計算目標(biāo)源信號,根據(jù)環(huán)境參數(shù)計算傳播損失和環(huán)境噪聲; 步驟3 根據(jù)聲納方程計算出基陣參考信號;步驟4 設(shè)基陣陣元數(shù)為N,標(biāo)號為0 (N-I),而所需集群的計算核心數(shù)量為np,向 Linux集群申請np個空閑計算核心,核心物理位置由Linux集群隨機(jī)分配,內(nèi)部統(tǒng)一視為0 到np號核心,將基陣參考信號廣播到這np個計算核心上,每個計算核心自行按時延計算N/ np個基元輸出信號;步驟5 在0號計算核心上收集所有基元輸出信號,發(fā)送給信號處理部分,根據(jù)航向/ 航速計算出下一步目標(biāo)和本聲納的位置,即新的態(tài)勢信息,轉(zhuǎn)步驟3 ; O)、聲納實時信號處理根據(jù)聲納信號處理的不同功能的特點,將信號處理任務(wù)分割成合理的子任務(wù),將它們分配給集群上的不同計算核心進(jìn)行并行處理,上述所有子任務(wù)及主控計算核心均以單獨的進(jìn)程方式運行在Linux集群上,進(jìn)程之間的數(shù)據(jù)和命令傳遞均采用MPI消息傳遞的方式,保證其同步性,從而實現(xiàn)多進(jìn)程獨立并行計算;包括以下步驟步驟1 在Linux集群上并行啟動所需要的M個進(jìn)程,每個進(jìn)程運行在一個空閑的計算核心上。進(jìn)程0為主進(jìn)程,即主控計算核心;步驟2 主控計算核啟動雙線程,主線程等待接收信號處理結(jié)果,并進(jìn)行組織后,使用 UDP協(xié)議發(fā)送至模擬顯控臺進(jìn)行顯示;子線程采用阻塞UDP接收方式等待接收顯控臺發(fā)來的控制命令,主控節(jié)點根據(jù)命令碼選擇發(fā)送給相關(guān)的信號處理節(jié)點,采用的方式為MPI標(biāo)準(zhǔn)發(fā)送方式;步驟3 信號處理相關(guān)計算核使用廣播方式接收基陣數(shù)據(jù),并進(jìn)行相應(yīng)信號處理后,使用MPI發(fā)送結(jié)果至主控節(jié)點;另外在信號處理過程中,采用MPI非阻塞方式接收主控節(jié)點發(fā)來的命令。
2.根據(jù)權(quán)利要求1所述的基于Linux集群的聲納實時信號處理實現(xiàn)方法,其特征是 信號處理任務(wù)按兩個層次進(jìn)行子任務(wù)的劃分(1)首先進(jìn)行粗粒度的劃分,對信號處理功能所需數(shù)據(jù)的相關(guān)性,按功能進(jìn)行劃分,使得不同子任務(wù)之間能夠保持?jǐn)?shù)據(jù)并行;(2)根據(jù)不同的功能,根據(jù)計算量的不同,計算量大的對它按通道或波束進(jìn)行進(jìn)一步分割,計算量小的功能進(jìn)行合并,使得每個計算核心上運行的程序符合其硬件計算能力要求。
全文摘要
本發(fā)明涉及一種基于Linux集群的聲納實時信號處理實現(xiàn)方法,包括聲納基陣信號實時模擬器和聲納實時信號處理兩部分。本發(fā)明將并行處理的設(shè)計思路引入聲納信號處理,將信號處理任務(wù)劃分為各個獨立的子任務(wù),硬件資源的分配和數(shù)據(jù)鏈路由Linux集群自動完成,各個子任務(wù)自動分配運行在各個計算核心上,數(shù)據(jù)流、控制流均通過網(wǎng)絡(luò)通訊方式自動實現(xiàn),不需要人為干預(yù)。本發(fā)明有益的效果是信號處理硬件平臺采用Linux集群,造價低廉、易于構(gòu)建,具有較好可擴(kuò)展性,且計算能力強(qiáng)大。采用Linux操作系統(tǒng),使得硬件與軟件平臺分離,信號處理編程在一個通用的開發(fā)環(huán)境中進(jìn)行,簡化了信號處理軟件的難度。采用MPI消息傳遞庫進(jìn)行并行程序開發(fā),充分發(fā)揮了集群的并行計算能力。
文檔編號G06F9/46GK102183759SQ201110032990
公開日2011年9月14日 申請日期2011年1月25日 優(yōu)先權(quán)日2011年1月25日
發(fā)明者劉輝濤, 孔強(qiáng), 彭玲, 文明 申請人:中國船舶重工集團(tuán)公司第七一五研究所