葛 戰(zhàn),伍 警,李 兵,蔣鴻宇,周 劼
(中國工程物理研究院 電子工程研究所,四川 綿陽 621900)
通信信號經(jīng)過周期變換(如采樣、調(diào)制及編碼等)處理后,會呈現(xiàn)周期平穩(wěn)特性[1]。不同調(diào)制信號會在循環(huán)譜上表現(xiàn)出不同的特性,可以此進行調(diào)制樣式分類[2]。傳統(tǒng)基于循環(huán)譜的調(diào)制識別方法包含循環(huán)譜圖生成、人工選取特征以及分類器設計等步驟[3]。實際中,由于通信信號循環(huán)譜數(shù)據(jù)量較大,一般需要采取降維方法對數(shù)據(jù)進行降維。然而,不同的降維方法以及特征的選取和門限的劃分均會影響分類器的分類性能[4]。
與傳統(tǒng)識別方法不同,近年來,深度學習(Deep Learning,DL)技術由于其在圖像識別等領域中表現(xiàn)出的優(yōu)異性能被引入至調(diào)制識別研究當中[5-7]。該技術直接以數(shù)據(jù)作為輸入,能夠學習到更加豐富的特征信息,自動完成特征提取及信號分類,顯著提高了識別率[8-10]。文獻[11-13]采用卷積神經(jīng)網(wǎng)絡(Convolutional Neural Network,CNN)以及自編碼器(Auto-Encoder,AE)等深度網(wǎng)絡通過對信號的循環(huán)譜進行學習實現(xiàn)調(diào)制識別。然而,以上工作未考慮信號循環(huán)譜數(shù)據(jù)量較大這一問題,直接導致訓練時間過長。
針對該問題,本文首先分析了采用CNN直接對未降維的譜數(shù)據(jù)學習分類,以及采用主成分分析(Principal Component Analysis,PCA)和AE方法對譜數(shù)據(jù)降維,再采用CNN實現(xiàn)調(diào)制分類的3種方法。然后,在此基礎上提出了基于AE和CNN相互聯(lián)合的網(wǎng)絡結構——AE-CNN,同時完成數(shù)據(jù)降維和調(diào)制識別工作。網(wǎng)絡以循環(huán)譜的循環(huán)頻率軸投影(α-profile)作為AE的輸入輸出,實現(xiàn)對輸入數(shù)據(jù)的壓縮,同時將AE的隱層輸出,即壓縮后的數(shù)據(jù),送入至CNN實現(xiàn)學習分類。2個網(wǎng)絡通過聯(lián)合訓練最終實現(xiàn)調(diào)制識別。實驗結果表明,該網(wǎng)絡結構無需人工選取特征,直接以信號的循環(huán)譜作為輸入,與基于PCA和AE降維的方法相比,能夠充分地利用輸入數(shù)據(jù)的特征信息,獲得較高的識別性能;與基于CNN的方法相比,能夠大幅地減少訓練時間,并在識別性能上有一定的提升。
通信信號在經(jīng)過周期變換后會表現(xiàn)出二階周期特性,是一種廣義循環(huán)平穩(wěn)信號[1]。其自相關函數(shù)Rx(t;τ)=Rx(t+τ/2,t-τ/2)本質上是對信號的瞬時譜在頻率軸上下移動一定的值后做相關,通過相關可以得到不同循環(huán)頻率上的譜累計,進而產(chǎn)生冗余譜峰。由于不同樣式的通信信號會產(chǎn)生不同類型的譜峰,因此可以用此區(qū)分通信信號類型。
Rx(t;τ)可展開成傅里葉級數(shù)的形式[14]:
(1)
對于循環(huán)平穩(wěn)信號可使用統(tǒng)計平均代替時間平均,得到:
(2)
信號的循環(huán)譜可表示為循環(huán)自相關函數(shù)的傅里葉變換,即:
(3)
實際中,計算循環(huán)譜的算法一般是通過對循環(huán)周期圖做平滑處理后得到,主要包括離散頻率平滑算法和離散時間平滑算法[1]。由于高精度譜相關計算復雜度較高,因此常采用快速計算方法[1]?;陔x散時間平滑的快速算法主要有:FFT累積算法(FFT Accumulation Method,F(xiàn)AM)和比特譜相關算法等[1]。本文采用FAM算法計算調(diào)制信號的循環(huán)譜,然后對循環(huán)譜α軸進行投影,提取到用于信號調(diào)制識別的數(shù)據(jù)樣本:
(4)
α軸投影包含了信號的特征信息,相比較循環(huán)譜圖本身能夠有效地降低數(shù)據(jù)量,常用于頻帶調(diào)制信號識別。6種調(diào)制信號在信噪比為6 dB時的循環(huán)譜圖及α軸投影如圖1所示。
(a) BPSK
由圖1可以看出,各調(diào)制信號在不同的循環(huán)頻率上會呈現(xiàn)出不同的譜峰,因此可以根據(jù)譜峰數(shù)量實現(xiàn)對其分類。傳統(tǒng)方法通過設定門限找出α軸投影上的譜峰數(shù)量,然后通過比較譜峰數(shù)量實現(xiàn)調(diào)制識別。本文采用深度神經(jīng)網(wǎng)絡直接提取循環(huán)譜α軸上的特征信息,無需再設定門限尋找譜峰。該方法能夠更充分地挖掘有益于分類的特征信息,實現(xiàn)識別率的提升。
由于采用FAM算法計算出的循環(huán)譜數(shù)據(jù)量較大且含有冗余信息,如果直接采用神經(jīng)網(wǎng)絡訓練會造成訓練時間過長。因此,在送入神經(jīng)網(wǎng)絡訓練之前一般需要進行降維,使數(shù)據(jù)能夠更容易使用,并一定程度地去除噪聲,同時降低計算開銷。常見的降維方法有PCA、局部線性嵌入(Locally Linear Embedding,LLE)、線性判別分析(Linear Discriminant Analysis,LDA)、T-SNE以及AE等[15]。由于PCA計算復雜度較低而被廣泛使用,但是該方法需要選取合適的主成分數(shù)才能取得最佳性能。本文采用AE實現(xiàn)對循環(huán)譜數(shù)據(jù)的降維操作,相比較PCA方法,AE是一種非線性變換方法,能夠學習更深層次的特征信息。經(jīng)實驗,其他方法,如LLE,LDA和T-SNE,在對本文的循環(huán)譜數(shù)據(jù)進行降維時耗時非常大,暫不考慮。
對于規(guī)模較大的數(shù)據(jù),全連接網(wǎng)絡由于參數(shù)眾多,會造成訓練時間過長,而CNN則能夠有效降低訓練復雜度,并且采用多卷積核能夠提取到更為豐富的特征信息,因此本文采用CNN實現(xiàn)對輸入數(shù)據(jù)的學習與分類。
CNN本質上是一種具有更深層次的前饋神經(jīng)網(wǎng)絡,通過采用局部連接和權值共享使網(wǎng)絡學習參數(shù)大幅降低,能夠在大規(guī)模數(shù)據(jù)上進行學習訓練。通常由卷積層、池化層和全連接層組成[16-17]。
卷積層采用卷積核提取輸入數(shù)據(jù)的隱含特征,即特征圖。卷積操作過程如下:
(5)
池化層主要是用于對卷積后的數(shù)據(jù)執(zhí)行下采樣操作,用于數(shù)據(jù)的降維:
(6)
全連接層則用于分類,常用Softmax分類器。訓練過程會將分類器的輸出與樣本對應的標簽信息進行比較,采用反向傳播法迭代更新網(wǎng)絡參數(shù)使損失函數(shù)最小,損失函數(shù)由交叉熵確定:
(7)
式中,m,j,k分別為樣本數(shù)量、樣本標簽以及調(diào)制種類;q(·)為指示函數(shù);lnp(·)為樣本zi的概率。
考慮CNN在未降維循環(huán)譜數(shù)據(jù)上的分類性能(方法1)。所采用的CNN結構如圖2所示,由輸入模塊、特征提取模塊和分類模塊組成,其中輸入根據(jù)不同的方法,分別為循環(huán)譜數(shù)據(jù)、PCA降維后的數(shù)據(jù)或AE的隱層輸出。特征提取模塊由3個卷積層和3個池化層串聯(lián)組成,卷積層采用一維CNN,相比二維CNN,一維CNN參數(shù)更少,訓練速度更快,能夠有效減少訓練時間。卷積塊1~3中,卷積核大小均為1×3,通道數(shù)依次為64,32和24,激活函數(shù)采用ReLU。池化層采用1×2的平均池化,進一步縮減網(wǎng)絡參數(shù)。文中所提出的方法均采用該CNN結構。
圖2 CNN方法結構Fig.2 Structure diagram of CNN method
針對循環(huán)譜降維問題,首先采用PCA方法實現(xiàn)。PCA常用于高維數(shù)據(jù)的降維,是一種線性變換,通過將原始數(shù)據(jù)投影到若干維度得到不相關的線性表示,進而提取數(shù)據(jù)的主要特征分量[18-19]。這些主成分保留了數(shù)據(jù)的主要信息,能夠表征原始數(shù)據(jù)。常用的PCA算法包括基于特征值分解和奇異值分解(Singular Value Decomposition,SVD)2種方法。
本文采用基于SVD的PCA方法對訓練集進行降維,然后把降維后的數(shù)據(jù)送入CNN實現(xiàn)分類(方法2),基于PCA方法的識別框圖如圖3所示。降維后的數(shù)據(jù)規(guī)模大幅減小,神經(jīng)網(wǎng)絡訓練時間也能夠大幅降低。同時,本節(jié)通過選取不同的主成分數(shù)量,驗證了其對調(diào)制識別性能的影響。
圖3 PCA方法結構Fig.3 Structure diagram of PCA method
AE是一種無監(jiān)督深度學習方法,能夠實現(xiàn)對循環(huán)譜數(shù)據(jù)的降維。與PCA不同,既能對輸入數(shù)據(jù)進行線性變換也能進行非線性變換。其主要目的是通過模型的學習使得輸出能夠重構出輸入,主要由編碼器和解碼器組成[6,12],其網(wǎng)絡結構如圖4所示。
圖4 AE網(wǎng)絡結構Fig.4 Structure diagram of AE network
(8)
本文采用全連接網(wǎng)絡實現(xiàn)AE,其中編碼器和解碼器成對稱結構,分別由2層全連接網(wǎng)絡構成,具體參數(shù)如圖4所示。實驗中AE的輸入和輸出為各信號的循環(huán)譜。經(jīng)過學習,AE能夠實現(xiàn)對輸入數(shù)據(jù)的降維,其隱層能夠提取到輸入數(shù)據(jù)的特征信息,然后將這些特征信息送入到CNN即可實現(xiàn)分類(方法3)。
方法3首先采用AE對輸入數(shù)據(jù)降維,然后采用CNN進行分類,類似于2.2節(jié)基于PCA的方法,這2個學習過程彼此獨立。需要注意的是,該方法會把數(shù)據(jù)降維時的誤差引入至后續(xù)的分類學習當中,造成分類性能下降。本節(jié)在方法1和3的基礎上,提出了將AE數(shù)據(jù)降維和CNN信號分類進行相互聯(lián)合學習的網(wǎng)絡結構(方法4),如圖5所示。
圖5 AE-CNN網(wǎng)絡結構Fig.5 Structure diagram of AE-CNN network
該網(wǎng)絡結構采用AE對數(shù)據(jù)降維,同時將其隱層輸出至CNN,然后將2個網(wǎng)絡的損失函數(shù)相加,通過反向傳播算法更新誤差使得2個網(wǎng)絡能夠聯(lián)合訓練。網(wǎng)絡中AE有助于對輸入數(shù)據(jù)的重構精度分類,同時CNN的分類準確性又有助于重構誤差的減小,因此通過聯(lián)合訓練有助于提升分類準確率。該網(wǎng)絡的損失函數(shù)如下:
L=Lc+Lr。
(9)
本文采用AE和CNN相互聯(lián)合的方法,對循環(huán)譜進行降維的同時實現(xiàn)調(diào)制識別。具體步驟可概括為:
① 生成6種通信調(diào)制信號,該信號為具有載波頻率的頻帶信號;
② 采用FAM算法計算各調(diào)制信號的循環(huán)譜;
③ 獲取各調(diào)制信號循環(huán)譜α軸的投影,產(chǎn)生訓練集、驗證集以及測試集;
④ 方法1實現(xiàn):采用CNN直接對循環(huán)譜訓練集進行訓練,實現(xiàn)分類;
⑤ 方法2實現(xiàn):采用PCA對訓練集降維,然后送入CNN實現(xiàn)學習分類;
⑥ 方法3實現(xiàn):采用AE進行降維,然后采用CNN對AE的隱層輸出學習分類,2個步驟獨立;
⑦ 方法4實現(xiàn):采用AE進行降維的同時將其隱層輸出至CNN,將2個網(wǎng)絡的損失函數(shù)相加,進行聯(lián)合訓練分類;
⑧ 訓練完成后,在測試集上分別驗證不同方法的性能,完成信號的調(diào)制分類。
產(chǎn)生訓練所需的訓練樣本、驗證樣本和測試樣本。本次仿真共產(chǎn)生6種經(jīng)過標注的信號(BPSK,QPSK,2FSK,4FSK,MSK和OQPSK)。載波頻率為4 kHz,符號率為1 kHz,采樣率為16 kHz,符號長度為1 000,成型濾波器為升余弦濾波器,過渡帶寬為0.35。數(shù)據(jù)首先由Matlab 2017a產(chǎn)生,然后采用FAM算法計算出每種信號的循環(huán)譜圖。每種信號的信噪比為-6~10 dB,每隔1 dB產(chǎn)生1 000個數(shù)據(jù),其中900個用于訓練,100個用于驗證。測試集則按照上述參數(shù)單獨生成,每信噪比下樣本數(shù)量為200。樣本標簽采用one-hot編碼格式。
實驗中網(wǎng)絡結構由TensorFlow深度學習框架搭建,采用ADAM作為優(yōu)化器。初始學習率、批處理大小以及訓練次數(shù)分別設置為lr=0.001,batchsize=100及epoch=50。訓練中采取變更學習率策略,當網(wǎng)絡模型在驗證集上的損失變化連續(xù)5個epoch小于0.001時,學習率縮減10倍,有助于訓練精度的提升。
方法1:將6種調(diào)制信號的循環(huán)譜訓練數(shù)據(jù)直接送入CNN。在測試集上6種調(diào)制信號的平均識別率如圖6所示。由圖6可以看出,隨著信噪比的增加信號識別率也在增加。通過計算,信噪比在-6~10 dB不同樣式的總體平均識別率為86.5%。
圖6 不同信噪比下6種信號的平均識別率Fig.6 Average correct recognition probability of six signals under different SNR
每種信號的識別率如圖7所示。由圖7可以看出,2FSK,4FSK和MSK的性能較優(yōu),BPSK和QPSK的次之,OQPSK的性能最差。識別結果與圖1所表現(xiàn)的一致,圖1中2FSK,4FSK和MSK所包含的特征信息相比較更多,更容易區(qū)分;而OQPSK與QPSK較為相似,增加了區(qū)分難度。
圖7 不同信噪比下各信號的識別率Fig.7 Correct recognition probability of each signal under different SNR
方法2:首先采用PCA對訓練數(shù)據(jù)進行降維,然后使用CNN分類,以達到減少訓練時間的目的。實驗中PCA主成分數(shù)分別選取16,24,48,192及512。不同主成分數(shù)的分類性能如圖8所示。圖8中不同主成分數(shù)(16~512)對應的總體平均識別率為85.9%,86.1%,85.8%,84.6%和83.0%。由此看出,隨著主成分數(shù)的增加,分類性能呈下降趨勢。
圖8 PCA方法不同主成分的識別率Fig.8 Correct recognition probability of PCA method with different principal components
主成分數(shù)為24和192時,模型在訓練集和驗證集上的訓練過程如圖9所示。由圖9可以看出,隨著主成分數(shù)的增加,訓練集上的識別率在增加,但驗證集上的識別率卻在減小。主要是由于當主成分數(shù)增加時,在訓練集上能夠提取到更多的特征信息,然而當該PCA參數(shù)應用到測試集時提取的特征信息與訓練集會存在更多的差異,造成測試集性能下降。因此在實際中采用PCA降維時,主成分數(shù)會影響識別性能,需要多次實驗尋找最優(yōu)數(shù)值。經(jīng)驗證,在主成分數(shù)為24時性能較優(yōu),接近方法1中的分類性能。由此可見,該方法在經(jīng)過數(shù)據(jù)降維后仍能得到較優(yōu)的性能,表明原始數(shù)據(jù)中含有較多的冗余信息,合適的數(shù)據(jù)降維對分類性能影響較小。
圖9 不同主成分訓練性能對比Fig.9 Training performance comparison with different principal components
方法3:采取AE和CNN獨立訓練的方式。同PCA方法,首先采用AE對訓練集降維,其編碼器的輸入和解碼器的輸出采用相同的數(shù)據(jù)。AE訓練完成后把訓練集送入該網(wǎng)絡,其隱層即可提取出降維后的特征信息。然后,將這些特征信息送入至CNN網(wǎng)絡即可實現(xiàn)分類,2個網(wǎng)絡單獨訓練。
AE中4個全連接網(wǎng)絡選取4組不同的參數(shù),分別為“1 024-512-512-1 024”“512-256-256-512”“96-48-48-96”“48-24-24-48”。不同參數(shù)下該方法的識別結果如圖10所示,對應的總體平均識別率分別為85.6%,85.1%,84.8%,83.4%。可以看出,AE模型中隨著參數(shù)數(shù)量的減少,識別性能會有所下降。主要是由于當全連接神經(jīng)元減少時,AE提取的信息不足所造成。因此,在實際中需要選擇合適的網(wǎng)絡參數(shù)才能達到理想的識別性能。
圖10 不同網(wǎng)絡參數(shù)時AE&CNN的識別率Fig.10 Correct recognition probability of AE&CNN with different network parameters
方法3在全連接參數(shù)為“1 024-512-512-1 024”時,-6~10 dB信噪比范圍內(nèi)6種不同信號的總體識別率為85.6%,與方法1和方法2相比分別下降0.9%和0.5%。該方法面臨的問題同方法2,即在采用AE降維時會引入誤差信息,送入隨后的分類網(wǎng)絡時,造成識別性能的下降。
方法4:提出的AE-CNN模型通過將負責數(shù)據(jù)降維的AE和負責調(diào)制分類的CNN兩個深度網(wǎng)絡聯(lián)合訓練實現(xiàn)信號的調(diào)制識別。同方法3,網(wǎng)絡中AE的參數(shù)設定為“1 024-512-512-1 024”,方法1~4在不同信噪比下的平均識別率如圖11所示。由圖11可以看出,基于AE-CNN聯(lián)合的方法相比其他3種方法性能有明顯的提高。通過計算,AE-CNN方法在-6~10 dB的總體識別率為87.7%,與方法1~3相比分別提升了1.2%,1.6%和2.1%。
圖11 方法1~4識別性能對比Fig.11 Recognition performance comparison of method 1~4
每種信號在不同信噪比下的識別率如表1所示。與圖7相比較,該方法在低信噪比時對BPSK的識別性能較優(yōu),而對MSK的識別性能有所下降,對于OQPSK的識別性能則優(yōu)于方法1,其余幾種樣式的識別性能較為相似。
表1 不同信噪比下各信號的識別率Tab.1 Correct recognition probability of each signal under different SNR
測試AE-CNN中4個全連接網(wǎng)絡選取不同參數(shù)時的性能。AE的參數(shù)設置同3.4節(jié),不同參數(shù)下AE-CNN網(wǎng)絡的識別性能如表2所示。由表2可以看出,與AE&CNN方法不同,AE-CNN選取不同的參數(shù)時對識別性能影響不大。由于聯(lián)合訓練時2個網(wǎng)絡起到相互促進作用,有助于減少誤差累積。
表2 不同網(wǎng)絡參數(shù)時AE-CNN的識別率Tab.2 Correct recognition probability of AE-CNN method with different network parameters
本文采用軟硬件平臺的主要參數(shù)為Intel CPU主頻2.4 GHz,顯卡為NVIDIA GTX3090,深度學習框架為TensorFlow2.4。采用方法1~4在相同的訓練集上進行訓練,統(tǒng)計訓練過程中每epoch所消耗的時間如圖12所示。
由圖12可以看出,采用CNN單獨訓練時,所消耗時間較多,約66.5 s。采用PCA降維時所消耗時間最少。在選取3種不同主成分(文中設定為24,192和512)時每epoch訓練耗時幾乎一致,約11 s。AE&CNN方法在3組不同的參數(shù)(如表2前3組參數(shù))下迭代時間約為22 s。AE-CNN方法在相同的參數(shù)下迭代時間約為18 s??梢园l(fā)現(xiàn),方法2~4在3組不同的參數(shù)下每epoch訓練時間幾乎一致。其中AE-CNN方法在提高了識別率的同時相對于CNN方法的訓練時間也大幅地減少。
圖12 方法1~4每epoch訓練耗時Fig.12 Training time per epoch of method 1~4
本文采用深度神經(jīng)網(wǎng)絡針對通信信號的循環(huán)譜開展調(diào)制識別問題研究。在分析了基于CNN,PCA以及AE三種方法的基礎上,提出了一種基于AE和CNN相互聯(lián)合的網(wǎng)絡結構同時完成數(shù)據(jù)降維和調(diào)制識別的算法。該方法在對循環(huán)譜數(shù)據(jù)壓縮的同時采用CNN實現(xiàn)調(diào)制分類。2種網(wǎng)絡在訓練過程中相互促進,其中AE的重構精度能夠促進分類性能的提升,而CNN的分類精度又有助于減小重構誤差。實驗結果表明,該方法能夠獲得更優(yōu)的識別性能,并且在訓練時間上相對于單獨采用CNN也大幅減少。后續(xù)工作會考慮采用卷積AE和稀疏AE等方法進一步提升識別性能。