郭孔靖,王千帆,馬 嘯
(中山大學 計算機學院,廣東 廣州 510006)
低密度奇偶校驗(Low-Density Parity-Check,LDPC)碼由GALLAGER在20世紀60年代提出[1],可逼近加性高斯白噪聲(Additive White Gaussian Noise,AWGN)信道容量。由于具有譯碼性能優良和高吞吐量的特點,LDPC碼已被采納為5G增強型移動寬帶(enhanced Mobile BroadBand,eMBB)場景中數據信道的編碼方案[2]。顯然,對于LDPC編碼系統,不同時隙之間碼字的傳輸相互獨立,譯碼時延取決于碼字長度。在文件下載等時延不敏感應用中,希望在允許適當增加譯碼延遲并保持相似編碼器/譯碼器結構的情況下,提高現有LDPC碼的性能。這可以通過采用分組馬爾可夫疊加傳輸 (Block Markov Superposition Transmission,BMST)方案實現[3]。BMST是一種由短碼構造長碼的編碼方案,其編碼簡單易實現,譯碼采用滑窗迭代譯碼算法,性能可以通過下界進行預測,且構造普適,碼率靈活。以往的BMST系統采用重復碼、奇偶校驗碼、卷積碼等作為基本碼[4-5],由于這些基本碼性能較弱,為了得到更好的譯碼性能,通常需要增加記憶長度,由此帶來更高的譯碼時延。基于部分疊加的BMST-LDPC構造能夠提升一定的基本碼性能[6],但其增益仍然有提高的空間。采用類似卷積的結構構造LDPC碼的方法還有空間耦合LDPC(Spatially-Coupled LDPC,SC-LDPC)碼[7],采用迭代譯碼算法[8],并在突發刪除信道和快衰落信道等方面具有良好性能。近年來為降低其譯碼復雜度,提升其性能,也有相關的研究[9-10]。
在5G的物理層協議中,每個待傳輸的傳輸塊(Transport Block,TB)被分割為多個碼塊(Code Block,CB),對每個碼塊分別添加循環冗余校驗(Cyclic Redundancy Check,CRC)后,再進行LDPC編碼。CRC校驗的漏檢性能與其校驗位長有關,如果校驗位長為J,則CRC漏檢率約為2-J[11]。對每個CB采用合適長度的CRC,并結合LDPC碼自身的校驗,在接收端可以實現對譯碼結果是否正確的可靠判斷。因此,利用該性質,可以設計提前終止譯碼的準則,進一步降低譯碼復雜度,從而提高譯碼速度。
在5G的新空口(New Radio,NR)系統中,將媒體介入控制層(Media Access Control,MAC)一個單位時間傳輸的數據塊稱為TB,在物理層為TB添加CRC后,將其分割為多段CB,同時也為每一段CB添加CRC校驗。最后由LDPC編碼器將每一段CB連同其CRC編碼為NR LDPC碼字,并傳入數據信道。TB與CB的關系如圖1所示。

圖1 5G協議中分割TB與添加CRC過程示意圖

圖2 5G LDPC碼BG2散點圖
NR中的LDPC碼是一類速率兼容的準循環(Quasi-Cyclic,QC)LDPC碼。其校驗矩陣采用了基于基模圖的實現方式,并且可以在校驗矩陣上直接進行編碼。3GPP標準化組織采納了兩種基模圖,BG1和BG2,以適應不同長度和碼率的LDPC碼[12]。BG2的散點圖如圖2所示,其具有類Raptor碼的結構,其中核矩陣A對應一個高碼率LDPC碼,而矩陣P、全零矩陣O和單位陣I則對應拓展的校驗位比特。類Raptor的LDPC碼由于其結構特性,在多碼率場景中具有顯著的優勢[13]。將基模圖經過散列等操作后生成NR LDPC碼的校驗矩陣,圖2中每一個黑色散點則對應一個Z×Z的循環置換矩陣。
LDPC碼通常采用軟判決和硬判決的迭代譯碼算法,包括基于因子圖的和積算法(Sum-Product Algorithm,SPA)[14]及其簡化版本,如最小和算法(Min-Sum Algorithm,MSA)等[15],可以在有環圖上達到次優的性能。根據仿真,在AWGN信道下,SPA的譯碼性能平均要優于MSA,在低碼率下性能差距還可以達到0.5 dB[16]。但是SPA的譯碼復雜度更高,且對信噪比敏感,實際應用中通常更多采用MSA及其改進版本。上述譯碼算法可以全并行迭代,這樣的做法,譯碼速度較快,但空間復雜度也較高,對于碼長更長的LDPC碼而言,其硬件實現較復雜。為了在譯碼速度和復雜度之間取得折中,人們還提出了分層譯碼算法,將一個較長的LDPC碼的校驗矩陣分為多個子矩陣,依次對每個子矩陣進行并行譯碼,進而達到全局譯碼的效果。
考慮有L組長度均為kM的TBu=(u(0),u(1),…,u(L-1))待傳輸。編碼過程如圖3所示,在t=0,1,…,L-1時刻,按照以下步驟進行編碼:
(1) 將TBu(t)分割為B組長度均為k的CB后,給每段分別添加CRC校驗,并經過LDPC編碼為子碼字,合并得到長度為nB的TB碼字序列u(t);
(2) 將u(t-1)經過行列交織器Π交織后得到序列w(t-1),與v(t)疊加后,得到t時刻的發送碼字c(t)。

圖3 BMST-5G-LDPC編碼過程

(1) 初始化:對于t=0,1,2,…,d-1,收到接收向量y(t)后,將其初始化至正規圖的第t層;

(2.1) 初始化迭代次數計數器I=0;




圖4 BMST方案譯碼正規圖(L=5,d=1)
在譯碼方案的步驟(2.3)中,借助CRC校驗和LDPC校驗,可以按照以下操作,提前終止對部分子序列的譯碼。

為說明方案的有效性,對方案在AWGN信道下進行了蒙特卡洛仿真實驗。圖5采用了 [528,264],[1 056,528] 和[2 112,1 056] 的5G LDPC碼作為基本碼,并根據5G協議為每個CB添加了生成多項式為D24+D22+D6+D5+D+1的24比特CRC。仿真的信噪比采用信號與噪聲的平均功率比,BMST滑窗迭代譯碼的最大迭代次數Imax=55,基本碼譯碼采用SPA算法,最大迭代次數設為30次。作為對比,對5G LDPC碼單獨譯碼時的最大迭代次數設為50次。同時,實驗還對每層碼長相同,但基本碼的碼長和數量不同的方案進行了比較,方案分別采用每層B=23個[528,264]5G LDPC碼,每層B=16個[1 056,528]5G LDPC碼和每層B=8個[2 112,1 056]5G LDPC碼。由于為每個CB分配了CRC校驗位,結合方案截斷長度L=1 000,計算相應碼率分別為0.454,0.477和0.488。
圖5的曲線顯示,BMST-5G-LDPC方案在較低SNR上,誤碼率(誤比特率BER、誤幀率FER)高于對應的5G LDPC碼;隨著SNR的升高,方案則體現出明顯增益,說明BMST為5G LDPC碼的性能帶來了進一步的提升。

圖5 采用不同5G LDPC碼作為基本碼的方案譯碼性能
同時,在每層總碼長相同的條件下,采用的基本碼碼長越長,平層越低。圖6對比了不同譯碼時延條件下的性能表現,可以看到,提高時延能進一步降低錯誤平層,但增益不明顯。對比5G LDPC碼,可以注意到BMST-5G-LDPC方案的曲線存在較明顯的錯誤平層,推測這是由于在譯碼過程中,仍存在一定程度的錯誤傳播。

圖6 采用不同譯碼時延的方案譯碼性能
圖7比較了BMST-5G-LDPC方案和5G-LDPC方案的譯碼復雜度。根據算法實現,他們的譯碼復雜度均為O((dvk+dcn)I),其中dv,dc為LDPC碼等號節點和校驗節點的度數,I為基本碼譯碼迭代的次數,根據不同的終止條件,有不同的值。由于譯碼算法在執行的過程中,復雜度主要取決于基本碼的迭代譯碼,因此主要比較不同方案下每個碼字譯碼時的平均迭代次數Iavg。在低SNR區域,即BMST-5G-LDPC方案的瀑布區之前,其每個碼字譯碼的平均迭代次數均比單獨譯碼高,而在高SNR區域,兩者的平均迭代次數相當。

圖7 譯碼平均迭代次數對比
筆者提出了一種面向5G LDPC碼的分組馬爾可夫疊加傳輸方案,進一步提升了5G LDPC碼的譯碼性能。對比傳統的BMST方案,文中的BMST-5G-LDPC方案具有獨特的優勢,能夠以較小的編碼記憶,較低的譯碼時延和簡單的交織器為基本碼帶來性能增益。所提方案利用了5G協議中的CRC,除了可以在接收端較可靠地判斷譯碼結果以外,還提出了一種提前終止譯碼準則,能夠有效降低復雜度。仿真結果顯示,以[528,264] 的5G LDPC碼作為基本碼,所提方案在BER=10-6下能有約1.2 dB的增益,且在高SNR區域,復雜度與基本碼相當。