楊 潔, 夏 卉
(西安郵電大學(xué) 通信與信息工程學(xué)院, 西安 710121)
自動(dòng)調(diào)制識(shí)別(automatic modulation recognition,AMR)是一種在不知道接收信號(hào)調(diào)制類(lèi)型的情況下,自動(dòng)對(duì)信號(hào)調(diào)制類(lèi)型進(jìn)行分類(lèi)的過(guò)程,AMR在民用和軍事實(shí)際應(yīng)用中發(fā)揮著重要作用[1]。AMR算法可以分為兩類(lèi):基于似然(likelihood-based,LB)的方法和基于特征(feature-based,FB)的方法。LB方法利用概率論、假設(shè)檢驗(yàn)理論和決策準(zhǔn)則等來(lái)解決信號(hào)調(diào)制識(shí)別問(wèn)題,雖然LB方法可以獲得最佳結(jié)果,但是計(jì)算復(fù)雜度很高。FB方法從接收信號(hào)中提取若干特征然后用分類(lèi)器進(jìn)行識(shí)別分類(lèi),其中提取的特征包括基于瞬時(shí)特征[2]、高階累計(jì)量[3]、循環(huán)譜技術(shù)[4]、時(shí)頻分析[5]等,在分類(lèi)過(guò)程中,分類(lèi)器主要包括決策樹(shù)[6]、支持向量機(jī)[7]、人工神經(jīng)網(wǎng)絡(luò)[8]等,F(xiàn)B方法大大降低了計(jì)算復(fù)雜度。但不論是LB方法還是FB方法都需要大量的先驗(yàn)知識(shí)支撐,只適用于特定信號(hào)的識(shí)別,局限性較大。
針對(duì)以上問(wèn)題深度學(xué)習(xí)方法被用于自動(dòng)調(diào)制識(shí)別。Ao Dai等人[9]使用堆疊稀疏自動(dòng)編碼器,提出從信號(hào)的模糊函數(shù)提取特征的方法,S.Jeong等人[10]研究通過(guò)短時(shí)傅里葉變換生成頻譜圖和卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network, CNN)模型結(jié)合的方法進(jìn)行識(shí)別,李永樂(lè)等人[11]研究了一種通過(guò)循環(huán)譜圖和CNN模型結(jié)合的調(diào)制識(shí)別方法。以上方法缺點(diǎn)是在低信噪比情況下識(shí)別率仍然很低。
基于上述分析,本文研究了一種復(fù)基帶信號(hào)與CNN結(jié)合的方法,并提出了CNN模型,這種方法直接從數(shù)據(jù)中自動(dòng)學(xué)習(xí)信號(hào)特征。該模型首先仿真生成不同信噪比下的七類(lèi)調(diào)制信號(hào),然后將接收到的信號(hào)處理為復(fù)基帶IQ兩路信號(hào),對(duì)信號(hào)進(jìn)行預(yù)處理后作為實(shí)驗(yàn)的數(shù)據(jù)集,用該數(shù)據(jù)集來(lái)訓(xùn)練CNN模型、調(diào)整超參數(shù),最后利用訓(xùn)練好的CNN模型對(duì)七類(lèi)通信信號(hào)就行識(shí)別分類(lèi)。實(shí)驗(yàn)表明,本文提出的方法在低信噪比情況下有較好的分類(lèi)準(zhǔn)確度,且較文獻(xiàn)[10]中短時(shí)傅里葉變換后利用卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行分類(lèi)識(shí)別的方法準(zhǔn)確度有較大提升。
基本的數(shù)字調(diào)制方式有如下3種:多進(jìn)制頻移鍵控(multi-band frequency shift keying,MFSK)、多進(jìn)制振幅鍵控(multi-band amplitude shift keying,MASK)和多進(jìn)制相移鍵控(multi-band phase shift keying,MPSK)[12]。3種信號(hào)可數(shù)學(xué)建模如下:
(1)
(2)
(3)
在此基礎(chǔ)上,多進(jìn)制正交調(diào)制(multi-band quadrature amplitude modulation,MQAM)同時(shí)利用了載波的振幅與相位對(duì)傳輸數(shù)據(jù)進(jìn)行調(diào)制。MQAM表達(dá)式:
(4)
由(1)、(2)、(3)和(4)可得調(diào)制信號(hào)的一般表達(dá)式為:
s(t)=A(t)·cos[2πfct+2πf(t)t+θ(t)+θ0]
(5)
其中:s(t)表示連續(xù)時(shí)間序列信號(hào)。根據(jù)公式(5),改變其頻率、相位、振幅或其他參數(shù)得到七種調(diào)制模型。
采用數(shù)字下變頻(digital down converter,DDC)對(duì)公式(5)得到的信號(hào)進(jìn)行處理,得到包括同相分量與正交分量?jī)刹糠值膹?fù)基帶信號(hào),其一般表達(dá)式為:
I(n)=A(n)sin(ω0n+nω(n)+φ(n)+φ0)
Q(n)=A(n)cos(w0n+nω(n)+φ(n)+φ0)
(6)
其中:I(n)表示調(diào)制信號(hào)的同相分量,Q(n)表示調(diào)制信號(hào)的正交分量。經(jīng)過(guò)信道后,接收信號(hào)y(n)可以描述為:
(7)
其中:Ci與ki代表子路徑增益與延遲;fi為多普勒頻率;v(n)表示加性高斯白噪聲(additive white gaussian noise,AWGN)。
在現(xiàn)實(shí)中除了存在信道噪聲,調(diào)制信號(hào)識(shí)別的準(zhǔn)確性還會(huì)受到碼間串?dāng)_(inter-symbol interface,ISI)和頻率偏移等因素的影響。由于信道中存在碼間串?dāng)_,為了消除碼間串?dāng)_對(duì)識(shí)別準(zhǔn)確率的影響,根據(jù)奈奎斯特準(zhǔn)則,采用升余弦濾波器(raised cosine transmit filter,RCTF )來(lái)消除碼間串?dāng)_,使每個(gè)復(fù)值信號(hào)經(jīng)過(guò)一個(gè)滾降系數(shù)為0.4的升余弦濾波器。升余弦濾波器的沖激響應(yīng)如下:
(8)
其中:α為升余弦濾波器的滾降系數(shù),f0為濾波器的帶寬。
綜上所述,本文考慮在AWGN信道條件下,輸入數(shù)據(jù)集預(yù)處理的過(guò)程如圖1。
圖1 數(shù)據(jù)集生成原理圖
調(diào)制識(shí)別是將接收到的通信信號(hào)的調(diào)制類(lèi)型分類(lèi),這是一個(gè)n類(lèi)決策問(wèn)題。通過(guò)根升余弦濾波器后,得到2×N的二維向量矩陣作為輸入的數(shù)據(jù)集,其中矩陣的第一行是復(fù)基帶信號(hào)的同向分量,第二行是復(fù)基帶信號(hào)的正交分量。
利用卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行調(diào)制識(shí)別的過(guò)程,首先是將預(yù)處理過(guò)的7類(lèi)調(diào)制信號(hào)分別處理為訓(xùn)練集和測(cè)試集,然后通過(guò)訓(xùn)練集訓(xùn)練CNN模型,并對(duì)CNN模型的超參數(shù)進(jìn)行微調(diào),訓(xùn)練完成后通過(guò)輸入測(cè)試集對(duì)CNN模型進(jìn)行測(cè)試,最后對(duì)數(shù)字通信信號(hào)進(jìn)行識(shí)別分類(lèi)。
卷積神經(jīng)網(wǎng)絡(luò)是由卷積層、池化層和全連接層組成的前向反饋的多層神經(jīng)網(wǎng)絡(luò)[13]。卷積神經(jīng)網(wǎng)絡(luò)中每層的神經(jīng)元從輸入的數(shù)據(jù)中自動(dòng)進(jìn)行特征提取特征,從而更新每層神經(jīng)元的權(quán)值。神經(jīng)元的工作原理如圖2所示,由n個(gè)輸入向量[x1,x2,...,xn]與其對(duì)應(yīng)的權(quán)重向量[w1,w2,...,wn]作內(nèi)積,并加上偏倚b,再經(jīng)過(guò)非線性激活函數(shù)h(∑iwixi+b)得到輸出f(x;w,b)。卷積神經(jīng)網(wǎng)絡(luò)具有局部感知和權(quán)值共享的特點(diǎn),可以降低訓(xùn)練參數(shù)的個(gè)數(shù),減少了計(jì)算復(fù)雜度。
圖2 神經(jīng)元的工作原理
1)卷積層是對(duì)輸入的數(shù)據(jù)進(jìn)行特征提取。輸入的數(shù)據(jù)一般是特征矩陣,每個(gè)卷積層的卷積核尺寸和移動(dòng)的步長(zhǎng)由人工設(shè)定,通過(guò)卷積核和上一層的特征矩陣進(jìn)行卷積運(yùn)算,每計(jì)算一個(gè)數(shù)據(jù)窗口后,卷積核平移到下一個(gè)位置,通過(guò)激活函數(shù)得到輸出的特征矩陣。卷積層的計(jì)算公式:
(9)
其中:l為網(wǎng)絡(luò)層數(shù),f(·)為激活函數(shù),x為輸入向量矩陣,k為卷積核矩陣,b為偏倚量,Y為輸出矩陣,j為特征圖數(shù)量。
2)池化層可以有效的縮小矩陣尺寸和緯度,進(jìn)一步減少全連接層中的參數(shù)。池化層前向傳播過(guò)程與卷積層類(lèi)似,需要人工指定滑動(dòng)窗口矩陣的大小和步長(zhǎng),本文中池化層采用每滑動(dòng)一次窗口取最大值作為輸出,輸出也是三維矩陣的形式。
(10)
其中:x為池化層中輸入特征的矩陣,N×M為池化滑動(dòng)窗口的大小。
3)全連接層將所有的神經(jīng)元與上一層的所有神經(jīng)元相連,輸出1×N的二維矩陣形式。由于經(jīng)過(guò)全連接層后輸出的維度與原輸入的維度不同,所以最后需要與Softmax相連,對(duì)于指定類(lèi)別的樣本,最終計(jì)算得到每個(gè)類(lèi)別的概率。Softmax回歸將樣本x(i)標(biāo)記為類(lèi)別j的概率為:
(11)
Softmax交叉熵?fù)p失函數(shù)為:
(12)
其中:y(i)為one-hot編碼形式,若y(i)=j為真,則I{·}=1,反之I{·}=0,k為類(lèi)別,M為樣本數(shù)。
在訓(xùn)練神經(jīng)網(wǎng)絡(luò)時(shí),為了使交叉熵?fù)p失函數(shù)值最小,使用適配性矩估計(jì)(Adaptive Moment, Adam)優(yōu)化算法更新權(quán)值。Adam同時(shí)具有動(dòng)量算法(Momentum)和均方根傳播算法(Root Mean Square Propagation,RMSProp)的優(yōu)點(diǎn),通過(guò)計(jì)算損失函數(shù)的一階矩估計(jì)和二階矩估計(jì)為不同參數(shù)獨(dú)立的自適應(yīng)性學(xué)習(xí)率,快速得到全局最優(yōu)解,具體步驟如下。
步驟1:初始化損失函數(shù)梯度的一階矩估計(jì)mw=0、損失函數(shù)梯度的二階矩估計(jì)vw=0、迭代次數(shù)t=0,訓(xùn)練集D={x(i),y(i)},i=1,2,...,N。
步驟2:更新迭代次數(shù)t←t+1;
步驟3:隨機(jī)從訓(xùn)練集D中取M個(gè)子集,得到Dm,
步驟4:計(jì)算損失函數(shù)的梯度▽L。
(13)
(14)
(15)
(16)
其中,β1β2為加權(quán)指數(shù),取β1=0.9,β2=0.999,η為學(xué)習(xí)率在訓(xùn)練過(guò)程中進(jìn)行微調(diào),ε為平滑因子,ε=10-8。
步驟7:重新返回步驟2,繼續(xù)訓(xùn)練下去。直至達(dá)到停止條件。
本文提出一種卷積神經(jīng)網(wǎng)絡(luò)模型,命名為CNN-IQ。CNN的模型框架圖如圖3所示,由1個(gè)輸入層(Input)、2個(gè)卷積層(Convolution,Conv),2個(gè)最大池化層(Maxpool),1個(gè)全連接層(Fully connected,Fc)和1個(gè)Softmax分類(lèi)器組成,最后將7種信號(hào)的調(diào)制類(lèi)型輸出,模型參數(shù)見(jiàn)表1。
表1 CNN-IQ模型參數(shù)
圖3 CNN-IQ模型
輸入層輸入的是2×1 024大小的2維矩陣;Conv1卷積核大小為1×2、深度為256、步長(zhǎng)為1×1,使用全零填充,經(jīng)卷積計(jì)算得到256個(gè)2×1 024的特征圖,本層總共有2×512×256×(1×2+1)=786 432個(gè)連接。Maxpool1滑動(dòng)窗口大小為1×2、步長(zhǎng)為1×2、使用全零填充,得到256個(gè)2×512的特征圖。Conv2中卷積核大小為2×2、深度為128、步長(zhǎng)為1×1,不使用全零填充,兩個(gè)卷積層使用線性整流函數(shù)(Rectified Linear Unit, ReLU)作為激活函數(shù),激活函數(shù)使得整個(gè)神經(jīng)網(wǎng)絡(luò)模型為非線性,經(jīng)卷積計(jì)算得到256個(gè)1×511的特征圖,本層共有1×511×256×(2×2+1)=654 080個(gè)連接。Maxpool1滑動(dòng)窗口大小為1×2,步長(zhǎng)為1×1,使用全零填充,得到128個(gè)1×128的特征圖。全連接層一共由256個(gè)神經(jīng)元組成,全連接層共有1×128×128×256+256=418 456 0個(gè)連接。最后,Softmax層輸出節(jié)點(diǎn)的個(gè)數(shù)為7個(gè)。為了避免過(guò)擬合,在全連接層處設(shè)置p=0.5丟失輸出(Dropout),Dropout方法可以隨機(jī)刪掉網(wǎng)絡(luò)中一半的神經(jīng)元,同時(shí)保持輸入輸出的神經(jīng)元不變,可以進(jìn)一步提升模型可靠性并防止過(guò)擬合。
為了訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)模型,需要大量的訓(xùn)練集和測(cè)試集樣本數(shù)據(jù)集,在實(shí)驗(yàn)中利用Matlab產(chǎn)生了7種數(shù)字信號(hào)模型的IQ數(shù)據(jù)包括:2FSK、4FSK、BPSK、8PSK、QPSK、QAM16和QAM64。數(shù)據(jù)集中每類(lèi)信號(hào)由1 024個(gè)樣本點(diǎn)組成,保存為2×1 024的矩陣格式,矩陣的第一行為I路信號(hào)第二行Q路信號(hào),數(shù)據(jù)集的具體劃分情況如表1所示。數(shù)據(jù)集的信噪比由-10 dB到18 db,間隔為2。產(chǎn)生信號(hào)的參數(shù):采樣頻率為1 000 Hz,載波頻率為100 Hz,碼元數(shù)目為256。其中訓(xùn)練集包括49 000個(gè)樣本,測(cè)試集包括4 200個(gè)樣本。信號(hào)樣本標(biāo)簽采用one-hot編碼格式。
表2 數(shù)據(jù)集具體劃分情況
實(shí)驗(yàn)環(huán)境如下:顯卡為T(mén)ITAN X GPU、處理器為Intel(R) Xeon(R) CPU E5-2620 v3 @ 2.40 GHz,內(nèi)存為10 GB。軟件環(huán)境:數(shù)據(jù)集在window 10下的MATLAB 2016 b下生成,卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練在Ubuntu系統(tǒng)下使用tensorflow1.12框架搭建,開(kāi)發(fā)語(yǔ)言為Python3.6。
實(shí)驗(yàn)中,學(xué)習(xí)率從0.001開(kāi)始訓(xùn)練框架CNN-IQ,在訓(xùn)練中測(cè)試集的損失值大于此時(shí)的最大損失值時(shí),讓此時(shí)的學(xué)習(xí)率乘以0.02來(lái)進(jìn)行修正學(xué)習(xí)率。實(shí)驗(yàn)中共訓(xùn)練100輪次,每輪次時(shí)間約23秒,圖4為訓(xùn)練損失值與驗(yàn)證損失值和訓(xùn)練輪次的曲線圖。訓(xùn)練損失和驗(yàn)證損失值隨著輪次的增加,損失值均迅速下降,逐漸兩條曲線趨于一致,說(shuō)明本實(shí)驗(yàn)?zāi)P蜎](méi)有出現(xiàn)過(guò)擬合的現(xiàn)象。epochs=38后損失值基本穩(wěn)定,并且訓(xùn)練損失和驗(yàn)證損失兩條曲線均收斂,epochs=100時(shí),驗(yàn)證損失值為0.035,此時(shí)的損失值已經(jīng)達(dá)到最小值,訓(xùn)練結(jié)束后,將訓(xùn)練好的卷積神經(jīng)網(wǎng)絡(luò)模型框架和權(quán)值保存,方便CNN-IQ模型進(jìn)行遷移訓(xùn)練。
圖4 訓(xùn)練損失和驗(yàn)證損失隨訓(xùn)練次數(shù)的變化
對(duì)訓(xùn)練好的CNN-IQ模型使用7類(lèi)通信信號(hào)的測(cè)試集進(jìn)行驗(yàn)證。圖5為CNN-IQ模型7種調(diào)制信號(hào)平均識(shí)別準(zhǔn)確率隨SNR變化的曲線。分析識(shí)別結(jié)果可以發(fā)現(xiàn):隨著SNR的增加,7種信號(hào)的平均識(shí)別準(zhǔn)確率上升,當(dāng)信噪比為-4 db時(shí),BPSK、2FSK和4FSK識(shí)別率均為99%以上。當(dāng)在信噪比為18 db時(shí),7種信號(hào)的總平均準(zhǔn)確率可以達(dá)到98.85%。
圖5 不同信噪比下的信號(hào)識(shí)別準(zhǔn)確率
圖6為不同信噪比下的混淆矩陣,混淆矩陣對(duì)角線上的顏色越深,代表識(shí)別準(zhǔn)確率越高。圖6(a)為CNN-IQ模型SNR=18 db時(shí)測(cè)試集的混淆矩陣圖,圖6(b)是SNR=0 dB時(shí)的混淆矩陣圖。當(dāng)SNR=18 db時(shí),除64QAM識(shí)別準(zhǔn)確率為95%外,其余6種調(diào)制信號(hào)的準(zhǔn)確率都達(dá)到99%以上。當(dāng)SNR=0 db時(shí),7種調(diào)制信號(hào)的準(zhǔn)確率都達(dá)到90%以上。
圖6 不同信噪比下的混淆矩陣
為了評(píng)估框架的識(shí)別性能,在相同數(shù)據(jù)集下,通過(guò)將文獻(xiàn)[10]的方法與本文方法CNN-IQ進(jìn)行比較,分析了兩種方法隨信噪比的升高對(duì)識(shí)別準(zhǔn)確率造成的影響。
圖7 兩種方法在不同信噪比下的信號(hào)平均識(shí)別準(zhǔn)確率
由圖7分析得出,當(dāng)信噪比較低時(shí),本文方法較文獻(xiàn)[10]的方法準(zhǔn)確率有極大提升。從圖7中的分析結(jié)果可以看出,在信噪比小于0 db時(shí),本文方法將準(zhǔn)確率提高25.41%左右。當(dāng)信噪比等于0 dB時(shí),本文平均準(zhǔn)確率達(dá)到94.61%,而文獻(xiàn)[10]的方法平均準(zhǔn)確率為72.13%。當(dāng)信噪比為18 db時(shí),本文方法準(zhǔn)確率達(dá)到98.85%,而文獻(xiàn)[10]方法,準(zhǔn)確率為95.32%。與文獻(xiàn)[10]提出的方法比較分析得出,CNN-IQ在較低信噪比下準(zhǔn)確率有較大幅度的提升,在信噪比較高時(shí)準(zhǔn)確率也有一定程度的提升。
對(duì)于數(shù)字通信信號(hào)的識(shí)別,本文提出一種基于復(fù)基帶信號(hào)的卷積神經(jīng)網(wǎng)絡(luò)調(diào)制識(shí)別方法。首先給出了將生成的數(shù)字信號(hào)處理成為復(fù)信號(hào)的方法,然后將數(shù)據(jù)預(yù)處理,利用生成好的數(shù)據(jù)集對(duì)搭建的卷積神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練,通過(guò)不斷調(diào)整卷積神經(jīng)網(wǎng)絡(luò)的超參數(shù)使得損失值最低且收斂,提出一種CNN-IQ模型,最后利用CNN-IQ模型進(jìn)行遷移學(xué)習(xí)來(lái)識(shí)別七類(lèi)數(shù)字通信信號(hào)。仿真結(jié)果表明,本文方法對(duì)數(shù)字通信信號(hào)識(shí)別方法有效,并且在信噪比較低的情況下,信號(hào)識(shí)別的準(zhǔn)確率有大幅度提升。下一步考慮雙通道卷積神經(jīng)網(wǎng)絡(luò),對(duì)如何減少卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)和參數(shù),同時(shí)能保持較高的識(shí)別準(zhǔn)確率進(jìn)行研究,進(jìn)一步提升整個(gè)識(shí)別過(guò)程的運(yùn)行速度。