梁 策, 郭 英, 李紅光
(空軍工程大學信息與導航學院, 西安, 710077)
跳頻信號因其具備良好的抗干擾性、低截獲概率性以及良好的組網特性,一直以來都廣泛應用于各類通信中,在軍事通信應用中尤為突出。現階段,電磁環境復雜、無線電干擾多、跳頻通信電臺數量多、非法占用電磁頻譜多、空中跳頻信號種類復雜,如何在復雜的電磁環境中對敵我雙方跳頻信號進行個體識別已經成為當今跳頻通信領域的重要研究課題,也是通信安全領域亟待解決的問題。
傳統的跳頻通信信號識別方法主要分為兩大類:基于參數估計的網臺分選技術和基于盲源分離的網臺分選技術。基于參數估計的網臺分選技術主要依靠跳頻信號的跳周期、空間側向DOA信息、接收功率以及信號相關特性等信息,但是隨著跳頻信號的廣泛應用和調制樣式的愈加多樣化,傳統的網臺分選技術由于可估計參數數量少,估計精度低,分選正確率極大地依賴于特征參數估計的精確度,缺乏電臺個體信息,已經不能夠滿足在復雜電磁環境下的跳頻電臺識別需求;基于盲源分離的網臺分選技術由于限定條件下混合矩陣的估計難度大,也無法滿足當今需求。
硬件設備上的個體差異導致跳頻通信電臺存在著不影響信息傳遞的可檢測、可重現的細微特征差異,我們稱之為跳頻電臺的指紋特征。近年來,通過分析指紋特征來進行跳頻電臺個體識別的研究取得了巨大的進展。文獻[1]提出了一種基于改進的Prony算法提取跳頻電臺的瞬時頻率,分離并定量計算其最大Lyapunov指數和盒維數等瞬時特征作為指紋特征,通過得到的指紋特征和構造性神經網絡進行不同跳頻電臺的個體識別;文獻[2]利用一種改進型的基于小波變換的包絡提取算法提取跳頻信號的瞬時包絡,分離并定量計算其盒維數和信息維數等瞬時特征作為指紋特征,通過得到的指紋特征和構造性神經網絡進行不同跳頻電臺的個體識別;文獻[3]提出了將相關維數等基于混沌理論的特征作為跳頻電臺細微特征的可行性研究。以上文獻研究重點都是如何提取跳頻電臺的某一指紋特征,再將提取到的指紋特征輸入到神經網絡,實現對跳頻電臺的個體識別。文獻[4]充分利用了卷積神經網絡(Convolutional Neural Network, CNN)對輸入進行深層次特征提取的優勢。
本文跳出傳統跳頻信號指紋特征提取的局限,不再將深度學習神經網絡僅僅作為對提取到的跳頻信號指紋特征的分選工具,而是借助深度學習神經網絡將預處理后的跳頻信號頻譜圖作為輸入,通過CNN進行跳頻電臺的指紋特征提取并輸出分類識別結果。
跳頻信號是指在偽隨機碼和同步算法的控制下,射頻頻率在約定的頻率集內隨偽隨機碼同步跳變的通信手段,對于頻率跳變時的頻域變化比較敏感,考慮到在非平穩限號處理過程中,標準傅里葉變換提取信號的頻譜需要用到信號的全部時域信息,并且不能夠反映出該信號的頻率隨時間狀態的變化情況,Dennis Gabor等人提出的短時傅里葉變換(Short-Time Fourier Transform,STFT)[5]是把信號劃分為多個小的時間間隔,在劃分的每個時間間隔內用傅里葉變換進行分析。本文采用STFT作為預處理手段,將經過STFT的跳頻信號頻譜圖作為CNN網絡的輸入數據。



圖1 經STFT處理3類跳頻信號頻譜圖
短時傅里葉變換時通過滑動時間寬度很短的窗函數g(t),用短時傅里葉變化來分析每一個窗函數包括的信號,信號f(t)的STFT定義式為:

(1)
反變換公式為:
(2)
其中窗函數g(t)的選擇不同也會帶來一定的差異,但信號特性分析并不會隨著窗函數的變化而產生顯著的差異,本文采用漢明窗作為窗函數。
本文將實采的跳頻信號作為訓練數據,經過STFT變換后的跳頻信號頻譜圖為3通道901×1 201、位深度為8的圖片。圖1為除跳頻頻集不同之外所有參數均相同的3類跳頻信號頻譜圖,由圖可知,其特征主要體現在跳頻頻點的不同,體現在頻譜圖上為亮點的位置差異。
為了方便將跳頻信號頻譜圖作為CNN網絡的輸入,對信號頻譜圖進行處理,圖片信息為數據data,對應增加0、1、2作為標簽label,即數據集包含了數據data和標簽label兩大部分。將所有圖片存儲為數據格式為uint8的300×3 246 303維的數組,數組的每1行儲存1幅901×1 201×3的彩色圖像,前1 082 101個條目包含紅色通道的值,接下來的1 082 101是綠色通道,最后的是藍色通道分別使用0、1、2作為3類跳頻信號的標簽。同時為了避免深度學習擬合能力過強,將數據輸入順序的規律作為數據識別的一個特征導致的訓練效果特別好但是測試效果一般,我們把標簽和數據同步進行隨機亂序處理。
深度學習(Deeplearning)近年來在人臉識別[6-10]、信號識別等多領域都得到了廣泛的應用。CNN網絡[6-10]多用于對圖像進行分類,其分類識別率高,可將跳頻信號個體識別問題轉變為對經過STFT處理后的跳頻信號頻譜圖分類的問題,實現調頻信號個體識別。CNN網絡具有多隱藏層非線性的網絡結構,使卷積神經網絡具備非常好的擬合能力;多層隱藏層能夠實現隱藏特征的提取;卷積核權值共享和滑動窗口降低了網絡參數的數量;調整卷積核的大小和參數以及卷積核的個數可以實現輸入跳頻信號數據的深度特征提取。
基于keras不需要寫循環去更新每次的梯度所帶來的搭建網絡的便利,本文采用keras框架進行CNN網絡的搭建。采用多層卷積結構對跳頻信號頻譜圖進行頻域指紋特征的提取,網絡包含了4個卷積層(Convolution Layer)、2個池化層(Pooling Layer)和2個全連接層(Full Connection Layer)。基于CNN網絡的跳頻信號頻域指紋特征提取的網絡結構見圖2。

圖2 CNN網絡架構
輸入層將經過STFT變換的跳頻信號頻譜圖作為原始數據,輸入到深度學習網絡中,輸入值是信號的頻譜圖則為像素值。卷積層通過卷積核進行特征提取,多層卷積是為了提取輸入的深層次特征,同時也會使數據的維度增大。池化層具體操作和卷積層類似,主要用來降低數據的維度,本網絡采用平均池化(Average-Pooling)進行池化操作,全連接層是將提取到的所有特征連接在一起,最終通過Softmax函數實現分類送至輸出層,輸出層的神經元就是信號種類的數目。
CNN網絡模型部分參數見表1(除Drop,BatchNormalization等網絡層)。

表1 CNN網絡模型部分參數
網絡模型共有5 446 083個參數,可訓練參數為5 445 955個,不可訓練參數為128個,CNN網絡的損失函數為交叉熵(Cross Entropy Loss):

(3)
式中:p為實際值;q為預測值;DKL(p丨q)表示p和q之間的距離,分類問題中數據轉換為one-hot encoding格式,本文為3類跳頻信號的分類問題,某信號實際值為p,其預測值為q,此時:
p=[0 1 0],q=[q0q1q2]
(4)
H(p,q)=H(p)+DKL(p丨q)=
(-1log 1)+(-1logq1)=-1logq1
(5)
當p=q時交叉熵最小為0,預測值和實際值完全一樣,正是我們所期望的結果,與均方誤差(Mean Squared Error, MSE)作為損失函數時相比,在預測錯誤的情況下擁有更大的梯度,保證網絡快速向著正確的方向更新,有效避免了梯度消失的情況。
深度學習中的激活函數是一種非線性的函數,實現了神經元輸入到輸出的映射功能。如果不使用激活函數,無論神經網絡包含了多少層,輸出都是輸入的線性組合,但是使用了激活函數之后,在神經元之間引入了非線性因素,神經網絡可以逼近于任何非線性函數。常見的激活函數有以下幾種:Sigmoid、Tanh、Relu、ELU[11]和Softmax[12]。
Sigmoid函數的輸入范圍在0和1之間,函數簡單,輸出也趨于穩定,但是存在容易產生梯度消失和只有正數輸出(不是zero-centered,也就是所謂的zigzag現象)的弊端。Tanh相比Sigmoid函數收斂速度更快,輸入范圍在-1和1之間,同時輸出也是zero-centered,但是還是沒有解決Sigmoid函數的梯度消失問題。Relu函數是一個被認為具有生物學意義的激活函數,當輸入小于指定閾值時,輸出為零,輸入大于指定閾值時,輸出等于輸入,但是在負數區域會出現Dead Relu。有些人用一個稍大于零的值進行初始化,但這種方式仍然存在爭議。ELU具有Relu的優勢,同時也可以解決Dead Relu。通過多次實驗發現ELU作為激活函數時收斂速度最快,故本網絡采用ELU作為主要的激活函數,定義式如下:
(6)
對應的函數圖像見圖3。
Softmax函數多用于多元信號分類問題,在給定的一個輸出模型中取值C來表示算法所要預測的樣本類別數。模型可以是全連接神經網絡的輸出a,那么輸出個數為C,具體輸出為a1,a2,…,aC,因此對每個樣本來說,它屬于類別i的概率為:
(7)
Softmax函數的輸出值都在0和1之間,同時所有輸出值之和為1,可以把所有的輸出看作輸入的所有概率分布,通過最大概率來判斷該信號的類別,進而達到信號分類的目的。

圖3 ELU函數
深度神經網絡的收斂速度是很重要的一個指標,網絡收斂越快,實現分類所用時間越短,對于所獲得信號的時效性就越好,因此為了加快網絡收斂速度,本文進行了以下改進。
白化(Whiten)是指將輸入數據的分布變換到零均值單位方差的正態分布。在圖像處理中對輸入進行白化操作,則神經網絡會較快收斂;圖像是深度神經網絡的輸入,白化能加快收斂,那么對于深度神經網絡來說,其每一個隱藏層的神經元相對于下一層而言也是輸入層,Batch Normalization就是對深層神經網絡每個隱藏層神經元的激活值做簡化版本的白化操作。
Batch Normalization加快網絡收斂速度的原理為:深層神經網絡在做非線性變換前的激活輸入值隨著訓練或網絡深度加深,其分布逐漸發生偏移或者變動,往非線性函數的取值區間的上下限兩端靠近,在非線性函數的上下限處其導數為零,導致反向傳播時低層神經網絡出現梯度消失。而Batch Normalization就是通過一定的規范化手段,把每層神經網絡任意神經元的輸入值分布強行拉回到均值為0、方差為1的標準正態分布,使得非線性函數輸入值落在對輸入比較敏感的區域,此時梯度變大,學習收斂速度更快,大大加快訓練速度。
神經網絡在訓練時會出現過擬合的情況,當網絡的測試正確率達到100%時,因為網絡還沒有訓練結束,網絡的參數量、模型復雜度會隨著訓練的進行進一步增加,出現擬合過度的情況,本網絡通過調用Callback函數避免過擬合,包含兩部分:Modelcheckpoint和Earlystoping。
Modelcheckpiont通過自動檢測觀測值,本網絡為val_acc,即驗證集正確率,將自動存儲驗證集上性能最好的網絡模型;Earlystoping也是通過自動檢測觀測值測試正確率val_acc,當正確率沒有增加時,則經過patience個(本網絡設置為5)epoch后停止訓練,防止網絡正確率不再提升,訓練仍然進行,通過提前結束進程,防止過擬合和加快收斂速度。在每次訓練進程中,通過Callback函數的Modelcheckpiont存儲驗證集上性能最佳的網絡模型,通過Callback函數的Earlystoping在網絡模型不再優化時提前結束訓練,大大加快網絡收斂速度的同時避免過擬合現象的發生。
本文實驗硬件條件如下:64位Microsoft Windows 10操作系統, Intel Core i7-7700HQ 處理器,NVIDIA GTX2080TI 11 G顯卡,仿真軟件Matlab R2014a、PyCharm Community Edition 2019.2.1、Python3.7。
CNN網絡的輸入樣本數直接關系到網絡是否可以提取到跳頻信號的深層次指紋特征,訓練樣本數量過少顯然不足以支撐實驗,數量過多又會增加網絡的負擔,導致網絡訓練時間過長。本文共仿真3類跳頻信號,分別得到其STFT處理后的頻譜圖。每類擁有100個數據,將300個數據分為10組,每組含有30個數據,此時每組數據的3類跳頻信號不是平均分配的。一共進行10次訓練,每次訓練時分別選取編號為1,2,…,10的一組作為測試數據,剩余9組為訓練數據。對樣本進行多次訓練,多次調整之后,最終設置batch_size為64,每次對測試集30個數據進行測試[13]。
3.2.1 CNN網絡進行個體識別的有效性分析
對仿真跳頻信號(信噪比設置為5dB)進行訓練和測試得到混淆矩陣見表2。
本文經過CNN網絡對經過STFT變化的3類跳頻信號識別正確率均達到了96%以上,平均識別率為96.34%,對同一組跳頻信號進行基于CMFS-MIC特征選擇的跳頻電臺個體識別方法[14]平均識別正確率為88.17%,進行模板匹配法的平均識別率為86.0%,相比之下本文識別率更高。同時本文方法只需要對跳頻信號進行STFT變換作為預處理,將頻譜圖直接輸入到CNN網絡中進行訓練識別,效率也更高。

表2 測試結果混淆矩陣
3.2.2 信號信噪比對分類識別率的影響
實驗仿真生成的3類跳頻信號分別增加了高斯白噪聲,仿真信噪比為0、5、10、15、20 dB進行了5次對比實驗,發現本網絡對信號識別率隨信噪比的變化情況見圖4,其中網絡識別率為3類信號的識別率平均值。從圖4分析可知,在信噪比達到某一閾值之前,網絡識別率隨著信噪比的增加有所提升;當信噪比超過閾值之后,噪聲對于網絡識別率影響不再變化,識別率趨于穩定。通過實驗我們得出信噪比SNR≥10 dB時,其對網絡影響達到最佳且不再變化,因此本文均采用SNR=10 dB的跳頻信號進行試驗。

圖4 不同信噪比情況下網絡識別率
3.2.3 網絡訓練迭代次數對識別率的影響
網絡的訓練迭代次數是算法快慢的一個重要參數,本文通過實驗驗證得到了最佳迭代次數。在網絡其他參數固定的前提下,迭代次數分別設置為10、50、100、150、200、300對信噪比為10 dB的仿真信號進行識別,得到的3類信號平均識別率和模型訓練時間見表3。

表3 訓練迭代次數對網絡的影響
由表3可知,在迭代次數小于100時,隨著迭代次數的增加,信號平均識別率顯著增加,同時也付出了網絡訓練時間更長的代價,當迭代次數大于100時,隨著迭代次數的增加,信號平均識別率在某一值附近震蕩,不再明顯提高,仍然要付出網絡訓練時間更長的代價。綜合考慮信號平均識別率和網絡訓練時間,認為迭代訓練次數為100時,網絡已經達到了最優狀態,訓練時間較短且識別率較高,本網絡采用100次作為最佳迭代次數。
本文跳出了傳統的跳頻信號指紋特征提取方法,實現了一種基于CNN網絡的跳頻信號頻域指紋特征提取和個體識別。實驗表明有3類跳頻信號的10次訓練中,平均識別正確率相較于以往有所提高,同時對比研究了不同信噪比情況下的信號樣本和不同網絡訓練迭代次數對于網絡的影響情況。后續將針對基于CNN提取到的指紋特征存在特征之間的冗余性以及部分特征和類別之間相關性不夠大的問題,實現一種基于LSTM網絡[15-16]的特征選擇,來刪除特征之間冗余性大的特征,選擇特征與類別相關性的特征,實現更高的跳頻信號識別正確率。