漆萬鵬,劉天華,晏生劍
(1.海裝駐武漢地區(qū)軍事代表局,湖北 武漢 430000;2.海裝駐宜昌地區(qū)軍事代表室,湖北 宜昌 443003;3.中國船舶重工集團有限公司 海聲科技有限公司,湖北 宜昌 443005)
隱蔽性在潛艇作戰(zhàn)效能中起著決定性作用。水聲支援干擾系統(tǒng),其使命是通過逼真模擬潛艇目標聲譜特征及行為特性,形成對敵反潛預警系統(tǒng)和人員心理的干擾及欺騙,提升潛艇作戰(zhàn)效能。
通常情況下,水聲支援干擾系統(tǒng)是由信號處理機完成聲特征譜信號的算法實現(xiàn),信號產(chǎn)生模塊實現(xiàn)信號的數(shù)模轉(zhuǎn)換,功放模塊實現(xiàn)信號的功率放大,換能器實現(xiàn)信號的電聲轉(zhuǎn)換。為了靈活適配各類平臺,方便系統(tǒng)前期方案驗證和效能評估,必須降低系統(tǒng)復雜度。功放模塊和換能器是發(fā)射系統(tǒng)不可缺少的2個環(huán)節(jié),所以將信號處理機與信號產(chǎn)生模塊合二為一是比較理想的解決方案。本文介紹了一種基于FPGA的模擬潛艇噪聲信號產(chǎn)生模塊,綜合了信號處理機與信號產(chǎn)生模塊二者的功能,既能實現(xiàn)聲特征譜信號生成算法,又能實現(xiàn)數(shù)字信號的數(shù)模轉(zhuǎn)換。
該信號產(chǎn)生模塊根據(jù)上位機下發(fā)的參數(shù)命令可以實時產(chǎn)生線譜、調(diào)制譜和寬帶噪聲信號,信號經(jīng)過合成運算、匹配濾波后,再通過高頻、中頻、低頻3路D/A通道輸出,控制發(fā)射系統(tǒng)產(chǎn)生模擬潛艇噪聲信號。
信號產(chǎn)生模塊硬件電路主要由供電電路、FPGA主控電路、串口通信電路、以太網(wǎng)通信電路、深度采集電路、D/A輸出電路、TTL信號控制電路組成,如圖1所示。
圖1 硬件組成框圖Fig.1 Hardware composition block diagram
信號產(chǎn)生模塊需要根據(jù)上位機下發(fā)的命令參數(shù)實時產(chǎn)生相應的模擬潛艇噪聲信號。模擬潛艇噪聲信號的特征需要通過信號發(fā)射系統(tǒng)(功放發(fā)射模塊和換能器)實際工作的頻率特性來進行調(diào)整,信號產(chǎn)生模塊根據(jù)反復測試后確定的參數(shù)產(chǎn)生模擬潛艇噪聲電信號,再經(jīng)發(fā)射系統(tǒng)發(fā)射出逼真的模擬潛艇噪聲水聲信號。
FPGA系統(tǒng)接收到命令參數(shù)數(shù)據(jù)包后,將命令參數(shù)數(shù)據(jù)解析為信號控制參數(shù)和工作控制參數(shù)。
信號控制參數(shù)包含的信息有白噪聲的增益控制、開關控制;每根線譜的起始頻率、截止頻率、調(diào)頻時間、增益控制、開關控制;每根調(diào)制譜的起始頻率、截止頻率、調(diào)頻時間、增益控制、開關控制;各發(fā)射通道的增益控制、開關控制。通過信號控制參數(shù)可以確定白噪聲的增益特性,線譜數(shù)量、線譜頻率特性、線譜增益特性,調(diào)制譜數(shù)量、調(diào)制譜頻率特性、調(diào)制譜增益特性。然后將白噪聲、線譜、調(diào)制譜進行合成生成寬帶噪聲和合頻信號。此時的寬帶信號和合頻信號與發(fā)射系統(tǒng)不匹配,需根據(jù)各發(fā)射通道實測的頻率特性進行均衡濾波,最后經(jīng)發(fā)射控制模塊輸出給功放,以達到模擬潛艇噪聲信號的真實性。
工作控制參數(shù)包含的信息有系統(tǒng)啟動總延時,深度開關設定值、深度開關啟停、達到指定深度后延時、各發(fā)射通道工作時長、任務編號。如果深度開關停止,則系統(tǒng)根據(jù)系統(tǒng)啟動總延時定時,定時完成后啟動信號產(chǎn)生與合成模塊。如果深度開關開啟,則系統(tǒng)啟動總延時、定深啟動、達到指定深度后延時同時工作,深度后延時定時器在達到指定深度后才會開啟,與系統(tǒng)啟動總延時定時器并行工作,以2個定時后定時完成的控制信號作為信號產(chǎn)生與合成模塊啟動標識。各發(fā)射通道工作時長定時器在信號產(chǎn)生與合成模塊開啟后開始工作,定時完成后關閉均衡濾波模塊停止信號輸出。該系統(tǒng)可以同時設置3組參數(shù)存儲在FPGA的RAM中,每組參數(shù)的編號通過參數(shù)編號選項區(qū)分,參數(shù)的工作順序為編號1、編號2、編號3。信號產(chǎn)生模塊工作原理如圖2所示。
圖2 工作原理框圖Fig.2 Working principle block diagram
FPGA是本電路中的核心控制器件,串口協(xié)議解析,各種信號實時產(chǎn)生,信號合成,濾波器實現(xiàn)等均由其實現(xiàn)。電路中選擇 ALTERA公司颶風 3系列EP3C40F324I7作為控制器件[1]。
網(wǎng)絡傳輸功能是本設計中預留的功能,為后期信號處理機控制信號產(chǎn)生模塊做準備。該電路主要實現(xiàn)百兆以太網(wǎng)全雙工網(wǎng)絡通訊。百兆網(wǎng)絡物理層采用以太網(wǎng)芯片 DP83640實現(xiàn),與 FPGA內(nèi)部MAC控制器通過MII接口連接。
D/A芯片選用TI公司的16位分辨率的D/A芯片DAC8830ICD,輸出信號先經(jīng)過1級電壓跟隨電路增加驅(qū)動能力,然后經(jīng)過電容隔直流電壓[2],接著通過1階RC低通濾波器進行平滑慮波,最后通過差分運放THS4130放大輸出[3]。
RS232通信選擇MAXIM公司的低功耗收發(fā)器MAX3227。選用表壓型深度傳感器,由 ADS8320采樣得到深度數(shù)據(jù)??刂戚敵觥顟B(tài)輸入接口使用電平轉(zhuǎn)換芯片SN74LVC2T45實現(xiàn)3.3 V與5 V TTL電平轉(zhuǎn)換系統(tǒng)輸入電壓為±8 V,需要產(chǎn)生±5 V,+3.3 V,+2.5 V,+1.2 V共5路穩(wěn)定電源。+5 V和+3.3 V電源選用LINEAR公司的DCDC芯片LT3991產(chǎn)生。+2.5 V和+1.2 V電源電流需求較小,選用LINEAR公司的VLDO芯片LT3022產(chǎn)生。-5 V電源選用TI公司的負輸入電壓LDO芯片tps7a3001產(chǎn)生。
偽隨機序列是人為構成的數(shù)字序列,只包含高低2種電平,它是離散的,不具有真正的正態(tài)分布特性,但當序列的長度逼近無限大時,它趨于正態(tài)分布[4]。
本設計中數(shù)字白噪聲是使用63位移位寄存器產(chǎn)生的m序列偽隨機碼實現(xiàn)。移位寄存器noise的初始值為63位2進制數(shù)63'h491290201840B084(16進制表示方法),移位寄存器每個時鐘周期右移一位,將移位寄存器第 0位 noise[0]與第 1位noise[1]進行異或運算,運算結果賦值給第 62位noise[62],此運算方法作為m序列特征多項式。
因為使用D/A芯片為16位分辨率,所以M序列輸出也定義為16位寄存器。將移位寄存器noise的低16位noise[15:0]作為M序列輸出,即得到16位白噪聲數(shù)據(jù)。
線譜信號為單頻或者調(diào)頻的正弦信號,可以使用Altera官方提供的NCO IP Core來實現(xiàn)。NCO IP Core即數(shù)字壓控振蕩器知識產(chǎn)權核可以通過多種算法實現(xiàn)一個離散的正弦波信號輸出[5]。正弦波信號時域方程如下:
式中:T為該模塊的工作時鐘周期;f0為輸入頻率控制字φINC設置的未調(diào)制的輸出信號頻率;fFM是調(diào)制頻率控制字φPM決定的調(diào)制頻率;φPM為該輸出正弦波的調(diào)制相位,,由輸入控制字p的比特位數(shù)pwidth決定它的精度;φDITH為模塊內(nèi)部自身的不穩(wěn)定而引起的相位雜散(噪聲);幅值 A=2N-1,其中N為幅值精度,取值在4~32之間。
f0與頻率控制字φINC滿足以下關系:
式中:M為相位累加器精度;fclk為模塊工作時鐘頻率。
輸出信號頻率精度:
通過Altera公司的FPGA編譯軟件 QuartusII 12.0 中的MegaWizard Plug-In Manager 功能調(diào)用NCO V12.0 軟核,配置軟核中相應參數(shù),根據(jù)式(1)-(3)來實現(xiàn)所需要的頻率輸出功能。NCO軟核的實現(xiàn)選擇 CORDIC算法,相位累加器精度設為24位,輸出幅值精度為16位,輸入時鐘頻率為340 kHz。CORDIC算法實施方案選擇串行模式,目標器件選擇Cyclone III,1路NCO通道,1路頻率預置分支,單路正弦信號輸出。
NCO模塊信號輸出是連續(xù)變化的,不隨φINC設置值發(fā)生改變而間斷。為了實現(xiàn)NCO模塊的線性調(diào)頻信號輸出,需要等時等量的改變φINC設置值。
信號頻率從fstart到fend線性變化,信號輸出時間寬度為φwidtht,每1 s改變INCφ設置值,則INCφ變化次數(shù)為 n um =twidth/1s 。根據(jù)關系式(2)得,起始頻率fstart對應的φINC設置值為
截止頻率fend對應的φINC設置值為
每1 s后φINC設置值步進量為
收到信號控制參數(shù)后,首先根據(jù)式(4)-(6)分別計算出線譜產(chǎn)生的起始頻率、截止頻率和每秒頻率增量,然后將 NCO模塊的復位信號nco_reset_n拉低,對NCO模塊進行初始化,使能NCO模塊時鐘使能信號nco_clken。然后將φstart賦值給NCO模塊的相位累加寄存器nco_pfi_inc_i,輸出起始頻率正弦信號,等待1 s將φstart與φplus相加值賦給 nco_pfi_inc_i,輸出下一個頻率遞增的信號,像這樣連續(xù)輸出(num-1)個頻率遞增的正弦信號就實現(xiàn)了調(diào)頻線譜信號輸出。如果設置的調(diào)頻信號的起始頻率與截止頻率一致,則輸出為固定線譜。
寬帶噪聲是多根調(diào)制譜信號(單頻或者調(diào)頻的正弦信號,與線譜實現(xiàn)方式一致)相加與白噪聲調(diào)制出來的寬帶譜信號,是白噪聲信號與調(diào)制譜信號運算的結果。合頻信號是多根線譜信號與寬帶譜信號相加的結果。
因為單根線譜、調(diào)制譜信號均為16位有符號數(shù),5根線譜、調(diào)制譜信號相加有溢出的可能,為了避免數(shù)據(jù)溢出,將16位有符號數(shù)轉(zhuǎn)換為19位有符號數(shù),然后將 5根線譜、調(diào)制譜分別相加得到線譜合信號s_sum,調(diào)制譜合信號 t_sum。根據(jù)有符號數(shù)移位方法,正數(shù)溢出取最大值,負數(shù)溢出取最小值,將調(diào)制譜合頻信號轉(zhuǎn)換為16位有符號數(shù)t_sum_buf[6]。
將(t_sum_buf+16’h8000)的16位無符號數(shù)調(diào)制譜合頻信號與16位有符號數(shù)白噪聲noise_buf相乘,根據(jù)有符號乘法運算方法,根據(jù)noise_buf的符號位來分別進行無符號數(shù)乘法運算,結果為32位有符號數(shù)t1_noise。然后換算為16位有符號數(shù),得到用于中頻、高頻通道輸出的寬帶噪聲信號t_noise,然后將線譜s_sum與t_noise相加,并轉(zhuǎn)換為16位有符號數(shù)便得到用于低頻通道輸出的合頻信號。
均衡濾波的目的是為了彌補發(fā)射系統(tǒng)不同頻帶發(fā)射響應的不一致性,盡量使發(fā)射系統(tǒng)發(fā)射響應一致,逼近真實的潛艇噪聲情況。均衡濾波的實現(xiàn)即在 FPGA內(nèi)部實現(xiàn)與發(fā)射系統(tǒng)相匹配的數(shù)字濾波器。根據(jù)單位沖激響應函數(shù)的時域特性,數(shù)字濾波器可分為IIR濾波器和FIR濾波器,這里使用具有線性相位的FIR濾波[7]。
FIR有限脈沖響應濾波器的特點是單位脈沖響應是一個有限長序列,其數(shù)學表達式為
式中:N表示FIR濾波器的抽頭數(shù);y(n) 表示第n時刻的輸出樣本;h(k) 表示FIR濾波器的第k級抽頭系數(shù);x [n-k]表示延時k個抽頭的輸入信號。用加法器和乘法器不難實現(xiàn)這種結構的FIR濾波器,傳給每個乘法器的操作數(shù)就是一個FIR系數(shù)。所需乘法次數(shù)是N,加法次數(shù)是N-1。
數(shù)字濾波設計中最關鍵的部分為 FIR濾波器的實現(xiàn)和濾波器系數(shù)的設計。FIR Megacore 是ALTERA公司針對其主流 FPGA推出的一款商業(yè)化的數(shù)字濾波器IP核,可直接生成HDL代碼,同時其結構針對ALTERA自己的FPGA做了各種優(yōu)化。FIR Megacore提供了濾波器系數(shù)導入功能,可以使用第三方工具生成的系數(shù),這使得我們能夠通過FIR Megacore調(diào)用計算出來的濾波器系數(shù)快速實現(xiàn)均衡濾波。
濾波器系數(shù)需要根據(jù)發(fā)射系統(tǒng)實際的發(fā)射響應來設計、調(diào)整。根據(jù)系統(tǒng)發(fā)射相應數(shù)據(jù)我們可以使用Matlab fir2函數(shù)來快速設計濾波器系數(shù):
式中:n代表生產(chǎn)的濾波器階數(shù);f為歸一化的頻率向量;m為與f對應的歸一化幅度向量;b即為根據(jù)頻率向量、幅度向量對應的幅頻特性所生成的n階濾波器系數(shù)[8]。假設濾波器采樣頻率定義為fs,實測數(shù)據(jù)的頻率向量為 f1,與之對應的幅度向量為m1(dB),那么歸一化的頻率向量為
歸一化的幅度向量的轉(zhuǎn)換應先找到最小幅度值m1_min,計算各頻點將到最低幅度值的衰減量:
按頻率向量長度補齊幅度衰減量向量:
最后將幅度衰減量向量值換算為增益倍數(shù)值,即得到歸一化的幅度向量
濾波器階數(shù) n的確定與均衡濾波的性能直接相關。濾波器頻率分辨率為fs/n,濾波器階數(shù)越高,頻率分辨率越小,但濾波器系數(shù)數(shù)據(jù)量也越大,占用更多FPGA資源。所以濾波器階數(shù)需要根據(jù)實際應用情況來決定,既要保證均衡濾波效果,又不浪費過多FPGA邏輯資源。本設計中,采樣頻率fs=20 kHz,濾波器階數(shù)n=1 023,濾波器頻率分辨率接近20 Hz,可以滿足均衡濾波需求。
上位機軟件參數(shù)設置為:通道 1開啟、增益-6 dB;白噪聲開啟、增益-6 dB;線譜1開啟、頻率48 Hz、增益-3 dB;線譜2開啟、頻率67 Hz、增益-6 dB;線譜3開啟、頻率107 Hz、增益-9 dB;線譜4開啟、頻率155 Hz、增益-12 dB。使用示波器測量低頻輸出通道,設置示波器采樣率為10 kHz,信號穩(wěn)定后抓取1 s的數(shù)據(jù)通過網(wǎng)口上傳到上位機,使用MATLAB對數(shù)據(jù)解析,信號時域波形如圖3所示。
對采樣數(shù)據(jù)做FFT分析,將低頻段展開后如圖4所示(縱坐標為有效值)。線譜的頻率分別為48 Hz、67 Hz、107 Hz、155 Hz與設置參數(shù)值吻合,并且信號幅度依次變小,與增益設置值相符,由于信號經(jīng)過匹配濾波,所以幅度與設置增益值有一定差別。
信號頻譜圖如圖5所示(縱坐標為dB),可以看到設置的4個線譜,20~200 Hz的帶通濾波器及帶內(nèi)均衡濾波造成的頻譜起伏。
圖3 時域波形Fig.3 Time domain waveform
圖4 低頻段頻譜圖Fig.4 Low frequency spectrum
該信號產(chǎn)生模塊實現(xiàn)了聲特征譜信號生成算法,降低了水聲支援干擾系統(tǒng)的復雜度,縮短了項目周期,提高了水聲支援干擾系統(tǒng)的適裝性,已成功應用到多個預研課題,并順利完成湖上試驗。應用該信號產(chǎn)生模塊,能為項目前期方案驗證和效能評估提供便捷,同時該模塊預留網(wǎng)絡接口,可以與信號處理機連接,實現(xiàn)更復雜的模擬目標聲特征譜信號產(chǎn)生。
圖5 全頻段頻譜圖Fig.5 Full-band spectrogram