張婭妹,陳 燕?,周 林,2,賀玉成,2
(1.華僑大學 廈門市移動多媒體通信重點實驗室,福建 廈門 361021;2.西安電子科技大學 綜合業務網理論及關鍵技術國家重點實驗室,陜西 西安 710071)
空間耦合LDPC(Spatially Coupled Low-Density Parity-Check,SC-LDPC)碼由Felstrom 和Zigangirov[1]首次提出。 由于它的奇偶校驗矩陣與LDPC卷積碼的奇偶校驗矩陣具有類似的結構,因此也被稱為LDPC 卷積碼。 與LDPC 分組碼[2]一樣,它由稀疏奇偶校驗矩陣定義,用置信傳播(Belief Propagation,BP)算法進行譯碼。 Kudekar 等人的研究證明SC-LDPC 碼具有閾值飽和特性[3-4],其BP 譯碼門限能夠達到對應規則LDPC 碼的最大后驗概率(Maximum a Posterior Probability,MAP)譯碼門限。因此,SC-LDPC 碼是一類逼近香農容量限的糾錯碼。
近年來,SC-LDPC 碼的研究引起了學者們的廣泛關注,所涉及的領域包括碼的構造、譯碼性能分析及改善等。 在SC-LDPC 碼的構造方面,為改善突發刪除對SC-LDPC 碼的性能影響,Inayat 和張邵基等人分別提出了一種新的折疊型結構和一種非對稱空間耦合結構,有效提升了SC-LDPC 碼在突發刪除信道下的性能[5-6]。 隨后,張亞坤等人提出了一種對稱空間耦合結構,避免了SC-LDPC 碼的碼率損失[7]。 譯碼方面,Kudekar 等人證明了SC-LDPC碼在BP 譯碼算法下可以接近信道容量[8]。 此外,SC-LDPC 碼可通過滑窗結構的迭代譯碼來降低譯碼延遲[9-10]。 這正好滿足未來通信低延遲的需求,但將BP 譯碼限制在窗口內會導致譯碼性能損失。因此,SC-LDPC 碼的譯碼算法目前還是BP 譯碼算法性能相對較優。
本文在加性高斯白噪聲信道模型下,研究了SC-LDPC 碼的構造及其經典的BP 譯碼算法,并從其誤碼率圖對SC-LDPC 碼的性能進行了對比分析。
SC-LDPC 碼原模圖的構造過程如圖1 所示[11-12]。 在給定規則LDPC 碼原模圖的基礎上將L 個度分布為(l,r) 的規則LDPC 碼通過邊緣擴展的方法進行耦合就可以得到一個(l,r,L) SC-LDPC碼,其中,l,r 表示列重和行重,L 表示耦合長度。 例如構造一個度分布為(3,6) 的SC-LDPC 碼,首先給定(3,6) 規則LDPC 碼的原模圖,將它復制L 份,并標記上時間標簽t = {1,2,3,...,L} 。 再將這L 個規則LDPC 碼的原模圖通過邊緣擴展進行空間耦合就可得到度分布為(3,6) 的SC-LDPC 碼原模圖,相應地得到一個(3,6,L) SC-LDPC 碼。
如圖1(a)和圖1(b)所示,邊緣擴展就是在時刻t 的規則LDPC 碼原模圖的邊從其變量節點發出連接到時刻{t,t + 1,...,t + w} 的規則LDPC 碼原模圖的校驗節點,其中w 為耦合寬度;w=2 的邊緣擴展過程如圖1(c)所示;將邊緣擴展應用到L 個規則LDPC 碼的原模圖中,得到一個耦合的原模圖如圖1(d)所示。 顯然,在耦合的原模圖中,需要額外的w 個校驗節點來終止邊緣擴展。

圖1 SC-LDPC 碼原模圖的構造過程Fig.1 Construction process of the SC-LDPC protograph
SC-LDPC 碼的原模圖與其奇偶校驗矩陣是一一對應的關系。 其中規則LDPC 碼的原模圖可由基
矩陣B =[B(i,j)]α×β表示,1 ≤i ≤α ,1 ≤j ≤β,B(i,j) 表示連接校驗節點i 和變量節點j 的邊數,α,β 表示所包含的校驗節點和變量節點個數。 例如,(3,6) 規則LDPC 碼的原模圖對應的基矩陣為B = [3 3] 。 由于邊緣擴展,基矩陣B 被分解為同大小的w+1 個分量基矩陣Bx。 基矩陣B 與分量基矩陣Bx的關系為:

由此可知,SC-LDPC 碼可表示為:

基矩陣Bsc= [Bsc(i,j)](L+w)α×Lβ,其中1 ≤i ≤(L +w)α ,1 ≤j ≤Lβ 。 通過擴展因子M 進一步擴展Bsc可獲得SC-LDPC 碼的奇偶校驗矩陣Hsc。 相應地,若Bsc(i,j) = 0,則它將被M × M 全零矩陣替換。 否則,它將被大小為M × M 的單位置換矩陣所代替。 擴展之后,得到的Hsc大小為(L + w)Mα ×LMβ 。 此時SC-LDPC 碼的碼率可以表示為:

與Bsc類似,Hsc呈現出非零項的對角帶結構。該對角帶的最大寬度為Lc= (w + 1)Mβ ,也稱為SC-LDPC 碼的約束長度。
概率域BP 譯碼算法是經典的SC-LDPC 譯碼算法。 它的主要思想是利用原模圖中校驗節點和變量節點間的相互制約關系,在2 種節點間互相交換并更新概率信息,最終達到譯碼的目的。 譯碼過程如下:
首先,變量節點從信道接收信息,將信息經相應的處理后作為變量節點的初始化信息。 變量節點再將信息傳遞到與之相連的校驗節點。 接著執行水平迭代操作,如圖2(a)所示,圓形表示變量節點,正方形表示校驗節點。 要得到校驗節點C1 傳遞到變量節點V1 的信息,校驗節點C1 需要根據相應的校驗方程處理其他與之相連的變量節點(V2,V3)傳遞的信息,得到相對可靠的信息,再傳遞到變量節點V1。當所有的校驗節點完成上述操作后,執行垂直迭代操作,如圖2(b)所示。 類似水平迭代,要得到變量節點V1 傳遞到校驗節點C1 的信息,變量節點V1需要根據某一準則處理與其相連的其他校驗節點(C2,C3)傳遞的信息,得到相對可靠的信息,再傳遞到校驗節點C1。 當所有變量節點和校驗節點完成上述水平迭代和垂直迭代操作后就完成了整個碼字的一次迭代。 每次迭代結束后,變量節點和校驗節點都會更新概率信息。 迭代過程一直持續到碼字滿足譯碼條件或達到最大迭代次數,最后進行判決譯碼。

圖2 迭代過程Fig.2 Iterative process
概率域BP 譯碼的具體流程如下:
假設待發送的碼字序列C = {c1,c2,...,cn} ,其中n 表示碼長,n = LMβ 。 碼字經二進制相移鍵控(Binary Phase Shift Keying,BPSK) 調制后在AWGN 信道下傳輸,高斯白噪聲的均值為0,方差為σ2。Y = {y1,y2,...,yn} 表示接收到的碼字序列。變量節點首先接收來自信道的信息,其信息值經相關變換后作為變量節點的初始化信息Vj,然后進行下面的迭代操作。
(1) 水平迭代
對所有校驗節點計算第l 次迭代時,校驗節點i向與其相連的變量節點j 傳遞的信息:

式中,N(i)j 表示除去第j 個變量節點以外與校驗節點i 相連的剩余變量節點的集合。
(2) 垂直迭代
對所有變量節點計算第l 次迭代時,變量節點j向與其相連的校驗節點i 傳遞的信息:

式中,M(j)i 表示除去第i 個校驗節點以外與變量節點j 相連的剩余校驗節點的集合。
當前迭代結束后,計算出變量節點更新過后的概率信息,再做硬判決。 判決規則為:若變量節點的概率信息≥0,則判為0;否則判為1。 判斷當前碼字的誤碼率是否為零或迭代次數是否達到最大迭代次數,若是則停止迭代,輸出譯碼結果;否則返回(1)繼續迭代。
在SC-LDPC 碼的碼長較長的情況下,采用BP譯碼會導致高延遲。 因此,Iyengar 等人提出了滑窗譯碼[10,13](Window Decoding,WD)算法。 SC-LDPC碼的奇偶校驗矩陣呈現非零項的對角帶結構,可以將BP 譯碼限制在一個窗口內,其窗口大小W 需滿足(w+1)≤W ≤L。 WD 算法的大致原理是:譯碼窗口在接收到整個碼字的一部分之后,通過碼字的部分Tanner 圖[14]開始BP 譯碼,然后沿對角帶滑動,逐個估計碼字符號并產生較低的譯碼延遲。 譯碼窗口內估計的符號集稱為窗口的目標符號。 一旦目標符號經硬判決后的誤碼率為0 或迭代次數達到最大迭代次數,譯碼窗口停止迭代并輸出當前目標符號的譯碼結果;然后譯碼窗口滑向下一位置譯碼下一目標符號,其滑動過程如圖3 所示;最后重復上述過程直到整個碼字譯碼完畢。

圖3 w=2,L=15,W=3 的SC-LDPC 碼的WD(灰色區域是Hsc 的非零項對角帶)Fig.3 WD of an SC-LDPC code with w=2,L=15 and W=3(The gray area indicates the nonzero diagonal band in the Hsc )
WD 算法在保持BP 譯碼優勢的同時降低了譯碼復雜度、譯碼延遲以及對存儲器的要求,但將BP譯碼限制在一個窗口內導致譯碼性能的損失。 因此,Shi yuan Mo,Inayat,Peng Kang 等人分別提出了引入監督[15]、有效的譯碼終止[16]和保留局部可靠消息[17]等方法改善WD 算法的性能。 由此,現有的SC-LDPC 碼的譯碼算法中BP 譯碼算法性能相對較優,在仿真中采用BP 譯碼。
仿真選取(3,6,50) SC-LDPC 碼,其對應的基矩陣B=[3 3] ,耦合寬度w=2。 碼字經過BPSK 調制和AWGN 信道后到達接收端。
在不同最大迭代次數下碼字長度為10 000,20 000 的(3,6,50) SC-LDPC 碼性能如圖4 和圖5所示,對應的擴展因子分別為100,200,同時給出了在BPSK 調制下,碼率為0.5 時的香農限,Niter表示最大迭代次數。 仿真的SC-LDPC 碼的碼率為0.48,其碼率小于0.5,這是由于SC-LDPC 碼在耦合過程中需要添加額外的校驗節點而導致的碼率損失。
由圖4 和圖5 可以看出,約束長度越長或最大迭代次數越大,SC-LDPC 碼的糾錯性能越好。 隨著Lc或迭代次數的增加,校驗節點對變量節點的后驗概率似然比的校驗修正會逐漸增強,得到的譯碼結果就會更加準確,隨之譯碼性能也會更好。 碼長20 000 的SC-LDPC 碼在誤碼率為10-5時,最大迭代次數100 比最大迭代次數10 的性能更加接近香農限,大約有1 dB 的增益。 在同一最大迭代次數下,SC-LDPC 碼的碼長越長,性能距香農限也會越近。 SC-LDPC 碼在最大迭代次數為100、誤碼率為10-5時,碼長20 000 比10 000 大約有0. 68 dB 的增益。

圖5 碼長為20 000 的(3,6)SC-LDPC 碼的譯碼性能Fig.5 Performance of the (3,6)SC-LDPC code with N = 20 000
低時延通信是未來無線通信的一大需求。 SCLDPC 碼在滑窗結構的迭代譯碼下時延小。 因此,SC-LDPC 碼及滑窗譯碼算法是未來6G 通信研究領域中的一類潛在研究熱點。 本文重點介紹了SCLDPC 碼的構造及其BP 譯碼算法,在加性高斯白噪聲信道下對SC-LDPC 碼的性能進行了分析研究。仿真結果表明,碼長10 000 的SC-LDPC 碼在誤碼率為10-5時,最大迭代次數50 比最大迭代次數10大約有0.28 dB 的增益。 最大迭代次數50 的SCLDPC 碼在誤碼率為10-5時,碼長20 000 比碼長10 000 大約有0.7 dB 的增益。