展愛云, 劉 琪, 王艷麗, 張躍進
(華東交通大學信息工程學院, 南昌 330013)
在第五代移動通信的研究標準中,信道編碼方式無疑是研究的核心方向。極化碼(polar code)由Arikan[1]于2008年提出,極化碼理論證明可達香農極限,并且有可實用的編解碼復雜度,適合短碼編碼。對于5G控制信道短碼編碼,極化碼性能優(yōu)于第四代移動通信(4th generation mobile system, 4G)使用的低密度奇偶校驗(low-density parity-check, LDPC)碼和第三代移動通信(3th generation mobile system, 3G)網絡使用的Turbo碼,并且有效的支持三類5G典型應用場景。極化碼的根本思想是信道極化[2]。隨著碼元長度的增大,信道可能出現極化現象,即一些對稱容量接近1的理想信道,剩余的趨于0的有噪信道。極化碼則是在理想信道中發(fā)射信息序列,在有噪信道中發(fā)送凍結序列,已確定為5G增強移動寬帶的控制信道編碼方案[3-4]。
然而目前極化碼中還存在許多細致的問題仍需要研究。例如為確保性能,5G極化碼的編碼碼長、碼率、信噪比等具體參數的值應怎樣確定。另外,極化碼的可靠性序列設計、交織方式、速率匹配模式等都會影響到編譯碼的效率。所以得到一種編碼效率高的方案迫在眉睫。
近年來,中外學者提出了多種設計編碼方案。文獻[5]提出了一種通過引入極化信道的上下界近似值并利用迭代算法進行編碼,保障了編碼的精度,但隨著碼長的增加,系統(tǒng)計算的復雜度也會大幅上升。文獻[6]采用高斯近似算法,提出了一種計算復雜度為O(NlogN)的編碼方式。但當碼長較長時存在計算誤差。文獻[7]采用了一種并行計算的編碼方式,該方法可以實現快速并行計算,但由于增加了一個極化結構導致計算量隨碼長指數倍增長,降低了系統(tǒng)編碼效率且沒有解決時延問題。文獻[8]基于鑿孔與密度進化理論提出了一種編碼參數捷變理論,能夠實時快速地改變編譯碼參數。文獻[9]采用LDPC碼作外碼,極化碼作為內碼來提高有限碼長的極化碼的糾錯性能。在SC(successive cancellation)譯碼下比傳統(tǒng)極化碼提高了0.5 dB。
對于極化碼編碼來說,如何以較低的計算復雜度進行編碼仍然是一個非常具有研究意義的問題。結合5G標準,分別對上下行控制信道進行極化碼編碼方案設計。利用MATLAB界面直觀展示輸入序列在上下行信道的編碼仿真結果,實現極化碼在5G上下行信道的適配應用。并根據5G標準協議下極化碼的碼長進行性能仿真,以平均編碼速率為指標進行比較,得到編碼效率最高的方案。
極化編碼由極化信道可靠性評估、比特混合、構造生成矩陣這三大部分構成[10]。極化碼的編碼過程如圖1所示。
圖1 極化碼的編碼流程Fig.1 Process of polar coding
首先信道極化是極化碼編碼的核心思想。信道極化可分為兩階段:信道聯合和信道分裂。信道聯合是通過對N個獨立的二進制擦除信道(binary erasure channel, BEC)迭代合成產生的一種信道WN:XN→YN,其中N=2n(n≥0)。從n=0開始遞歸,遞歸結構如圖2所示。
圖2 信道WN的遞歸結構Fig.2 Recursive structure of channel WN
(1)
(2)
由此可知,由兩個遞歸式可以計算出各個分裂信道的轉移概率。即對任意n≥0,N=2n,1≤i≤N/2,有
(3)
(4)
其次,為了判斷一個極化信道的好壞,采取極化信道可靠性評估的方法,根據可靠性的大小來判斷信道的好壞[11]。對應目前主流的三種信道二進制離散無記憶信道(Binary discrete memoryless channel, B-DMC)、二元對稱信道(binary symmetric channel, BSE)、二進制高斯白噪聲信道(binary Gaussian white noise channel, BAWGNC)3種度量方法比較如表1所示。
表1 極化信道的可靠性估計
通過比較,選擇巴式參數法,其表達式為
(5)
最后構成生成矩陣。由于生成矩陣的不同,現有兩種極化編碼描述方法:一種由Arikan[3]提出的極化編碼描述方法。另一種則是不實施比特反轉的編碼[12]。表2為兩種編碼方法的比較。
表2 極化碼編碼描述方法比較
雖然TS 38.212協議[13]已經規(guī)定Polar碼的編碼流程,并且在上、下行信道采用不同的編碼結構。然而,協議中并沒有給出選用編碼方案的理由和詳細實施方法。下面將給出具體的設計方法:
5G極化碼的編碼基本流程為:添加循環(huán)冗余(cyclic redundancy check, CRC)校驗比特,極化編碼,速率匹配。
首先要決定5G控制信道編碼的最大編碼長度。對于整個編碼系統(tǒng)來說編碼長度N的值會對CRC校驗方法,編碼結構,交織模式以及編碼效率造成影響[14-15]。
采取的是在5G標準RAN1#88會議[16]中,規(guī)定5G上下行信道分別對應的最大編碼長度Nmax分別為1 024、512 bits。
為提高傳輸的可靠性,需要在編碼前進行CRC效驗[17]。在5G控制上下行信道分別選用不同的CRC生成多項式。在極化編碼之后進行速率匹配。它包括子塊交織、比特收集、比特交織等3個部分。信道交織在速率匹配之后,它主要用于上行信道的上行控制指示,而下行不采用并且5G新空口上行信道中采用三角形交織結構[18]。
如圖3所示為三角交織原理圖。輸入比特為塊交織器的比特e0,e1,…,eE-1,其中E是位數。來自速率匹配的E位比特,從塊交織器得到的輸出位序列如下。
圖3 三角交織Fig.3 Triangle interleaving
(1)通過找到最小整數P,例如:
(6)
來確定等腰直角三角形的行列數。
(2)如果Q>E,k=0,1,…,E-1被yk=ek填充。對于k=E,E+1,…,Q-1被yk=[NULL]填充,其中NULL代表空值。然后,位序列yk寫入等腰直角三角形,以位y0在第0行第0欄中,開始逐行寫入等腰三角形。
塊交織器的輸出是從位y0開始在第0欄的第0行逐列讀出的位序列。塊交織后的位表示為v0,v1,…,vE-1,v0,v1,…,vE-1對應y0,y1,…,yp-1,當讀取到NULL時候停止讀取。
具體實驗方案為將輸入序列根據上下信道分別對應的CRC生成多項式,添加CRC比特。然后采用巴氏參數法進行極化信道可靠性估計,在可靠性高的信道傳送信息序列。如圖4所示。
圖4 編碼總體設計方案Fig.4 Coding overall design scheme
編碼設計采用方法2,構造非比特反轉的生成矩陣的極化編碼結構,然后利用速率匹配及交織得到最終的極化碼編碼碼字。
程序的總體流程如圖5所示。
根據主界面的參數選擇,將上下行編碼仿真結果分別呈現在不同界面。并畫出各編碼步驟的波形圖,實現計算結果和編程的可視化。且主要針對編碼結構、交織方式和CRC校驗,對其性能進行比較分析。最后在分析結果后提出相應的改進方案。
編碼主要實現的就是將輸入比特根據在上下行信道傳輸,在界面分別進行CRC校驗,然后再進行編碼,交織。得到最終編碼的碼字結果及波形。本設計參數如下:編碼碼長N=64;信息比特K=32;實際傳輸的編碼比特數=55;上行信道輸入比特為:111 111 000 101 011 111 111;下行信道輸入比特為:11 111 100。信息比特上行信道極化碼編碼仿真結果如圖6所示。
下行信道極化碼編碼仿真結果如圖7所示。
圖6 上行信道極化編碼仿真圖Fig.6 Simulation diagram of uplink channel polarization coding
圖7 下行信道極化編碼仿真圖Fig.7 Simulation diagram of downlink channel polarization coding
首先是對添加CRC校驗比特這部分進行仿真測試,具體測試的內容是針對三種生成多項式來進行仿真。測試不同的生成多項式在相同的信道之下,選擇出用時最短,效率最高的編碼多項式。5G上行控制信道最大編碼長度為1 024 bits,只采用CRC生成多項式gCRC11(x)。所以這部分無須比較。5G下行控制信道最大編碼長度為512 bits,采用三種CRC生成多項式gCRC24(x),需要分別對這三種gCRC24(x)進行仿真比較。在下行控制信道下的編碼,為了避免偶然性誤差,所以在3種生成多項式條件下,分別運行1 000次,并統(tǒng)計該1 000次運行的平均編碼時間,并繪制柱狀圖,如圖8所示。
圖8 3種CRC的下行信道平均編碼時間Fig.8 Downlink channel average coding time of three kinds of CRC
從圖8可以看出,在相同的生成矩陣G1下,當生成多項式為gCRC24C(D)=1 1 0 1 1 0 0 1 0 1 0 1 1 0 0 0 1 0 0 0 1 0 1 1 1,下行控制信道極化碼編碼效率最高,用時最短。因此采用gCRC24C(D)。
在碼長N=1 024條件下,通過給定不同的編碼結構,分別進行極化編碼。其上行信道編碼效率如表3所示。
在上行控制信道下的編碼,為避免偶然誤差,所以在兩種編碼結構下,分別運行1 000次。并統(tǒng)計該1 000次運行的平均編碼時間,以及繪制了柱狀圖,如圖9所示。
表3 不同編碼結構時上行信道編碼效率
圖9 兩種編碼結構的上行信道平均編碼時間Fig.9 Uplink channel average coding time of two coding structures
由表4所示的結果分析可知,在上行控制信道,當采用構造比特反轉的極化編碼結構,平均編碼時間為9.896 09 s,效率最低。而采用構造非比特反轉的極化編碼結構,平均編碼時間為3.706 71 s,時間最短,效率最高。在碼長N=512一定條件下,通過給定不同的編碼結構,分別進行極化編碼。其下行信道編碼效率如表4所示。
從表4中可以看出,在相同的生成多項式gCRC24C(D)下,當在非比特反轉生成矩陣的編碼結構
表4 不同編碼結構時下行信道編碼效率
下,下行控制信道極化碼編碼效率最高,用時最短。而在比特反轉的生成矩陣下,用時最長,編碼效率最差。因此在本設計中下行信道采用構造非比特反轉生成矩陣的編碼結構。采用構造非比特反轉的生成矩陣的方式進行極化編碼,對于上行或下行信道,其效率都是最高的。而對于下行信道,采用gCRC24C(D)時編碼效率較好。
通過選擇不同信道,不同生成多項式,分別實現上下行信道各自的編碼方案設計極化碼編碼過程,速率匹配模式、交織方式等。通過選擇不同生成多項式以及CRC效驗分別制定和實現了上下行信道各自編碼的方案,最終在MATLAB仿真平臺上實現對上下行信道編碼界面的仿真。最后通過反復多次的參數設置,對上下行極化碼編碼進行結果分析,得到以下結論。
(1)對于上下行信道來說,在碼元長度一定的情況下,生成多項式采用gCRC24C(D)且非比特反轉生成矩陣的編碼結構下極化編碼效率的最高。
(2)設計采用了基本CRC校驗原理,但采用多種校驗法結合或者使用“design-SNR”可以更有效提高極化碼的構造效率,達到更好的校驗效果。
對二進制對稱信道中進行極化碼編碼仿真,但由于信道極化是信道的普遍現象,在非二進制對稱信道中的尋找一種復雜度低的編碼方式是下一步要研究的方向。