王華華,徐勇軍,秦 紅,方澤圣
(重慶郵電大學 通信與信息工程學院,重慶 400065)
極化碼由Arikan教授[1]提出的并且是第一個在連續(xù)抵消(Success Cancellation,SC)譯碼算法下實現(xiàn)二進制輸入離散無記憶信道(Binary Input Discrete Memoryless Channel,B-DMC)對稱容量的構造性和可證明性的編碼方案,并且已被定為第五代增強型移動寬帶(enhanced Mobile Broadband,eMBB)控制信道的標準糾錯碼。
深度學習已經在很多領域內得到了應用,如計算機視覺、自然語言處理和自動駕駛等。眾多學者受到這些進展的啟發(fā),也試圖將深度學習引入到極化碼的譯碼算法中,以達到改善極化碼的譯碼性能的目的。文獻[2]介紹了將神經網絡譯碼器(Neural Network Decoder,NND)用于短碼字的極化碼的譯碼中,其性能優(yōu)于MAP算法并且不需迭代譯碼,然而在長碼字的情況下其性能雖然接近MAP算法,但是指數(shù)增長的訓練復雜度和較差的泛化性阻礙了它的實際應用。事實上,隨著極化碼碼長的增加,比特數(shù)量會呈指數(shù)級增長,進而會導致神經網絡訓練時產生維度爆炸的問題,這也一直是阻礙深度學習在極化碼譯碼算法上應用的難題[3-4]。文獻[5]通過深度學習對Tanner圖中的權值進行訓練,獲得了比傳統(tǒng)BP譯碼算法更好的譯碼性能。文獻[6]提出了一種基于信念傳播的極化碼稀疏神經網絡譯碼器(Sparse Neural Network Decoder,SNND)。文獻[7]將碼長較長的極化碼劃分為若干個短碼,再將每個短碼塊用提前訓練好的NND代替后與BP譯碼器結構相耦合,解決了NND在中長碼譯碼時產生的維度爆炸問題。文獻[8]提出了基于卷積神經網絡(Convolutional Neural Network,CNN)擾動的SC譯碼算法,通過CNN網絡產生擾動噪聲以提升接收信號的SNR進而達到提升譯碼性能的目的。文獻[9]提出了利用殘差神經網絡對接收信號處理后再進行NND,極大地提升了譯碼性能。
為減少傳統(tǒng)BP譯碼算法譯碼過程中噪聲傳播對碼字信息的影響,本文分析了BP譯碼算法的結構特點以及在譯碼過程中噪聲傳播的特點,同時結合文獻[7]提出的擾動噪聲理論和文獻[8]提出的殘差網絡對信號處理的思想,提出了殘差擾動網絡(Residual Perturbation Network,RPN)輔助的BP譯碼算法。該算法將殘差擾動網絡放置在傳統(tǒng)BP譯碼算法之后,在傳統(tǒng)BP譯碼算法在該次迭代結束后未通過CRC校驗時,通過殘差擾動網絡產生擾動噪聲并更正接收信號后再進行下一次迭代過程。
BP譯碼算法的因子圖如圖1所示,其中N=23,(a,b)分別表示行數(shù)和列數(shù)。圖1中有三個階段,每個階段由四個基本處理單元(Processing Element,PE)組成。PE的結構如圖2所示。每個PE有四個節(jié)點,每個節(jié)點與兩種類型的消息相關聯(lián),即從右向左傳遞的左消息和從左向右傳遞的右消息,分別用L和R表示,L和R均是N×(n+1)的矩陣。本文中,L和R均是對數(shù)似然比(Log-Likelihood Ratio,LLR)的形式。
圖1 BP譯碼算法原理框圖
圖2 基本處理單元
PE中消息傳播規(guī)則如下:
(1)
在迭代解碼之前,L和R初始化如下:
(2)
(3)
式中:L的第n+1列表示接收的LLR值;R的第1列中信息比特位的先驗值設置為0,凍結比特位的先驗值設為+∞。在譯碼迭代結果后,信源序列和碼字的判決規(guī)則如下:
(4)
(5)
殘差網絡是在文獻[10]中提出的,用來解決深度神經網絡訓練時性能退化問題,即隨著神經網絡深度的增加,訓練精度開始下降。圖3給出了殘差學習塊的總體架構。
圖3 基本殘差塊
殘差學習網絡中存在兩種映射關系,即恒等映射和殘差映射。假設期望的底層映射為H(x),那么殘差映射可以表示為
F(x)=H(x)-x。
(6)
由圖1可知,BP譯碼算法的PE是由一個校驗節(jié)點和一個變量節(jié)點組成的,BP譯碼算法整個迭代過程就是通過基本處理單元不斷更新和傳遞所有節(jié)點的值,直到譯碼結束。在迭代過程中,帶有噪聲的碼字信息通過不斷地向前傳播和向后傳播得到更新并傳遞,進而造成了噪聲信息通過迭代過程擴散到了所有的節(jié)點。因此,如何降低噪聲在迭代過程中對碼字信息的影響是本文的研究重點。
噪聲是影響信道譯碼的主要原因之一,同時噪聲又是無法完全去除的。文獻[7]提出了譯碼糾錯空間理論,即發(fā)送端的調制符號在經過信道中的噪聲干擾后,接收端接收到的信號在一定范圍內仍然可以正確譯碼。圖4表示M個碼字的可正確譯碼區(qū)域a=(a1,a2,…,am)。以碼字a2為例,y表示接收端接收到的受噪聲干擾后的信號,c所在區(qū)域表示可正確譯碼的區(qū)域,n表示隨機噪聲??赏ㄟ^多次向接收信號y中添加次級獨立噪聲,使接收信號y落在碼字a2的可正確譯碼區(qū)域內,從而達到正確譯碼的目的。
圖4 譯碼糾錯空間示意圖
通過以上對BP譯碼算法的結構特點和噪聲傳播特點以及擾動噪聲理論的分析,本文將殘差網絡和擾動噪聲理論結合,提出了殘差擾動網絡輔助的BP譯碼算法。該算法將殘差擾動網絡置于傳統(tǒng)BP譯碼算法的迭代結構后面,構成了BP-RPN譯碼器。這樣做的目的一方面是為了避免經RPN修正后的接收信號在BP譯碼算法的迭代過程噪聲影響再擴大,另一方面是將RPN和傳統(tǒng)BP譯碼算法的結構耦合,使得每次迭代譯碼失敗后均會進行RPN處理進而減少傳統(tǒng)BP譯碼算法的迭代次數(shù)。其中RPN主要是從接收信號中提取噪聲特征,并根據(jù)接收信號與發(fā)送端調制符號之間的偏離程度,動態(tài)地調節(jié)擾動噪聲np對應的對數(shù)似然比值LLRnp,有效地將接收值y調回到可正確譯碼的區(qū)域內,再更新接收信號的對數(shù)似然比值LLR。本文所提算法的系統(tǒng)模型框圖如圖5所示。
圖5 系統(tǒng)模型框圖
算法偽代碼如下:
1 Input:llr,iter_max
3 fori=1→iter_max do
4llri←BP(llr)
5 if CRC(d)∈cori==iter_max then
7 else
8 RPN
9llrnp←RPN(llri)
10llr=llri+llrnp
11 end if
12 end for
本文所采用的RPN是基于ResNet18模型框架簡化而成的。本文中的RPN模型共有3個如圖3所示的基本殘差塊,原理框圖如圖6所示。
圖6 殘差擾動神經網絡框圖
(7)
式中:‖·‖2表示范德蒙2范數(shù)。
殘差擾動網路的具體訓練參數(shù)如表1所示,其中,每個SNR產生100 000組數(shù)組共600 000個數(shù)據(jù),按照7∶3的比例劃分訓練集和測試集。本文網絡參數(shù)的初始化選擇Xavier方法,優(yōu)化方法采用Adam方法。
表1 殘差擾動神經網絡參數(shù)
仿真采用的極化碼碼長N=512,碼率R=0.5,CRC長度為16。采用的調制方式為BPSK調制,信道條件為加性高斯白噪聲信道,傳統(tǒng)BP譯碼算法的最大迭代次數(shù)設置為50。其中,BP-RNND(50)是文獻[8]中所提的算法。從圖7中可以看出,在誤比特率為10-4時,所提算法相比于傳統(tǒng)的BP譯碼算法約有0.7 dB的性能增益,相比于BP-RNND(50)譯碼算法約有0.6 dB的性能增益,但是相比于SCL(L=16)譯碼算法約有0.25 dB的性能損失。這是由于本文所提算法在每次迭代后都會進行判決和CRC校驗,當CRC校驗失敗時會通過RPN網絡對判決信息進行一定程度的錯誤糾正,在經過多次糾正后會使其更大概率落在可正確譯碼空間內;而文獻[8]所提算法則是先進行50次的迭代后再送入NND中譯碼,由于在此過程并沒有對可能錯誤的迭代信息進行錯誤糾正,因此其性能沒有本文所提算法好。在2.2 dB后所提算法譯碼性能逐漸差于SCL(L=16)的譯碼性能,但是遠遠高于傳統(tǒng)BP譯碼算法的譯碼性能。
圖7 譯碼性能對比
傳統(tǒng)BP譯碼算法和所提算法譯碼結束各自的平均迭代次數(shù)如圖8所示,可以看出在低SNR條件下,所提算法的平均迭代次數(shù)比傳統(tǒng)BP譯碼算法平均迭代次數(shù)約有60%的降低;在SNR大于2 dB后,所提算法的平均迭代次數(shù)相比于傳統(tǒng)BP譯碼算法降低得不明顯。
圖8 平均迭代次數(shù)對比
本文通過分析BP譯碼算法的結構特點以及在譯碼過程中噪聲傳播的特點,結合擾動噪聲理論和殘差網絡提出了殘差擾動網絡輔助的BP譯碼算法。該算法在低SNR條件下可以顯著提升傳統(tǒng)BP譯碼算法的誤比特率并顯著減少傳統(tǒng)BP譯碼算法的迭代次數(shù)。在高SNR條件下本文所提算法相較于傳統(tǒng)BP譯碼算法在兩個方面均改善不大,這是因為在高SNR條件下碼字信息中所含的噪聲較少,殘差網絡很難從碼字信息中提取出有效的噪聲信息,進而產生擾動噪聲不夠準確。在后續(xù)的研究中可以通過增大訓練集或者是加深殘差網絡等方法來改善此問題。