王 垚,滿 欣,尤紅雨,明 亮,劉偉松,黃知濤,4
(1. 國防科技大學 電子科學學院, 湖南 長沙 410073; 2. 海軍工程大學 電子工程學院, 湖北 武漢 430033; 3. 中國人民解放軍92001部隊, 山東 青島 266005; 4. 國防科技大學 電子對抗學院, 安徽 合肥 230037)
為了提高信息傳輸的可靠性,信道編碼被廣泛應用于各類數字通信系統中。在實際通信中,收發雙方需要事先約定所使用的編碼參數,以實現通信接收端的正確譯碼。但在認知通信、非合作通信等領域,接收方往往缺乏譯碼所需的必要信息。此時,就需要通過信道編碼盲識別技術,利用接收到的信息序列,對發送端所采用的編碼參數進行分析識別。信道編碼盲識別技術因其重要的理論和應用價值,受到了眾多研究者的關注。
在信道編碼中,卷積碼具有結構簡單、糾錯性能優異等特點,是應用最為廣泛的編碼類型之一。卷積碼盲識別技術的發展,對于當前眾多通信鏈路逆向分析都具有重要的作用。針對卷積碼盲識別問題,現有方法主要可分為卷積碼參數分析和卷積碼閉集識別,簡稱為卷積碼識別。其中,針對卷積碼參數分析問題,文獻[1-3]基于秩虧(rank deficiency)性質對卷積碼的參數進行提取,此類方法原理簡單,但誤碼適應能力較差。文獻[4]利用歐幾里得算法,實現了對碼率為1/n的卷積碼的識別,該方法計算量小,但幾乎不具備容錯能力。文獻[5-6]則引入了Walsh-Hadamard變換,該方法本質上計算了碼字矩陣與所有二進制序列校驗關系成立的可能性,因此具有較好的誤碼適應能力,但計算復雜度隨卷積碼記憶長度呈指數倍增加。
針對卷積碼識別問題,傳統方法主要基于卷積碼校驗關系,逐一驗證候選集合中的編碼參數。為了提高算法的誤碼適應能力,文獻[7-8]分別引入對數似然比(log-likelihood ratio,LLR)和似然差(likelihood difference,LD),將二元域運算轉為實數域運算,計算卷積碼碼字與校驗矩陣之間正交關系成立的概率,算法的容錯性能較好,但算法復雜度高。隨著深度學習在機器視覺[9]、自然語言處理[10]等領域取得的突破性成果,學者們也開始將深度學習應用于信道編碼識別領域[11-14]。文獻[11]利用深度學習技術對信道編碼類型及參數進行了識別,對比了殘差網絡(residual neural network,Resnet)、循環神經網絡(recurrent neural network,RNN)、注意力機制在信道編碼識別上的性能。文獻[12]則利用1維注意力機制對信道編碼類型進行識別,實現了多種不同類型、不同參數的信道編碼序的識別。針對卷積碼識別問題,文獻[13]提出了一種基于時序卷積網絡的識別方法,對低碼率卷積碼取得了較好的識別效果。文獻[14]利用Resnet,實現了對17種不同參數卷積碼的識別,并分析了網絡深度、輸入序列長度等參數對識別性能的影響,與傳統方法相比,該方法計算速度更快,識別能力更強。
但是,現有的基于深度學習的卷積碼識別方法通常直接將編碼序列作為網絡輸入,試圖利用網絡的特征提取和分辨能力對編碼器進行識別。這類思路導致神經網絡規模不斷增大,但識別性能提升并不明顯,仍無法有效識別碼率大于1/2的高碼率卷積碼。
本文針對現有基于深度學習的方法所存在的不足,對卷積碼碼字矩陣的相關性質展開研究,利用一個新的矩陣變換算法實現卷積碼序列特征的提取,并在此基礎上提出了一種基于多模態聯合學習的卷積碼識別方法。該方法將接收序列排列成矩陣形式,并利用解調軟信息剔除可靠性較低的碼字,通過新的矩陣變換方法對碼字矩陣進行預處理得到特征矩陣。在識別時,將原始碼字矩陣和特征矩陣分別輸入網絡中,通過網絡完成特征融合及卷積碼的分類識別。
通常可以用C(n,k,m)來表示一個卷積碼,其中n為輸出通道數,k為輸入通道數,m為編碼約束長度,即生成多項式中最高冪次數。同時,卷積碼的生成矩陣可表示為一個k行n列的多項式矩陣:
(1)

(2)

U(D)=[u1(D)u2(D) …uk(D)]
(3)
則編碼過程可表示為:
C(D)=U(D)·G(D)
(4)
卷積碼同時存在與生成多項式矩陣對應的校驗多項式矩陣H(D),且滿足:
G(D)·H(D)T=0
(5)
在實際應用中,接收到的序列通常為二進制向量,因此可以用二進制形式對生成多項式矩陣和校驗多項式矩陣進行重寫,分別記為生成矩陣G和校驗矩陣H,二者均為半無限的二元域矩陣,分別可表示為:
(6)
(7)
其中
(8)
(9)
此時,卷積碼輸入信息與輸出碼字的關系可用下式表示:
c=uG
(10)
其中:u表示編碼器輸入的信息序列;c表示編碼器輸出的碼字序列,且滿足cHT=0。
在識別過程中,基于深度學習的卷積碼識別方法與傳統方法相比,具有數據量需求少、速度快等優勢[11],現有方法的基本流程如圖1所示[11-14]。

圖1 現有基于深度學習的卷積碼識別流程Fig.1 Existing convolutional code recognition process based on deep learning
從圖1中可以看出,現有基于深度學習的方法通常將接收到的碼字序列直接作為神經網絡輸入,未對接收序列進行預處理,完全依賴于神經網絡的特征提取與識別能力。低碼率的卷積碼具有較為簡單的編碼結構,對應的碼字空間較小,碼字序列中包含的隨機信息比例較低。因此,神經網絡易于直接從碼字序列中發現規律性的特征。但在高碼率卷積碼的碼字序列中,信息比特占的比例較高,碼字序列具有較強的隨機性,此時只依靠神經網絡難以提取不同卷積碼之間的差異。因此,現有的基于神經網絡的識別方法對高碼率卷積碼的識別性能往往較差。
為了提高對于卷積碼的識別性能,本文提出了一種基于矩陣變換特征與碼序列數據多模態聯合學習的卷積碼智能識別模型,其流程如圖2所示。首先,將接收到的碼字序列按照一定規則排列成矩陣形式,然后對該碼字矩陣通過矩陣變換進行預處理,完成碼字序列的特征提取。之后,將碼字矩陣及提取出的特征矩陣分別輸入神經網絡中進行聯合學習。該神經網絡具有兩個并行的特征提取模塊和一個特征融合模塊,能夠完成兩種模態數據的特征提取與融合,使所提方法最終具有良好的識別性能。具體的預處理方法與網絡參數將在后文中給出。

圖2 本文方法的卷積碼識別流程Fig.2 Framework of the proposed method
假設發送端發送的碼字序列為c=[c1,…,cL],該碼字為編碼器C(n,k,m)的輸出序列。可以利用下述規則構建包含l個元素的子序列:
(11)

同時,通過觀察可知,矩陣G的構造具有一定的規律性。如果以n個列向量為一組,則從第m+1組開始,向量組均由前一組列向量補零獲得。因此,可以在矩陣G上方,按此規律補充一定數量的行向量得到矩陣:
(12)
當t≡0(modn)時,進一步可得:
(13)

(14)

同時,根據最簡行階梯矩陣的唯一性可知,當t≡0(modn)時,對所有采用相同編碼參數的C(l)進行消元化簡,最終所得的最簡行階梯矩陣必定是相同的。但是,最簡行階梯矩陣中所有線性無關的行向量被集中于矩陣的前rl行,不利于網絡進行特征的提取與識別。為了使碼字矩陣變換后的結果更適合神經網絡進行識別,本文利用了一種新的保留對角線元素的矩陣變換算法,即算法1。該算法將非零行的首個非零元素置于對角線上,這些非零元素的分布反映了碼字矩陣秩的變化。文獻[3]給出了,l=pn(p∈Z+)時,碼字矩陣的秩rl隨l變化的規律:
(15)
基于式(15)中矩陣秩的變化規律可知,算法1輸出矩陣對角線上非零元素的分布同樣與卷積碼參數之間存在明確的約束關系。因此,算法1相較于GE算法,其結果能夠直觀地反映出更多的編碼參數信息,不同卷積碼對應的變換結果差異更加明顯,因此更適于作為神經網絡的輸入。

算法1 保留對角線元素的矩陣變換算法Alg.1 Matrix transformation preserving diagonal elements
經過算法1變換后得到的矩陣M具有以下特點:
1)當對角線上的某個元素為1時,該元素所在列的其他元素均為0;
2)當對角線上的某個元素為0時,該元素所在行的其他元素均為0。
在無誤碼條件下,經過算法1變換后,不同卷積碼序列所對應的輸出矩陣具有不同的0/1分布。圖3給出了當t≡0(modn)時,在無誤碼條件下,C(2,1,3)、C(4,1,3)和C(4,3,3)2卷積碼碼字矩陣在經算法1變換得到的矩陣取值示意圖(卷積碼具體參數見表1)。

(a) C(2,1,3)碼字矩陣變換結果(a) Output for C(2,1,3)

(b) C(4,1,3)碼字矩陣變換結果(b) Output for C(4,1,3)

(c) C(4,3,3)2碼字矩陣變換結果(c) Output for C(4,3,3)2圖3 算法1輸出矩陣取值示意圖Fig.3 Output of the algorithm 1
圖3中黑色點表示相應位置的值為“1”,空白表示相應位置的值為“0”。從圖中可以看出,經過算法1變換后,不同參數的碼字矩陣具有明顯的差異,與前文分析一致,因此可利用算法1的輸出作為卷積碼的特征對卷積碼進行識別。
由前文分析可知,當t≡0(modn)時,利用算法1對碼字矩陣C(l)進行變換,所得上三角矩陣能夠作為特征矩陣用于編碼器的識別。但在實際應用中,由于受信道環境的影響,解調序列中不可避免地包含一定數量的誤碼。這些誤碼將在矩陣行變換的過程中擴散到其他沒有誤碼的位置,使得算法1輸出矩陣也將出現錯誤。
從信道編碼參數分析的原理和發展過程出發,可以發現編碼分析容錯能力的提升往往得益于解調軟信息的有效利用。下面,給出一種基于解調軟信息的數據篩選方法。
為不失一般性,假設調制方式為二進制相移鍵控(binary phase shift keying, BPSK)調制,傳輸信道為加性高斯白噪聲信道(additive white Gaussian noise channel,AWGNC)。記y和W分別為c對應的軟判決和硬判決序列,滿足:
yi=si+ni
(16)
其中:ni是均值為零,方差為σ2的高斯白噪聲序列;si是BPSK調制符號,與原始碼字ci之間滿足
si=2ci-1
(17)
則對于某一個符號ci,其LLR可表示為:
L(ci)=L(ci|yi)=-2yi/σ2
(18)

(19)
本文所設計的網絡模型如圖4所示。與現有方法不同,本文的網絡模型采用了特征融合的設計思路,分別將原始序列構成的碼字矩陣Y(l)和算法1輸出的特征矩陣M作為網絡的輸入1和輸入2。在全連接層之前,連接兩個網絡分支輸出的特征向量,并通過后續網絡層實現特征融合。這種設計能夠從兩種模態的數據中提取有效信息,使網絡具有更強的特征提取和識別能力。

圖4 網絡模型Fig.4 Network model
具體而言,圖4中“卷積層 64×7,3 ReLU”表示該卷積層采用的通道數為64,卷積核大小為7,步長為3,激活函數為ReLU。類似地,“平均池化層2,2”表示平均池化層,窗函數大小為2,步進為2。本文網絡采用了與文獻[14]類似的基于Resnet的骨干網絡。不同的是,本文方法采用的是2維卷積神經網絡(convolutional neural network,CNN),而文獻[14]采用的則是1維CNN。網絡的每個分支包含了2個卷積層、4個殘差模塊。4個殘差模塊中的具體類型見圖5,其中輸入1對應的激活函數為Leaky ReLU,輸入2對應的激活函數為ReLU。最后,將兩個分支輸出的特征向量進行連接,再送入全連接層,完成特征融合。在全連接層之后,采用Softmax函數得到網絡的最終輸出。此外,網絡采用Adam優化器,學習速率設置為0.001仿真中,批量大小(Batch size)為64。

(a) 基本殘差模塊(a) Identity block(b) 卷積殘差模塊(b) Convolutional residual block圖5 殘差模塊Fig.5 Resnet block
根據前文可知,構造的碼字矩陣C(l)只有在滿足t≡0(modn)時,算法1對其進行變換才能夠獲得期望的變換結果。因此,t可以取參數n所有可能取值的最小公倍數。綜合考慮性能和資源需求,l取t的4~5倍即可。現將本文識別方法總結如下:
步驟1:生成采用C(n,k,m)卷積碼編碼的軟解調輸出及其硬判決序列。
步驟2:設定t=12,l=60,對碼字序列進行分段,并利用軟解調信息篩選數據,得到碼字矩陣Y(l)和特征矩陣M。
步驟3:構建多模態聯合學習神經網絡,設置各超參數,利用數據樣本對網絡進行訓練。
步驟4:完成網絡訓練后,利用測試集對模型性能進行評估。
本節分析比較參數α對本文算法檢索性能的影響.在α有效范圍內,50個查詢在3個數據集m0、m1和k1中進行本文算法實驗,其檢索結果MAP值如圖2至圖4所示.其中,實驗參數:ms=0.2,mc=0.8,Litem =2,minPR=0.1,minNR= 0.01.圖例中, “t” 和“d”分別表示TITLE和DESC查詢,“e”代表Relax值,表Rigid值,“A”代表PTAE_AWPNP算法,“C”代表PTCE_AWPNP算法.
為了驗證本文對于卷積碼的識別性能,本文在文獻[14]所選擇的17種不同參數的卷積碼之外,增加了碼率為2/3和3/4的卷積碼,共計25種具有不同編碼約束長度、生成矩陣的卷積碼。表1給出了不同編碼器生成多項式的八進制表示。

表1 卷積碼編碼參數列表Tab.1 Parameters of convolutional codes

表2 不同算法的平均識別率Tab.2 Average recognition rate of different algorithms %
數據集的生成主要經過以下幾個步驟,首先使用表1中的卷積碼參數進行編碼,然后對編碼后的序列進行BPSK 調制,并經過AWGNC進行傳輸。最后,使用BPSK解調器對接收到的信號進行解調。設置t=12,l=60,完成數據篩選和碼字矩陣的構建,并利用算法1對碼字矩陣進行變換,得到碼字矩陣Y(l)和特征矩陣M作為數據樣本。
深度學習是一種數據驅動型方法,需要利用數據集完成模型參數的訓練,受數據集的影響較大。通過實驗,對比了本文方法在數據集初始信噪比為-1 dB、-5 dB、-10 dB時的識別性能,發現當數據集的初始信噪比為-1 dB時,所提方法的識別性能明顯較弱。當數據集的初始信噪比為-5 dB時,所提方法的識別性能略低于-10 dB時水平。因此,在生成數據集時,設置AWGNC的信噪比(signal-to-noise ratio,SNR)取值范圍為-10 dB至10 dB,間隔1 dB。
每個不同的參數生成1 000個樣本,取其中80%的樣本組成訓練集,剩余的作為驗證集。最終,共有420 000個訓練樣本,105 000個驗證樣本。
通過仿真,對本文方法的識別性能進行驗證,同時考察輸入序列長度、矩陣變換算法等因素對算法性能的影響,最后與現有的方法進行對比。實驗環境為Windows10操作系統,CPU為Intel Core i7-9700K, GPU為英偉達GeForce GTX 2080Ti,運行內存32 GB,程序開發基于Pytorch框架。
4.2.1 編碼約束長度和碼率對識別性能的影響
接收序列長度L=16 384,信噪比范圍為-10~10 dB,間隔1 dB。本文方法對于不同卷積碼的識別效果如圖6、圖7所示。

圖6 算法對1/3碼率卷積碼的識別性能Fig.6 Recognition performance of algorithm for 1/3-rate convolutional codes

圖7 算法對1/4碼率卷積碼的識別性能Fig.7 Recognition performance of algorithm for 1/4-rate convolutional codes
從圖6可以看出,對于碼率為1/3的卷積碼,編碼約束長度越短,識別性能越好。在信噪比為-6 dB時,對于編碼約束長度為2的卷積碼,識別率已經能夠達到100%。而對編碼約束長度為3的卷積碼,此時的識別率僅有約40%,其他編碼約束長度更長的卷積碼的識別率則更低。從圖7中也可以看出相同的規律。識別性能會隨著編碼約束長度的增加變差,這主要是因為編碼約束長度越長的卷積碼,前后時刻碼字之間的關聯性越強,其對應的碼字空間的維度也就更大、結構更加復雜。相較于約束長度較短的卷積碼碼字,約束長度較長的編碼器輸出的碼字序列表現出的隨機性更強,增加了網絡從中提取有效特征、完成識別的難度。
與此同時,從圖6和圖7的對比也可以發現,在相同編碼約束長度的條件下,碼率較低的1/4碼率卷積碼的識別率更高。這主要是因為,對于低碼率的卷積碼,碼字中包含的校驗比特更多,相應包含的隨機信息也就越少。這種情況下,碼字序列所表現出的隨機性也就較低,識別難度降低,識別性能隨之提高。
圖8給出了本文方法在信噪比大于0 dB時,對所有25種不同參數的卷積碼進行識別所得到的混淆矩陣。從圖中可以看出,算法對1/3和1/4碼率的卷積碼所得的識別準確率最高。而對于碼率較高的1/2、2/3和3/4卷積碼,算法識別性能出現了下降。這和前文的分析是一致的,較高的碼率和較長的記憶長度,都將提高卷積碼結構的復雜性,編碼后的碼字序列也將表現出更強的隨機性,顯著提高了卷積碼識別的難度。

圖8 25種卷積碼識別結果的混淆矩陣Fig.8 Confusion matrix of the recognition accuracy of 25 convolutional codes
4.2.2 數據長度對識別性能的影響
接收序列長度L的取值包括:4 096、8 192、16 384,信噪比為-10~10 dB,間隔為1 dB。
考慮到對于閉集識別算法而言,單獨某一個目標的識別性能并不能說明算法的整體性能。因此,本節采用同一碼率下的平均識別率作為性能指標,考察不同接收序列長度對識別性能的影響(見圖9)。例如,對于1/2碼率卷積碼,本文以表1中C(2,1,3)、C(2,1,4)、…、C(2,1,9)等7種1/2碼率卷積碼識別率的平均值作為性能指標。
從圖9中可以看出,信噪比小于1 dB時,接收序列長度L對識別性能幾乎沒有影響。信噪比在1~5 dB時,隨著L的增大,識別性能顯著提高。具體而言,L每增長1倍,識別性能增加約10%~15%。而當信噪比較高時,不同L的識別性能均能達到100%。這主要是因為,在信噪比小于1 dB時,序列中包含的錯誤信息較多,無法篩選出受誤碼影響較小的碼字矩陣,因此無法得到可用于識別的有效特征矩陣。而隨著信噪比的提升,數據篩選的作用開始體現,此時隨著接收序列長度的增大,得到受噪聲影響較小的碼字的概率也就越高。在本文方法中,接收數據長度的變化并不影響最終輸入網絡的數據大小,因此在實際應用中,應利用盡可能多的數據,從中篩選出可靠性最高的序列構建碼字矩陣,從而提高識別的準確率。
4.2.3 矩陣變換方法對識別性能的影響
通過仿真實驗,同樣采用同一碼率卷積碼的平均識別率作為性能指標,對比了GE算法和文中算法1分別作為特征提取手段時模型的識別性能。接收序列長度L的取值為16 384,信噪比為-10~10 dB,間隔為1 dB,結果如圖10所示。

圖10 不同矩陣變換方法下的算法識別性能Fig.10 Recognition performance of algorithm under different matrix transformation methods
從圖10中可以看出,不論采用哪種變換算法,均能夠在信噪比達到5 dB時,識別率上升至100%。同時,若采用高斯消元法對碼字矩陣進行變換,最終的識別性能稍弱于算法1。這說明本文所提的識別框架能夠較好地解決高碼率卷積碼識別的問題;算法1相較于傳統的GE算法,更適合作為碼字矩陣的預處理方法。
4.2.4 性能對比
對比了本文方法與現有方法的識別性能,如圖11和圖12所示。所采用的對比算法為當前識別性能最優的深度學習算法深度殘差網絡(deep residual network, DRN)[14],以及傳統方法中具有代表性的基于平均LLR方法(簡稱LLR方法)[15]。接收序列長度L的取值為16 384,信噪比為-10~10 dB,間隔為1 dB。本節同樣采用同一碼率卷積碼的平均識別率作為性能指標。

圖11 不同算法對低碼率卷積碼的識別性能Fig.11 Recognition performance of different algorithms for low rate convolutional codes

圖12 不同算法對高碼率卷積碼的識別性能Fig.12 Recognition performance of different algorithms for high rate convolutional codes
圖11和圖12給出了三種方法對不同碼率卷積碼的性能對比。表2則給出了三種方法對不同碼率卷積碼的整體平均識別率。從上述圖表中可以看出,本文方法較同樣基于深度學習的DRN方法有較大的提升。而與LLR方法相比,本文方法對低碼率卷積碼的識別性能較好。但隨著卷積碼碼率的增加,本文方法與DRN方法的性能下降要快于LLR方法。對于高碼率卷積碼,本文方法的性能略低于LLR方法。
這主要是深度學習方法和傳統方法的原理差異造成的。對于深度學習方法,提取的是碼字序列變化、數據分布的規律。當碼率較低時,碼字空間中隨機的信息比特較少,神經網絡能夠對碼字序列中存在的規律進行提取。即使是在低信噪比條件下,輸入數據中仍以一定概率存在能夠反映碼字特征的片段。而此時,LLR方法的統計量受噪聲影響嚴重,已經無法反映不同卷積碼之間的差異。因此,本文方法能夠在低信噪比條件下取得優于LLR方法的識別效果。
但隨著碼率的提高,編碼器變得更加復雜,碼字空間不斷擴大,碼字中各比特之間的約束關系增強,網絡模型難以直接從碼字序列中提取有效的特征。這也是現有基于深度學習的方法不能適應高碼率卷積碼的主要原因。與DRN方法相比,本文方法通過對碼字矩陣的預處理,實現了編碼序列特征的提取,并采用特征融合的思路,有效提高了對高碼率卷積碼的識別性能。此時,通過矩陣變換得到的特征在識別中起著主導作用。此外,矩陣變換過程中不可避免地會產生誤碼擴散的問題,與LLR方法相比更易受到誤碼影響,這導致本文方法對高碼率卷積碼的識別性能較LLR方法仍有1dB的差距。
文章從卷積碼的編碼過程出發,對卷積碼碼字矩陣的性質進行了研究,利用一種新的矩陣變換算法對碼字序列進行變換,使變換后的矩陣更適合作為神經網絡的輸入。在此基礎上,提出了一個新的基于多模態數據聯合學習的卷積碼智能識別模型。模型首先利用解調軟信息對數據進行篩選,再對篩選后得到的碼字矩陣進行變換得到特征矩陣。然后,將特征矩陣和原始碼字矩陣分別作為網絡兩個支路的輸入,利用網絡完成特征的融合與識別。從仿真結果來看,本文方法的識別性能相比于已有基于深度學習的方法有較大的提升,彌補了當前基于深度學習的識別方法無法適應高碼率卷積碼的不足。與傳統方法相比,本文方法對低碼率卷積碼的識別性能更強,但對高碼率卷積碼的識別仍需要在后續工作中繼續進行研究。