萬 飛,白寶明,朱 敏
(西安電子科技大學 綜合業(yè)務(wù)網(wǎng)理論及關(guān)鍵技術(shù)國家重點實驗室,陜西 西安710071)
近年來,深度學習(Deep Learning,DL)已經(jīng)在圖像處理、機器翻譯、語音識別等領(lǐng)域展現(xiàn)出了顯著的性能提升,也在通信領(lǐng)域收到了廣泛的關(guān)注。DL在物理層的典型應(yīng)用包括模型/數(shù)據(jù)驅(qū)動的檢測、均衡和譯碼。
當前,將DL應(yīng)用到譯碼中已經(jīng)成為學術(shù)界和工業(yè)界的廣泛認同。文獻[1]將神經(jīng)網(wǎng)絡(luò)(Neural Network,NN)引入到信道譯碼(BCH碼)中,其展現(xiàn)的優(yōu)異性能激發(fā)了DL與譯碼結(jié)合的研究熱潮。隨后,越來越多基于DL的譯碼方案被提出[2-3],例如,自編碼器[4]和不同類型的NN譯碼方案的性能分析[5-6]。同時,DL與經(jīng)典算法的結(jié)合也被視為另一種有效利用深度學習能力的方案。文獻[7] 基于置信傳播譯碼算法與NN的結(jié)合,將因子圖上的權(quán)重視為分枝重要性度量,剪枝低重要性的因子圖分枝,對于Reed-Muller碼和短LDPC碼取得了良好的比特錯誤率(Bit Error Rate,BER)性能,并且顯著降低了譯碼復雜度。其他傳統(tǒng)譯碼算法,比如最小和譯碼算法及偏移最小和算法[8]通過NN給因子圖增加乘性訓練權(quán)重和偏移參數(shù)減少了近似誤差,也取得了性能提升。而針對相關(guān)噪聲的影響,文獻[9]在二元LDPC碼中使用卷積神經(jīng)網(wǎng)絡(luò)(Convolution Neural Network,CNN)來輔助收端抵抗噪聲的影響,同樣的方案也被采用輔助Polar碼譯碼[10]。當下,大部分的工作都集中在二元碼上,并且除了基于掩模圖的方案[11],其他所有方案都受限于信息長度,基本都在中短碼長下使用[12]。
而一般來說,在等效比特長度下,相較于二元LDPC碼,多元LDPC碼有著更小的生成矩陣和更優(yōu)異的誤碼性能。因此,神經(jīng)網(wǎng)絡(luò)的規(guī)模隨著碼長的增長呈指數(shù)增長的限制對于多元碼不再是困難。并且,多元LDPC碼天然適合與高階調(diào)制相結(jié)合的特性也使得其更具有實用性。但是,軟判決譯碼算法的復雜度太高,這是限制多元LDPC碼實用的最大問題。在文獻[13] 中,對于加性高斯白噪聲(Additive White Gaussian Noise,AWGN)信道傳輸?shù)姆柺褂胹inc脈沖成形,提出一種基于硬消息傳遞的多元LDPC碼聯(lián)合檢測譯碼迭代(Iterative Joint Detection Decoding,IJDD)的方案。
本文考慮到更實際的場景,在發(fā)端使用了平方根升余弦(square-Root Raised-Cosine,RRC)脈沖成形濾波器。對于AWGN信道,在收端也使用對應(yīng)的RRC濾波器和適當?shù)牟蓸?。因此,端到端的等效離散模型可以視為信號經(jīng)歷了一個相關(guān)噪聲信道。同時,文獻[14]及后續(xù)的工作也展現(xiàn)出了一種全新的角度——從噪聲的角度考慮譯碼的方案?;谙嚓P(guān)噪聲的特性,采用DL來減弱噪聲的影響以提升傳輸?shù)男阅堋?/p>
本文提出了一種CNN輔助的迭代檢測譯碼(Iterative Detection and Decoding,IDD)框架,可以有效抵抗相關(guān)信道噪聲。NN從接收序列中恢復出相關(guān)噪聲,然后迭代地從接收序列中減去學習到的噪聲數(shù)據(jù),減弱了噪聲影響的信號能夠得到更好的BER性能。并且,受利用NN譯碼方案的啟發(fā),在CNN輔助的IDD方案(CNN-IDD)后再級聯(lián)一個網(wǎng)絡(luò),可以達到進一步的性能提升。
在中短碼長下,多元LDPC碼的性能優(yōu)于二元LDPC碼,尤其是與高階調(diào)制相結(jié)合時。然而,軟判決譯碼算法的高復雜度限制了其實際使用。在文獻[19-20]中,基于硬信息的IJDD譯碼算法被提出,在復雜度與性能之間實現(xiàn)了良好的平衡。IJDD算法的基本思想是采用硬消息迭代將信號檢測器和多元LDPC譯碼器融為一個整體,在信號空間上通過多次迭代將有噪接收信號逐步修正到正確信號點上。此后,基于符號投票準則的大數(shù)邏輯算法被提出[13,21]。
DL在圖像分類、語言處理和機器翻譯等方面的巨大成功引起了跨領(lǐng)域合作的熱潮。常用的NN包括多層感知機、CNN和循環(huán)NN,本文使用CNN來輔助譯碼。
如圖1所示,神經(jīng)網(wǎng)絡(luò)從左到右分別由輸入層、隱藏層和輸出層組成。
圖1 NN結(jié)構(gòu)圖
輸入層將數(shù)據(jù)集傳入NN,因此,其包含的神經(jīng)元數(shù)目與數(shù)據(jù)集的特征數(shù)一致。對應(yīng)地,輸出層將預測結(jié)果傳出NN,其包含的神經(jīng)元數(shù)目與標簽維度一致。隱藏層是整個NN最為重要的部分,對應(yīng)于第i層的操作為:
zi=g(i)(wixi+bi),
(1)
其中,zi為當前層的輸出,xi為第i-1層的輸出zi-1。wi和bi分別為第i層的權(quán)重矩陣和偏置向量。激活函數(shù)g(·)給NN引入了非線性,也是DL強大表達能力的原因之一。常用的兩種激活函數(shù)——線性整流(Rectified linear unit,Relu)和sigmoid函數(shù)如下所示:
(2)
另一種重要的函數(shù)是損失函數(shù),它衡量了模型預測與真實標簽之間的差異,比如均方差(Mean Square Error)損失函數(shù):
(3)
因為其在像素圖上強大的特征提取能力,CNN被廣泛應(yīng)用在圖像處理中。如圖2所示,CNN利用卷積操作從部分像素點中提取特征。
圖2 CNN處理框圖
卷積核對于數(shù)據(jù)的復用能夠減少數(shù)據(jù)集規(guī)模需求,同時也會加速訓練過程。后續(xù)的池化操作能夠避免過擬合。
結(jié)合CNN-IJDD的多元LDPC碼編碼調(diào)制系統(tǒng)框圖如圖3所示。
圖3 CNN-IDD傳輸框圖
如圖4所示,經(jīng)過RRC脈沖成形,等效離散時間信道輸出為:
圖4 等效離散時間信道模型
y=x+n,
(4)
式中,噪聲n是擁有自相關(guān)矩陣R的復高斯隨機向量。令Ri,j為R的第(i,j)個元素,則
Ri,j=ρ|i-j|,
(5)
式中,ρ為相關(guān)系數(shù)。這樣的信道模型在文獻[22] 中也被引用。
(6)
zHT=0。
(7)
(8)
因此,估計的噪聲序列為:
(9)
這就是NN的原始數(shù)據(jù)。
CNN在獲取噪聲序列之后,利用實/復數(shù)轉(zhuǎn)換、卷積和非線性函數(shù)等操作,在損失函數(shù)和標簽指引下進行訓練。
受NN可以直接用于譯碼的啟發(fā),在CNN-IDD迭代后再級聯(lián)CNN網(wǎng)絡(luò),得到圖5的優(yōu)化CNN-IDD結(jié)構(gòu),對最后一次迭代的譯碼器輸出再經(jīng)過一次CNN網(wǎng)絡(luò)修正來輔助CNN-IDD框架的譯碼輸出。
圖5 優(yōu)化的CNN-IDD傳輸框圖
將原始數(shù)據(jù)傳入CNN時,簡單地將復數(shù)向量直接聯(lián)合,得到類似圖像的矩陣是不合理的??紤]到實際通信傳輸中復數(shù)信號的特點,如圖6所示,對應(yīng)圖3中的紅色虛線框,利用實部虛部分離和重構(gòu)的預處理操作。
圖6 CNN設(shè)計流程
(10)
通過此操作,訓練所需要的數(shù)據(jù)集數(shù)量可以減半。將實部與虛部按列放置組合構(gòu)造得到數(shù)據(jù)矩陣。
由于池化操作和輸出層前的全連接結(jié)構(gòu)在本文提出的方案中會引起較大的性能損失,因此并不推薦采用。為了得到與標簽向量相同的特征維度,設(shè)定最后一層隱藏層中卷積核的水平滑動步長為2,其余層中水平滑動步長均為1。垂直滑動步長由超參數(shù)設(shè)定,CNN的詳細處理過程如算法1所示。
相對應(yīng)的,在輸出層后,需要將預測數(shù)據(jù)按照下式,進行實部虛部重新組合,整合為復數(shù)形式,即網(wǎng)絡(luò)學習到的噪聲序列:
(11)
算法1 CNN處理過程輸入:數(shù)據(jù)集:r^,J^特征向量:R(n),I(n)網(wǎng)絡(luò)參數(shù):長度n,批量大小Bz,卷積層數(shù)L,每一層神經(jīng)元數(shù)目[a0=0,a1,…,aL]和濾波器大小[b1,b2,…,bL]目標:輸出估計噪聲r^,J^1:將r^,J^傳入輸入層;2:將輸入向量轉(zhuǎn)化為(Bz,n,0,1)形式張量;3:fori∈[1,L] do4:令卷積核大小為[bi,1,ai-1,ai];5:使用步長[1,1,1,1]移動卷積核fori 在訓練階段,本文使用在多個信噪比[8 dB,18 dB,0.5 dB] 下生成的數(shù)據(jù),對于每個信噪比生成200 000個符號,其中90%用于網(wǎng)絡(luò)訓練,剩下的用于測試。模型共使用5層網(wǎng)絡(luò),每一層的神經(jīng)元數(shù)目和激活函數(shù)設(shè)置如表1所示,其中“(a,b×c)”指的是通道數(shù)目a和卷積核大小b×c。利用Xavier初始化[24]、Adam優(yōu)化算法[25]和MSE損失函數(shù),設(shè)定學習率為0.01,衰減率為0.99。訓練的截止條件設(shè)定為損失不再下降或者達到最大迭代次數(shù)5 000次。為了提高模型對于信噪比的穩(wěn)健性,使用了批量歸一化,對于每個信噪比下選取了50個樣本。同時,也采用了0.001的正則化和0.999的滾動平均來改善模型的泛化能力。 表1 CNN參數(shù)設(shè)置表 圖7比較了多元LDPC碼硬判決譯碼和僅采用CNN的譯碼性能,對于BER=10-4時,CNN方案可以取得約1 dB的性能增益,這也驗證了優(yōu)化的CNN-IDD方案的出發(fā)點。 圖8展現(xiàn)了迭代次數(shù)對于BER性能的影響??梢钥吹?,對于BER=10-4時,2次迭代和10次迭代的CNN-IDD方案分別取得了0.5 dB和0.4 dB的性能增益。對10次迭代下僅采用一次網(wǎng)絡(luò)調(diào)用而不是每次IDD后都調(diào)用網(wǎng)絡(luò)的做法,在保證性能的前提下進一步降低了復雜度。 圖8 CNN-IDD方案在不同迭代次數(shù)下的性能 圖9比較了CNN-IDD方案和優(yōu)化的CNN-IDD方案性能,對于2次迭代,優(yōu)化的CNN-IDD比原IJDD算法取得近1 dB的性能增益,比CNN-IDD方案取得了0.5 dB的性能增益。 圖9 優(yōu)化的CNN-IDD性能 本文針對多元LDPC碼編碼調(diào)制系統(tǒng),提出了CNN-IDD方案及其優(yōu)化來減小相關(guān)信道噪聲影響。通過從接收信號中刪除CNN預測噪聲的迭代操作,收端減弱了噪聲對于信息的影響,從而給檢測和譯碼提供了經(jīng)過去噪處理的數(shù)據(jù),即改善了接收信號的信噪比。仿真結(jié)果表明,對于GF(64)域上的(42,21)多于LDPC碼,優(yōu)化的CNN-IDD算法可以取得近1 dB的性能增益。后續(xù),將考慮更高域上的多元LDPC碼的CNN-IDD方案,同時將信道擴展至衰落噪聲信道和碼間干擾信道。3 仿真結(jié)果與分析
3.1 參數(shù)設(shè)置
3.2 性能與分析
4 結(jié)束語