侯 濤,鄭郁正
(成都信息工程大學,四川 成都 610225)
調制信號識別在現代無線通信應用中具有非常重要的地位,在電子對抗、通信偵查、信號識別等非合作通信方式中有著非常廣泛的應用,民用領域主要在非法信號監測、認知無線電系統中有著非常廣泛的應用。傳統的調制識別方法主要是利用人工提取到的調制信號特征,利用統計學的方法,對提取到的特征進行分類,如文獻[1]中提出的基于高階累積量和文獻[2]中提出的采用高階累計量結合循環譜密度對通信信號的分類,是目前在調制識別任務上主要采用的方法。但這類識別方式最大的缺陷在于需要人工提取特征,且識別的即時性和準確率不高,因此,提出一種新的并且能夠達到端到端的調制識別方法是非常必要和迫切的。
隨著深度神經網絡在2012年ILSVRC圖像識別比賽中大放異彩,深度學習技術出現了前所未有的熱潮,深度神經網絡中新型網絡結構也在不斷被全世界的科研人員提出。但是這些深度學習網絡結構大多數是針對語音識別和圖像分類等任務而設計,專門為通信信號調制識別提供的網絡結構相對較少且準確率普遍不高。目前,國內外對通信信號調制識別已經做了大量的研究,如文獻[3]比較了利用專家特征和卷積神經網絡提取特征的差異,實驗中證明使用神經網絡對時域通信信號進行識別有較大的優勢。文獻[4]提出一種利用空間轉換網絡(Spatial Transformer Network)對調制信號進行識別的方法,是一種很好的創新,但最大的缺陷在于準確率相對不高。通過借鑒其他領域成功的案例,文獻[5]提出一種通過神經網絡對語音序列信號進行特征提取的方法,對于處理類似序列類型的數據提供了一種方法,以及文獻[6]采用卷積神經網絡(CNN)、循環神經網絡(RNN)與長短時記憶網絡(LSTM)相互組合的方法來處理語音序列的方法取得了較好的效果,也對信號的特征提取有很大的參考價值。本文中的實驗參考語音識別中的方法將卷積神經網絡和循環神經網絡進行組合,設計了一個最優的網絡結構來對通信信號進行特征的提取,能夠學習到大量真實通信信號數據的特征,并將學習好的神經網絡保存為一個模型文件,達到能夠對通信信號進行識別的效果。
Keras深度學習框架是用Python語言編寫的高級神經網絡API,它具有極好靈活性以及高度的可擴展性,同時支持CPU和多GPU的計算方式,在Keras中神經網絡層、損失函數、初始化方法及激活函數等等已經被封裝和模塊化,可以大大減少用戶的工作量,同時也提供了清晰且可操作的反饋。在硬件平臺上面,實驗中使用的硬件平臺為2張Nvidia Geforce 1080Ti顯卡和單塊Intel Core i7 7700k處理器作為訓練神經網絡的平臺,通過多GPU的方式對神經網絡進行加速迭代運算而達到優化隱藏層參數的目的。
文獻[8]提出的批量歸一化(Batch Normalization)算法是2015年由美國Google公司提出的一種數據預處理算法,被廣泛使用在各種神經網絡結構中,批量歸一化算法可以在學習率較小的情況下加快深度神經網絡的收斂速度,同時緩解數據過擬合和梯度消失等問題。批量歸一化算法對每一層的輸入進行預處理以避免非線性激活函數引起的數據分布的變化,不單單按照每一批量將數據進行均值轉化為0、標準差轉化為1的歸一化過程,而是采用了一種可學習參數γ和β的方法對數據進行處理,這種創造性的方法有效地增強了算法的魯棒性,有效解決了在數據通過激活函數時數據分布被破壞的問題。以下是批量歸一化算法的原理介紹,對于一個一般的d維輸入數據x=(x(1)…x(d))進行歸一化的方法:
(1)
式中,E[x(k)]為d維輸入數據x的均值,Var[x(k)]為d維的輸入數據x的方差。具有可學習參數γ和β的批量歸一化算法對數據進行處理的流程如下所示:

假設給定一個mini-batch的輸入數據的值B={xi…m}算法流程中可學習參數為γ和β,可以得到輸出值為yi=γx^i+β,其中μB為均值,σ2B為方差,x^i為一般歸一化結果;μB=1m∑mi=1xi;σ2B=∑mi=1(xi-μB)2;x^l=xi-μB σ2B+ε;x^l中的ε為一個很小的可以忽略不計的數值。
長短時記憶網絡(LSTM)最早于1997年被提出,是一種擁有“記憶功能”的神經網絡,常應用于語音識別、圖像識別、自然語言處理等領域。實驗中采用的是文獻[9]提出的長短時記憶網絡,由于可以很好地學習到前后序列之間的關系,處理信號序列數據時在一定程度上能夠提升識別的準確率,該神經網絡由多個cell單元構成,每個cell單元包括遺忘門、輸入門和輸出門3種門,結構如圖1所示。

圖1 LSTM的工作流程
遺忘門:ft=σ(Wf[ht-1,xt]+bf);
輸入門:it=σ(Wi[ht-1,xt]+bi);
輸出門:ot=σ(Wo[ht-1,xt]+bo);
通過輸出門得到最終的輸出:ht=ot*tanh (Ct)。

文獻[10]提出的稠密網絡(Densenet)是Google于2018年提出的一種最新的神經網絡結構,相比較于文獻[11]提出的目前最為主流的殘差網絡(Resnet),收斂速度更快,在增加了神經網絡網絡層數的同時可以避免梯度消失的問題而不影響最終識別的效果,文獻[12]通過實驗證明在通信信號識別的任務中稠密網絡效果較主流的殘差網絡更好。在結構上,如果將神經網絡中第i層的輸出用Xi表示,那么一般的前饋神經網絡可以表示為Xi=Η(Xi-1),相應的殘差網絡由于增加了旁路連接則可以表示為Xi=Xi-1+Η(Xi-1),而稠密網絡采用將之前所有層輸出的特征進行組合,可以表示為Xi=Η([X0,X1,X3,…,Xi-1]),其中Η表示的是通過這一層的激活函數。正是由于稠密網絡這種特殊的結構,使得信息的損失更少,才能更好地保持數據的完整性也是在識別任務上取得更好效果的主要原因。
實驗中的數據集采用文獻[12]提出的專門為機器學習設計的通信信號開源數據集,這個數據集由GNUradio軟件無線電平臺產生,產生的是真實的通信數據,通信數據中加入了高斯白噪聲等噪聲,信號數據包含8PSK,AM-DSB,AM-SSB,BPSK,CPFSK,GFSK,PAM4,QAM16,QAM64,QPSK,WBFM這11種數字和模擬調制方式,共220 000條采樣之后得到的通信信號數據,每種調制方式有20 000個信號數據,每種信號數據信噪比(SNR)在-20~20 dB之間,每個信號都被采樣為2×128的向量數據,在進行訓練時將數據集分為80%訓練集和20%測試集,11種調制信號在時域上的圖像如圖2所示。

圖2 調制信號數據集時域圖像
實驗采用Densenet+LSTM+DNN的網絡結構,輸入層的輸入數據被轉化為[batch,2,128,1]的格式,緊接著輸入層則是四層卷積層,在每層卷積層之后都會利用批量歸一化對每一個卷積層的輸出進行歸一化處理,四層卷積層之后接一個長短時記憶網絡,隨后連接一個全連接層和一個softmax層進行最后的分類。卷積網絡部分是在稠密網絡的基礎上修改的網絡結構,在全連接層(FCN)部分,參考文獻[13]和文獻[14]已經證明在信號調制方式識別問題上面,單純增加網絡深度對識別準確率沒有太大提升,且全連接層網絡具有大量的參數,會導致模型難以訓練。在整個網絡中盡量少地使用全連接網絡,同時在全連接層中也使用了文獻[15]提出的Dropout算法通過隨機去除神經元而避免過擬合問題的出現,調制識別模型網絡結構網絡中數據的流向如圖3所示。

圖3 調制識別模型網絡結構
卷積層1的輸出和卷積層2的輸出合并作為卷積層3的輸入,卷積層1、卷積層2和卷積層3合并作為卷積層4的輸入,隨后通過長短時記憶網絡、全連接網絡和softmax層。
由于進行訓練的數據本身長度不長,卷積核的默認步長設置為1,卷積核設置為2×5和1×5兩種,通過卷積神經網絡中卷積窗提取通信信號的數據特征,在設計上采用開源深度學習框架Keras中的絕對交叉熵損失(categorical_crossentropy)函數,損失函數Li如下:
(2)
式中,t代表真實結果;i代表輸入數據;j代表類別;p代表預測結果。
這種損失函數常用在多分類的情況下,如使用softmax函數作為最終輸出,利用優化器不斷降低損失函數的值以達到更新隱藏層參數的目的,在優化器方面選擇目前應用最為廣泛的Adam優化器,文獻[16]證明了這種優化器具有對內存需求少、實現簡單及計算高效等一系列優勢,優化器的學習率設置為固定的0.001,同時Dropout部分設置0.5的隨機失活率,以避免由于全連接層中參數量過大而造成的過擬合問題。圖4為在信噪比-20 dB下的混淆矩陣圖,圖中橫坐標代表預測正確的11種調制類別,縱坐標代表實際的11種調制類別。

圖4 信噪比為-20 dB下的混淆矩陣
在使用訓練數據對神經網絡進行200輪訓練同時使用測試數據對每一輪模型進行測試。圖5 (a)為模型的損失下降曲線圖,損失最低可以下降到0.2左右,圖5(b)為模型的訓練準確率和測試準確率,深度神經網絡模型訓練準確率最高可以達到88.4%,測試數據集準確率最高達到85.6%,模型測試準確率伴隨訓練準確率不斷上升直到一個較平穩的過程,曲線沒有出現極端分化。沒有出現過擬合和欠擬合問題,且神經網絡模型已經很好地學習到了訓練數據的特征,由測試結果也可以看出,訓練之后的模型也具有非常好的泛化能力。

圖5 訓練和驗證結果
本文通過大量實驗測試了多種不同超參數,在對網絡結構進行不斷優化的同時,重新設計了一種深度神經網絡模型,并通過實驗證明了這種方法的有效性。在識別多種調制方式上較傳統的方法有很大的提升,最為關鍵的是解決了端到端的信號識別問題,以及大量的人工提取特征的繁瑣過程。測試準確率很高,且模型泛化能力較好。相信在未來更多學者的不斷研究以及深度學習的不斷發展下,在調制識別的方法上肯定會有更多突破,準確率也會不斷提高。本實驗中需要改進的地方還很多,比如數據質量較差和數據數量較少,網絡結構以及超參數還有一定的提升空間,后續工作中也會不斷地進行嘗試和完善。