代中華 周勝增 程 威 張國超
(上海船舶電子設(shè)備研究所 上海 201108)
近年來,隨著各國水下武器裝備技術(shù)的突飛猛進,在未來海戰(zhàn)中,來自水下目標(biāo)的威脅日趨嚴(yán)重。能否對水下目標(biāo)實現(xiàn)正確、快速的檢測和分類,對于海軍水面艦艇的作戰(zhàn)能力和生存能力至關(guān)重要。目前對水下目標(biāo)的檢測分類主要依靠時域、頻域或時頻聯(lián)合域的噪聲特性分析[1]。其中基于LOFAR和DEMON的頻域分析技術(shù)在國內(nèi)外目標(biāo)識別領(lǐng)域中得到了廣泛應(yīng)用[2~3]。但這些都忽略了聽音員的聽覺感知能力在聲納目標(biāo)識別中的作用,在聽覺機理下人類可以較容易地分辨聲信號的主觀描述特征。隨著聽覺科學(xué)的發(fā)展,聽覺生理和聽覺心理研究取得了大量的成果,在語音識別領(lǐng)域中得到了廣泛的應(yīng)用。將聽覺科學(xué)的研究成果應(yīng)用到對水下目標(biāo)噪聲信號中,分析聽音員聽覺分類頻幅特征,對提高被動聲納目標(biāo)識別系統(tǒng)的性能意義重大[4~5]。本文針對水下目標(biāo)聽音的需求,提出了一種基于VxWorks的水下目標(biāo)偵聽方法的設(shè)計與實現(xiàn)。
通常情況下,聲納處于值班模式,當(dāng)出現(xiàn)疑似目標(biāo)時,聽音員對疑似目標(biāo)所在區(qū)域進行偵聽,可對目標(biāo)類型進行提前預(yù)判,或者當(dāng)威脅目標(biāo)自動識別后,聽音員需通過偵聽對目標(biāo)類型進一步確認(rèn)。
水下目標(biāo)偵聽模塊的組成及原理如圖1所示。運行平臺主要由信號處理單元、網(wǎng)絡(luò)接收單元、核心處理單元、音頻處理單元、操控單元、顯示單元組成。信號處理單元:按照一定頻率的噪聲檢測帶寬,對接收的水下濕端信號在偵聽方位上作時域波束形成,然后將偵聽波束輸出進行帶通濾波,再將得到點數(shù)據(jù)累積后按照聲納周期輸出給網(wǎng)絡(luò)接收模塊。網(wǎng)絡(luò)接收單元:接收信號處理波束形成后的信號并通過CPCI總線轉(zhuǎn)發(fā)給核心處理模塊進行數(shù)據(jù)處理,配置滿足PICMG2.16的千兆以太網(wǎng)接口。核心處理單元:為軟件的運行平臺,完成數(shù)據(jù)濾波處理、數(shù)據(jù)轉(zhuǎn)發(fā)、綜合顯示等工作,采用In?tel945GME芯片,配置雙核處理器、主頻1.66GHz、DDR3容量4G。操控單元:負(fù)責(zé)完成偵聽方位、偵聽目標(biāo)的選擇。音頻處理模塊:將通過CPCI總線輸入的單聲道波形數(shù)字信號還原為單聲道模擬音頻。顯示單元:負(fù)責(zé)聲納圖像信息、狀態(tài)信息、目標(biāo)跟蹤信息等綜合狀態(tài)顯示,配置20.1英寸的液晶顯示屏。耳機、揚聲器:用于聽音員偵聽水下目標(biāo)或方位的音頻信息。
圖1 記錄重演模塊的工作原理
總之,當(dāng)聽音員發(fā)現(xiàn)偵聽疑似目標(biāo)或者需要重點關(guān)注某一方位時,他可以通過操控單元進行偵聽目標(biāo)或者方位的選擇,核心處理模塊將輸入的目標(biāo)或者方位信息通過網(wǎng)絡(luò)接收模塊轉(zhuǎn)發(fā)給信號處理模塊,信號處理模塊對該目標(biāo)方位的水下數(shù)據(jù)進行波束形成后形成數(shù)字音頻信息,并通過網(wǎng)絡(luò)接收模塊發(fā)送至核心處理模塊,核心處理模塊對數(shù)字音頻信息進行濾波等數(shù)據(jù)處理,并通過CPCI總線將水下數(shù)字音頻信息傳輸給音頻輸出模塊進行數(shù)模轉(zhuǎn)換、運算放大等處理,并將模擬音頻信號輸出至揚聲器和耳機供聽音員偵聽。
音頻轉(zhuǎn)換模塊是偵聽過程中最重要的模塊,其主要功能是將通過CPCI總線輸入的單聲道波形數(shù)字信號還原為單聲道的模擬音頻信號輸出。實現(xiàn)時輸入采用一路16kHz采樣率的16位精度數(shù)字音頻信號,輸出設(shè)計為符合AC97標(biāo)準(zhǔn)的單路模擬音頻信號。音頻輸出模塊主要由PCI接口芯片、FPGA、音頻D∕A轉(zhuǎn)換器、OP Amps運算放大器等4部分組成,其組成框圖如圖2所示。
來自核心處理模塊的數(shù)字音頻信號通過PCI接口芯片輸入至音頻處理模塊內(nèi)部。由于主機傳輸數(shù)據(jù)的速度較快,本模塊輸出的音頻速率為16KB∕s,所以需要采用FIFO進行數(shù)據(jù)緩存[6]。一般情況下高速數(shù)據(jù)緩存通常采用專用FIFO,但是價格較高,所以我們利用FPGA來實現(xiàn)一個大容量的FIFO,即簡化了系統(tǒng),又提高了效率,其實現(xiàn)原理如圖3所示。在FPGA模塊中實現(xiàn)數(shù)據(jù)的緩存和處理,然后處理過的數(shù)字音頻信號傳入音頻D∕A轉(zhuǎn)換器,音頻D∕A轉(zhuǎn)換器將其轉(zhuǎn)換為模擬音頻信號,最后模擬音頻信號經(jīng)過OP Amps運算放大器放大后輸出至耳機和揚聲器。
圖2 音頻處理模塊組成框圖
圖3 音頻處理模塊原理框圖
圖中PCI接口主要完成本模塊與核心處理模塊的通信,可接收PCI總線的控制信號和數(shù)字音頻數(shù)據(jù),再傳送給本地局部總線,同時可實現(xiàn)對本地局部總線的狀態(tài)查詢和數(shù)據(jù)讀取功能。FPGA主要完成數(shù)字音頻信息的緩存和控制兩項任務(wù)。FPGA內(nèi)部有大量的存儲器資源,可以生成FIFO,且FP?GA有大量的門電路,可以生成控制信號控制數(shù)據(jù)的接收和輸出,同時向PCI接口發(fā)送狀態(tài)信息。設(shè)計時,輸入輸出接口采用CPCI總線接口,切總線符合PICMG 2.0R2.1規(guī)范。
偵聽時,來自音頻處理模塊的模擬音頻信號輸出至耳機通道,功率放大后,推動揚聲器播放。插入耳機后自動切斷揚聲器播放,拔出耳機后自動恢復(fù)揚聲器播放。耳機通道輸出設(shè)計為輸出阻抗32Ω、輸出最大電平 4.5dBu、增益范圍-90dB~30dB、步進0.5dB、帶寬20Hz~20kHz、帶內(nèi)波動±1dB、信噪比不小于90 dB。揚聲器輸出阻抗為8Ω、輸出最大不失真功率3W。
水下目標(biāo)偵聽軟件是在VxWorks操作系統(tǒng)、驅(qū)動程序和支撐軟件的基礎(chǔ)上開發(fā)的應(yīng)用軟件。操作系統(tǒng)采用美國WindRiver公司開發(fā)的一款優(yōu)秀的商用操作系統(tǒng)VxWorks5.5.1,該系統(tǒng)目前廣泛應(yīng)用在航空、航天、軍工、工業(yè)控制等領(lǐng)域,是業(yè)界最流行的嵌入式操作系統(tǒng)之一,并具有高性能的Wind內(nèi)核、多任務(wù)實時調(diào)度、時間片輪轉(zhuǎn)調(diào)度、優(yōu)先級搶占調(diào)度、良好的可裁減性等特點[7]。驅(qū)動層包含:網(wǎng)卡驅(qū)動、顯示驅(qū)動、USB接口模塊等。支撐軟件采用了窗口管理及可視化控件、綜合圖形圖像顯示中間件EGK。通常水下目標(biāo)偵聽軟件是系統(tǒng)軟件的一個部分,以模塊的形式內(nèi)嵌在系統(tǒng)軟件中。
應(yīng)用程序界面的開發(fā)采用了面向?qū)ο蟮拈_發(fā)方法以及綜合圖形圖像顯示EGK中間件。其中,EGK是當(dāng)今較優(yōu)秀的嵌入式跨平臺CHGUI控件庫之一,可支持VxWorks、Jari-Works、Linux等操作系統(tǒng)。EGK采用面向?qū)ο蟮腃++平臺無關(guān)框架,提供全特征的可裁剪和可定制的控件集,用于實現(xiàn)基于事件驅(qū)動的跨平臺的用戶圖形界面開發(fā)。用戶可以在既有控件集的基礎(chǔ)上進行控件的二次開發(fā),即用戶自定義控件,以符合特殊應(yīng)用場合的需求。應(yīng)用層軟件軟件開發(fā)采用圖形開發(fā)工具EGK接口API,包含了人機界面中基本的窗口和控件,開發(fā)時主要用到了以下四個接口類:Egk_Widget(控件基類)、Egk_Group(控件組類)、Egk_Window(窗口類)和 Egk(全局類)[8~10]。
水下目標(biāo)聽音作為系統(tǒng)的一項功能,通常以模塊的形式內(nèi)嵌在系統(tǒng)顯示控制設(shè)備中。在作戰(zhàn)或者演習(xí)過程中,當(dāng)聽音員認(rèn)為有必要對某疑似目標(biāo)或者疑似方位進行偵聽時,他可以通過鼠標(biāo)或者按鍵等操控設(shè)備進行選擇。偵聽時可以選擇用揚聲器或者耳機進行聽音,也可以插入錄音筆進行錄音,供事后進行分析或聽音訓(xùn)練。人機交互界面如下圖4所示。
圖4 人機交互界面
數(shù)據(jù)處理方面,信號處理模塊將波束形成后水下數(shù)字音頻信號通過網(wǎng)絡(luò)傳至核心處理模塊,核心處理模塊將數(shù)字音頻信號進行濾波等預(yù)處理后通過PCI總線轉(zhuǎn)發(fā)至音頻轉(zhuǎn)換模塊,水下數(shù)字信號經(jīng)數(shù)模轉(zhuǎn)換、運算放大后輸出至揚聲器和耳機進行輸出??紤]到人耳聽覺系統(tǒng)獨特的優(yōu)越性,為增強偵聽效果,本文借鑒語音與音樂識別領(lǐng)域的研究成果,利用Gammatone濾波方法對波束形成后的數(shù)字音頻信號進行濾波[11],處理后有效降低海洋背景噪聲,有利于提高聽音員的目標(biāo)識別能力。偵聽數(shù)據(jù)流程圖如圖5所示。
圖5 偵聽數(shù)據(jù)流程圖
在軟件開發(fā)過程中,利用Tornado2.2開發(fā)環(huán)境特有的主機—目標(biāo)機的開發(fā)方式完成軟件的編譯和調(diào)試[12]。主機選用裝有Windows XP系統(tǒng)的PC機,配置雙核處理器、2.93GHz主頻、2G內(nèi)存。目標(biāo)機為配置Intel X86處理器的顯控臺,裝有VxWorks 5.5.1操作系統(tǒng)。開發(fā)調(diào)試時將編譯好的。OUT可執(zhí)行文件并通過網(wǎng)絡(luò)加載到目標(biāo)機RAM中運行,開發(fā)過程簡單方便、易于調(diào)試。當(dāng)程序調(diào)試好后,利用開發(fā)套件工具將程序固化在電子硬盤內(nèi),系統(tǒng)上電后將根據(jù)配置文件中的入口函數(shù)及可執(zhí)行文件名自動啟動固化的應(yīng)用程序。
部分代碼示例如下:
int Scb302Init()∕*語音模塊初始化*∕
{
……
if(pciFindDevice(PCI9054_VENDOR_ID,PCI9054_DE?VICE,0,&bus,&dev,&func)==OK)∕*查找pci9054橋設(shè)備*∕
{
pciInLong (bus,dev,func,PCI_CFG_ADDRESS_2,&baseAddr);
baseAddr=Addr&0xfff00000;
fifoIE=Addr|SCB302_FIFO_INT;∕*SCB302 本地總線FIFO中斷使能寄存器*∕
……
}
}
taskSpawn("tSCB302Play",200,VX_FP_TASK,0x8000,(FUNCPTR)PlayAcoDat,0,0,0,0,0,0,0,0,0,0);∕*啟動偵聽主任務(wù)*∕
void PlayAcoDat()∕*偵聽數(shù)據(jù)處理*∕
{
∕*數(shù)據(jù)濾波處理*∕
while(……)
write(fdScb302,(char*)&pData[index],slen);∕*CPCI數(shù) 據(jù)傳輸*∕
}
本文對在VxWorks操作系統(tǒng)下水下目標(biāo)偵聽方法的設(shè)計與實現(xiàn)進行了詳細(xì)描述,并對該方法進行了工程實現(xiàn),實現(xiàn)結(jié)果表明本方法具有通用化設(shè)計、移植方便、操作簡單、反應(yīng)時間短等優(yōu)點。本文所介紹的技術(shù)已經(jīng)在項目中進行了應(yīng)用,有利于聽音員對疑似目標(biāo)進行提前預(yù)判或者有助于威脅目標(biāo)自動識別后,聽音員通過偵聽對目標(biāo)類型進一步確認(rèn)。目前該方法還是需要人工參與識別過程,接下來作者的工作重點將是針對濾波后的數(shù)據(jù)進行目標(biāo)特征提出,與水下目標(biāo)特征庫進行比對自動識別目標(biāo)類型。