安 明,竺小松
(國防科技大學(xué),安徽 合肥 230037)
隨著電子信息技術(shù)在各個(gè)領(lǐng)域的廣泛應(yīng)用與快速發(fā)展,電子信息領(lǐng)域的對(duì)抗愈加激烈,傳統(tǒng)電子對(duì)抗面臨更多挑戰(zhàn)。在復(fù)雜電磁環(huán)境條件下,信號(hào)頻率范圍更寬,通信樣式更為復(fù)雜,通信手段更為靈活[1];而傳統(tǒng)噪聲干擾主要是以單載波調(diào)制為主,例如包括噪聲調(diào)幅干擾、噪聲調(diào)頻干擾、噪聲調(diào)相干擾等,通常功耗大,效率低,靈活性差,頻率穩(wěn)定度差,影響干擾效果。因此,具有寬帶、多目標(biāo)干擾的靈活便捷干擾成為研究的熱點(diǎn)[2]。
本文通過采用正交頻分復(fù)用調(diào)制,根據(jù)目標(biāo)信號(hào)的頻譜特征對(duì)干擾信號(hào)的頻帶進(jìn)行控制,產(chǎn)生具有相應(yīng)功率譜的干擾信號(hào),實(shí)現(xiàn)多目標(biāo)干擾;同時(shí),基于GNU Radio軟件無線電平臺(tái)開發(fā)信號(hào)處理模塊及噪聲干擾系統(tǒng),結(jié)合通用硬件外設(shè),替代傳統(tǒng)硬件電路的信號(hào)處理部分,提高了系統(tǒng)的通用性和靈活性。
軟件無線電(SDR)是一種多頻段無線電,由天線、射頻前端、模數(shù)/數(shù)模轉(zhuǎn)換模塊等構(gòu)成,可以滿足多種不同的空中接口和協(xié)議,具有靈活性和開放性[3]。軟件無線電通過軟件與硬件相結(jié)合的方式,實(shí)現(xiàn)根據(jù)不同用戶需求、通信協(xié)議甚至某個(gè)算法來對(duì)通用硬件平臺(tái)和搭載的開源軟件進(jìn)行相應(yīng)的編程配置,從而實(shí)現(xiàn)相應(yīng)的功能[4]。軟件無線電提供了能夠滿足多模式、多頻段、多功能的無線通信解決方案[5],用軟件編程對(duì)通用硬件平臺(tái)的可重新配置實(shí)現(xiàn)傳統(tǒng)硬件電路的功能,所以軟件無線電開發(fā)不只是電路設(shè)計(jì),更多地是對(duì)搭載到通用硬件平臺(tái)的軟件開發(fā)與設(shè)計(jì),從而降低對(duì)硬件資源的依賴,具有靈活性。同時(shí),軟件無線電支持模塊化設(shè)計(jì),通過對(duì)搭載的開源軟件包提供信號(hào)處理模塊進(jìn)行不同組合配置,能夠?qū)崿F(xiàn)不同無線電業(yè)務(wù)需求(包括頻段、調(diào)制方式等等),具有開放性[6]。
軟件無線電系統(tǒng)主要包括3個(gè)部分:基于天線、收發(fā)子板等的射頻前端模塊、數(shù)模/模數(shù)(AD/DA)轉(zhuǎn)換模塊以及基于通用處理器的數(shù)字信號(hào)處理模塊(DSP),如圖1所示。其中,射頻前端模塊主要用來完成射頻信號(hào)的接收與發(fā)送;AD/DA轉(zhuǎn)換模塊作為聯(lián)系模擬信號(hào)與數(shù)字信號(hào)的紐帶,用來連接射頻前端模塊和數(shù)字信號(hào)處理模塊;最后是DSP模塊,主要用于實(shí)現(xiàn)基帶信號(hào)的調(diào)制/解調(diào)以及編碼/解碼等等。
圖1 GNU Radio軟件無線電架構(gòu)
GNU Radio是常見軟件無線電平臺(tái)之一,是由麻省理工學(xué)院(MIT)開發(fā)的一個(gè)開源軟件開發(fā)工具包,能夠提供豐富的信號(hào)處理模塊,使用通用軟件無線電外圍設(shè)備(USRP),基于射頻硬件及通用處理器開發(fā)相應(yīng)功能[7]。它既能應(yīng)用于創(chuàng)建軟件無線電平臺(tái),也可以用于仿真環(huán)境中。GNU Radio支持多種多樣的信號(hào)處理,利用不同信號(hào)處理模塊的組合創(chuàng)建應(yīng)用程序并通過硬件設(shè)備發(fā)送或接收數(shù)據(jù),實(shí)現(xiàn)不同的信號(hào)處理功能。GNU Radio具有豐富的元件庫,同時(shí)它也能支持這些元件相互連接,將數(shù)據(jù)從一個(gè)模塊傳遞到另一個(gè)模塊,支持流圖式設(shè)計(jì),從而有利于軟件部分開發(fā)。如果需要特定功能的模塊,也支持?jǐn)U展GNU Radio元件庫,創(chuàng)建并添加所需功能的模塊。GNU Radio應(yīng)用程序主要使用Python編程語言編寫,一些復(fù)雜的信號(hào)處理也可以使用C ++語言來實(shí)現(xiàn)?;谝陨咸攸c(diǎn),GNU Radio軟件無線電平臺(tái)得到廣泛應(yīng)用。
(1)
圖2 多載波調(diào)制原理
通常采用離散傅里葉變換來實(shí)現(xiàn)OFDM調(diào)制,設(shè)Xk(k=0,2,…,N-1)表示待傳輸信號(hào),經(jīng)過逆向傅里葉變換后則得到信號(hào)序列xn,其中xn與Xk滿足:
(2)
因此,OFDM調(diào)制可采用離散傅里葉逆變換(IDFT)實(shí)現(xiàn),將待發(fā)送數(shù)據(jù)Xk分別映射到對(duì)應(yīng)的子載波作為頻域數(shù)據(jù),經(jīng)過IDFT運(yùn)算后即得到時(shí)域信號(hào)xn。在應(yīng)用過程中,也可以采用IFFT運(yùn)算來實(shí)現(xiàn),從而有效降低算法復(fù)雜度。
OFDM子載波間是相互正交的,一個(gè)OFDM符號(hào)的周期是每個(gè)子載波周期的整數(shù)倍,且相鄰子載波之間相差1個(gè)周期,即:
(3)
所以,在每個(gè)子載波上可以根據(jù)不同背景環(huán)境對(duì)子信道采用相應(yīng)的調(diào)制方式或控制[9]。利用這一特點(diǎn),可在偵察目標(biāo)的頻譜特征后,通過對(duì)干擾信號(hào)子信道的幅度控制,產(chǎn)生相應(yīng)頻帶范圍和功率的干擾信號(hào),從而靈活控制干擾信號(hào)功率譜。
噪聲干擾信號(hào)產(chǎn)生原理如圖3所示,首先根據(jù)頻譜感知偵察周圍電磁環(huán)境信息,并根據(jù)偵察得到的情報(bào)選擇噪聲序列,在串并轉(zhuǎn)換后通過頻譜干擾控制模塊設(shè)置產(chǎn)生對(duì)應(yīng)的干擾信號(hào)頻譜控制參數(shù),在經(jīng)過快速傅里葉逆變換(IFFT)模塊以及并串轉(zhuǎn)換后即得到具有特定頻譜的時(shí)域干擾信號(hào)。
圖3 噪聲干擾系統(tǒng)原理
首先,進(jìn)行系統(tǒng)控制部分設(shè)計(jì)。系統(tǒng)控制主要分4個(gè)部分:系統(tǒng)參數(shù)配置、噪聲類型選擇、干擾信號(hào)配置類型、噪聲序列及干擾頻譜顯示。首先是系統(tǒng)參數(shù)配置,可設(shè)置子載波個(gè)數(shù),選擇干擾信號(hào)配置類型以及USRP終端射頻中心頻率;其次是噪聲序列類型選擇,包括均勻噪聲、高斯噪聲以及混沌噪聲;第三部分是干擾信號(hào)配置類型,包括音頻干擾以及部分頻帶干擾(多音干擾即使用單個(gè)或多個(gè)正弦波的干擾信號(hào),當(dāng)使用單個(gè)正弦波時(shí)即為單音干擾,相對(duì)地使用多個(gè)正弦波時(shí)則為多音干擾。在音頻干擾模式下,可根據(jù)目標(biāo)信號(hào)頻譜特征選擇相應(yīng)的一個(gè)或多個(gè)相應(yīng)的子信道映射噪聲序列,從而產(chǎn)生相應(yīng)的干擾信號(hào);部分頻帶干擾將頻帶劃分為一個(gè)或多個(gè)子頻帶,從而使得干擾能量更為集中,提高干擾效果,在部分頻帶干擾模式下,可分別設(shè)置多個(gè)具有不同帶寬的干擾頻帶);最后是顯示部分,實(shí)時(shí)顯示當(dāng)前輸出的時(shí)域噪聲干擾信號(hào)及其頻譜,從而可根據(jù)目標(biāo)信號(hào)的頻譜特征對(duì)干擾信號(hào)作相應(yīng)調(diào)整。
根據(jù)系統(tǒng)設(shè)計(jì),在GNU Radio開發(fā)平臺(tái)中開發(fā)噪聲干擾信號(hào)產(chǎn)生系統(tǒng)。系統(tǒng)信號(hào)處理模塊的基帶信號(hào)處理在GNU Radio軟件平臺(tái)完成,主要包括3個(gè)方面,即流圖、信號(hào)處理模塊以及作為流圖與信號(hào)處理模塊間接口的SWIG(Simplified Wrapper and Interface Generator)。GNU Radio軟件平臺(tái)主要基于Python語言和C++語言編程實(shí)現(xiàn),其中C++編程執(zhí)行效率較高,主要用于底層的GNU Radio信號(hào)處理模塊;Python編程更為簡單且具有面向?qū)ο蟮奶攸c(diǎn),用于信號(hào)處理模塊相互組合連接,得到不同基帶信號(hào)處理功能的應(yīng)用設(shè)計(jì)。由于信號(hào)處理模塊采用C++語言編程,而流圖采用Python語言來連接信號(hào)處理模塊,因此需要接口(SWIG)實(shí)現(xiàn)Python和C++之間的轉(zhuǎn)換。GNU Radio軟件平臺(tái)包含豐富的信號(hào)處理模塊庫,因此可以通過直接調(diào)用這些模塊并連接得到流圖,最后作為應(yīng)用程序運(yùn)行,實(shí)現(xiàn)相應(yīng)的信號(hào)處理功能,這樣一定程度上避免了直接底層C++編程細(xì)節(jié),提高了開發(fā)效率。
基于GNU Radio平臺(tái)開發(fā)混沌噪聲產(chǎn)生模塊,并安裝到GNU Radio信號(hào)處理庫?;煦绗F(xiàn)象介于確定與隨機(jī)關(guān)系之間,是客觀存在的一種重要的形式,看似沒有規(guī)則的非周期的運(yùn)動(dòng)現(xiàn)象,但對(duì)初始條件很敏感,微小的變化也會(huì)產(chǎn)生無法確定的結(jié)果,具有很強(qiáng)的復(fù)雜性和奇異性,因而相對(duì)其他偽隨機(jī)序列得到了更多關(guān)注[10-11]。本文采用Logistic混沌模型產(chǎn)生混沌序列,其方程為xn+1=μ·xn·(1-xn),取初值x0為0.22,μ取值為4。第1步,在Linux系統(tǒng)下,利用gr_modtoolnewmod命令生成新的模塊gr-mymodle,在新生成的模塊gr-mymodle中用gr_modtool add -t sync -l python 命令生成新的信號(hào)處理模塊(block),-t source選擇其類型為source,-l python編程語言為Python,并設(shè)置模塊屬性(初始值,模塊名等);第2步,在新建模塊中用Python編程,通過Logistic混沌模型產(chǎn)生混沌序列,由outputitems[0]端口輸出;第3步,修改xml文件,設(shè)置模塊輸出以及參量屬性,執(zhí)行“make install”命令安裝模塊。
最后,基于GNU Radio平臺(tái)實(shí)現(xiàn)干擾系統(tǒng)。采用隨機(jī)序列模塊Random Source及混沌噪聲模塊作為信源輸入,經(jīng)過子載波映射模塊(OFDM Carrier Allocator)分配到各子載波,并通過信道控制模塊來控制子信道,產(chǎn)生不同帶寬的干擾信號(hào)頻譜,然后通過快速傅里葉變換(FFT)模塊進(jìn)行IFFT運(yùn)算(這里FFT模塊的Forward/Reverse設(shè)置為Reverse,實(shí)現(xiàn)IFFT功能),同時(shí)增加QT模塊來顯示輸入的噪聲序列以及輸出干擾信號(hào)的頻譜,最后通過USRP Sink模塊由硬件平臺(tái)進(jìn)行輸出,系統(tǒng)界面如圖4所示。
圖4 噪聲干擾系統(tǒng)控制界面
將PC端通過網(wǎng)線與硬件前端USRP連接,從而將GNU Radio平臺(tái)產(chǎn)生的基帶噪聲干擾傳輸?shù)経SRP;同時(shí)將USRP輸出端與頻譜分析儀連接,通過頻譜分析儀觀察USRP輸出的噪聲干擾信號(hào)頻譜,如圖5所示。運(yùn)行噪聲干擾系統(tǒng)頂層模塊,選擇不同的頻譜控制參數(shù)配置類型并觀察相應(yīng)的噪聲干擾信號(hào)頻譜。
圖5 系統(tǒng)演示
首先,選擇噪聲干擾信號(hào)配置類型為部分頻帶干擾,F(xiàn)FT長度為64,硬件前端USRP中心頻率為850 MHz,設(shè)置信號(hào)采樣率為10 MHz,則相鄰子載波頻率間隔為0.156 MHz,選擇2個(gè)子頻帶對(duì)應(yīng)的子載波編號(hào)分別為20~40,53~55,則對(duì)應(yīng)的頻帶寬度分別為3.276 MHz和0.468 MHz,如圖6所示。圖7為通過頻譜分析儀測得的部分頻帶噪聲干擾信號(hào)頻譜。
圖6 部分頻帶干擾
圖7 部分頻帶干擾測試
選擇噪聲干擾信號(hào)配置類型為音頻干擾,F(xiàn)FT長度為64,硬件前端USRP中心頻率為850 MHz,信號(hào)采樣率為10 MHz,選擇子載波編號(hào)分別為27,33,40和50,則對(duì)應(yīng)的頻率分別為849.062 MHz,850.00 MHz,851.094 MHz,852.656 MHz,如圖8所示。圖9為通過頻譜分析儀測得的音頻噪聲干擾信號(hào)頻譜。
圖8 多音干擾
圖9 多音干擾測試
通過測試,基于OFDM的GNU Radio噪聲干擾信號(hào)產(chǎn)生系統(tǒng)可通過配置頻譜控制參數(shù)選擇相應(yīng)的子載波,實(shí)現(xiàn)對(duì)噪聲干擾信號(hào)頻譜的靈活控制,能夠產(chǎn)生具有不同帶寬的部分頻帶噪聲干擾信號(hào)以及多音干擾信號(hào)。
本文應(yīng)用OFDM調(diào)制方式基于GNU Radio平臺(tái)開發(fā)了噪聲干擾信號(hào)產(chǎn)生系統(tǒng),OFDM具有頻譜控制靈活的優(yōu)勢,可根據(jù)目標(biāo)信號(hào)的頻譜特征產(chǎn)生具有不同帶寬的干擾信號(hào),從而實(shí)現(xiàn)對(duì)干擾信號(hào)功率譜的靈活控制。最后,基于GNU Radio軟件無線電平臺(tái)結(jié)合USRP開發(fā)了噪聲干擾信號(hào)產(chǎn)生系統(tǒng),較傳統(tǒng)信號(hào)產(chǎn)生方式更為靈活高效,節(jié)省了硬件資源,提高了系統(tǒng)的適應(yīng)性。