袁建國,孫樂樂,范福卓,袁 夢,劉家齊,鄭德猛
(重慶郵電大學 光電信息感測與傳輸技術重慶市重點實驗室,重慶 400065)
低密度奇偶校驗碼(low-density parity-check, LDPC)碼是一種線性分組碼,它的性能不僅十分逼近香農限,而且它具有譯碼簡單,構造靈活,易于硬件實現等優(yōu)點[1-3]。由于LDPC碼的結構不同,最終得到的編譯碼復雜度和性能也有所不同。針對以上情況, LDPC碼構造方法的研究已經成為目前編碼領域研究的熱點之一。
準循環(huán)低密度奇偶校驗(quasi-cyclic low-density parity-check, QC-LDPC)碼[4-5]是一種新的LDPC碼,它結構簡單,易于硬件實現且編碼效率高[6],因此,在通信領域中,QC-LDPC碼應用十分廣泛。QC-LDPC碼的校驗矩陣H是由基矩陣通過循環(huán)子矩陣擴展而成,校驗矩陣H的編碼性能可由基矩陣和擴展因子P決定,因此,基矩陣的構造尤為重要。
本文利用一種特殊的等差算法得出等差數列,并把此等差數列作為基矩陣中的元素,結合原模圖的擴展方法,最終得到一種新穎的QC-LDPC碼。這種新構造的QC-LDPC碼,通過分析,校驗矩陣在構造時,就避免了四六環(huán)的存在,所以圍長至少為8,且能夠靈活選擇碼長碼率,所構造的碼字具有較好的糾錯性能。
QC-LDPC碼的校驗矩陣H是通過分組矩陣構造而成,而分組矩陣是由循環(huán)置換矩陣(circulant permutation matrix, CPM)和全零矩陣(zero matrix, ZM)組成的。QC-LDPC碼的校驗矩陣H的形式為
(1)
其對應的指數矩陣(基矩陣)E為
(2)
(1)—(2)式中:P為循環(huán)置換矩陣的維數大小;J和L分別代表基矩陣的行數和列數,碼長N=P×L。Ia(i,j)代表P×P維的循環(huán)置換矩陣或者全零矩陣,a(i,j)為移位因子,其中,1≤i≤J,1≤j≤L。a(i,j)取值為{1,2,3,…,P-1}或者-1,a(i,j)=0時表示Ia(i,j)為單位矩陣,a(i,j)=-1時表示a(i,j)為全零矩陣。校驗矩陣中的環(huán)可以利用對應的基矩陣中的移位因子表示,存在以下定理。
定理1[7](a1,a2,…,a2k-1,a2k)是基矩陣E中的序列,其中,ai和ai+1在同一行或者在同一列,而ai和ai+2在不同行且不同列,則(a1,a2,…,a2k-1,a2k)構成長為2k環(huán)的充要條件為
(3)
等差數列是一種常見的數學數列,屬于組合數學范疇。它是指從第二項起,每一項與它前一項的差等于同一個常數的一種數列。本文中所指的等差數列是利用數學分析的思想,構造一種差值不斷變化的特殊的等差數列。
定理2[8]若(2)式中移位因子的公差由(4)式計算決定,則由此定義的QC-LDPC碼圍長至少為8。
(4)
(4)式中:d表示第一行的差值;k取整數;D3k,j表示第3k行元素差d3k+1,j(1≤j≤L-1)的總和,L為基矩陣中的行數。由定理2可知,應用定理2所構造的QC-LDPC碼基矩陣沒有四、六環(huán),圍長至少為8。
原模圖具有低譯碼門限,高速譯碼等優(yōu)點[9],它本質上就是一種Tanner圖,只是Tanner圖的節(jié)點數相對較少[10]。原模圖中允許有重邊,所以原模圖可分為2類,即完全連接的原模圖(無重邊)和有重邊的原模圖,舉例說明完全連接的原模圖和有重邊的原模圖,如圖1。
圖1 完全連接的原模圖Fig.1 Protograph with the complete connection
圖1對應的原模圖基矩陣B1為
(5)
這里幾重邊就代表該校驗節(jié)點(變量節(jié)點)與該變量節(jié)點(校驗節(jié)點)之間有幾條平行的邊相連接,圖2中同樣包含4個變量節(jié)點和3個校驗節(jié)點,對應的邊的總數為13。
圖2 有重邊的原模圖Fig.2 Protograph with parallel edges
圖2對應的原模圖基矩陣B2為
(6)
上述2種原模圖只有第1種完全連接的原模圖可以直接作為基礎矩陣并對其進行擴展;第2個原模圖必須進行處理后方可用于擴展,本文將使用第1種原模圖結合構造的等差數列,對形成的基矩陣進行擴展。
對于(2)式中的基矩陣E,通過設定不同的J,L和擴展因子P,可以得到不同碼長碼率的校驗矩陣H。在這里設J=4,L=9,即生成一個4行9列的基矩陣。假設定理2中(4)式每行的第一項為0且d=1,通過(4)式計算得出基矩陣E1,為了生成碼率為0.5的校驗矩陣,這里需要刪除任意一列,得到一個4行8列的基矩陣E2,此時選擇刪除的是第1列,E2為
(7)
本文用于結合等差數列構造基矩陣的原模圖Bbase,是通過計算機搜索得到的,以下是搜索算法的簡要過程。
首先,構造一個nrow×ncolumn的矩陣A[11]。
然后,利用定理1中的環(huán)存在公式,以及文獻[12]中所定義的譯碼門限,結合上一步得到的矩陣A進行搜索,相關的簡要搜索流程如下。
第1步:設定算法的輸入系數為k,A,A*,B*(一個全1矩陣),C(一個全零矩陣),搜索算法的輸出為矩陣B。
第2步:把B*復制給B,令A*=A?B,同時取k=2。
第3步:通過環(huán)存在定理,循環(huán)判斷A*中是否存在環(huán)長為2k的環(huán),如果存在則將矩陣C中對應位置元素值加1。
第4步:如果C中有唯一最大值,則將B中對應位置的1置為0。否則令k=k+1,執(zhí)行第2步。
第5步:此時,如果B矩陣的譯碼門限小于矩陣B*的譯碼門限,則輸出矩陣B(此時,B為最終所得原模圖基矩陣Bbase),否則,把B復制給B*,重新執(zhí)行第2步。
使用上述搜索算法,可以得到一個原模圖基矩陣Bbase,其中,nrow=4,ncolumn=8,搜索得到的基矩陣Bbase如式(8)所示。
(8)
利用基矩陣E2和基矩陣Bbase,使2個矩陣中相同位置處對應的數值進行相乘,可以得到最終的基矩陣Epro=Bbase?E2,如(9)式。
(9)
通過P×P大小的循環(huán)置換矩陣對(9)式進行擴展,將Epro中的元素“0”替換成P×P大小零矩陣,非零元素“ai,j”替換成循環(huán)右移位ai,j次得到的循環(huán)置換矩陣,從而得到最終的校驗矩陣H,它的維數為4P×8P(P不小于矩陣Epro中的最大移位值)??梢园袳pro當做是E2被Bbase修飾后得到的矩陣,來分析Epro的圍長為8的問題。此時,Bbase為修飾矩陣,E2為原來矩陣,修飾過的矩陣Epro是循環(huán)置換矩陣和0矩陣的陣列。因為由上文分析已知原來矩陣E2滿足圍長為8的條件,所以修飾過的矩陣Epro也滿足圍長為8的條件,而不管修飾矩陣Bbase如何,因此,矩陣Epro的圍長至少也為8。
綜上可知,等差數列構成的基矩陣E2本身具有大圍長的性質,原模圖具有低譯碼門限,高速譯碼的優(yōu)點,但是對于原始的原模圖本身而言,往往存在圍長不夠大對性能產生影響。結合等差數列和原模圖得到的基矩陣Epro繼承兩者優(yōu)點的同時,也彌補了彼此相應的不足,并在下文仿真圖中得到證實。
本文擴展的維數選取P=500,由于基矩陣對應的碼率是0.5,所以擴展后的碼率仍然為0.5,最終得到的校驗矩陣H的碼長為4 000。已知迭代譯碼次數n對碼型的糾錯性能有一定的影響,首先根據不同的迭代次數影響糾錯性能的仿真對比圖,如圖3,選擇合適的迭代次數n。圖3中,當誤碼率為10-6時,本文基于等差數列和原模圖(arithmetic progression and protograph, APP)所構造的APP-QC-LDPC(4 000,2 000)碼糾錯性能,在一定范圍內隨迭代次數n的增加而提高,當n取值為40~60時,相對應的仿真曲線幾乎重合在了一起,糾錯性能并沒有顯著改善。因此,考慮到在迭代次數增加的同時,譯碼復雜度會增加的問題,本文后續(xù)在對QC-LDPC碼進行仿真時迭代次數均選擇為40,使其在糾錯性能和復雜度之間找到平衡。
圖3 不同迭代次數的仿真對比圖Fig.3 Simulation comparison graph of different iterations
為了驗證新構造的碼字具有較好的糾錯性能,本文選用了基于漸進邊增長(progressive edge growth, PEG)算法構造的PEG-QC-LDPC(4 000,2 000)碼、上文(7)式中基于等差數列(arithmetic progression, AP)構造的AP-QC-LDPC(4 000,2 000)、參考文獻[13]中利用修飾(masking,M)技術構造的M-QC-LDPC(4 000,2 000)碼和參考文獻[14]中基于最大公約數(greatest common divisor, GCD)構造的GCD-QC-LDPC(4 000,2 000)碼與本文所構造的APP-QC-LDPC(4 000,2 000)碼進行仿真對比。具體的仿真環(huán)境如下:選取高斯白噪聲信道(additive white gaussian noise, AWGN)作為仿真信道,使用二進制相移鍵控(binary phase shift keying, BPSK)進行調制,采用置信傳播(belief propagation,BP)算法進行譯碼,仿真圖對比結果如圖4。
圖4 仿真對比圖Fig.4 Simulation comparison graph
由圖4可知,在BER=10-6時,本文基于等差數列與原模圖構造碼率為0.5的APP-QC-LDPC(4 000,2 000)碼相較于基于漸進邊增長算法構造的PEG-QC-LDPC(4 000,2 000)碼,在同等條件下,凈編碼增益達到了約0.46 dB;相較于基于等差數列構造的AP-QC-LDPC(4 000,2 000)碼,在圍長相等的條件下,性能提高了約0.55 dB。同樣,在BER為10-6時,基于等差數列與原模圖構造的APP-QC-LDPC(4 000,2 000)碼與文獻[13]中利用修飾技術構造的M-QC-LDPC(4 000,2 000)碼和文獻[14]中基于最大公約數構造的GCD-QC-LDPC(4 000,2 000)碼相比,凈編碼增益分別約為0.9 dB和1.06 dB。從構造方法的復雜度來看,可從2個方面對其進行分析:①編碼所需存儲的參數,編碼過程中用到的參數越少越好;②運算復雜度,一般指運算量和碼長的變化關系,即隨著碼長的變化,運算的次數相對應的越少越好。本文所構造的碼型只需要存儲幾個初始值,存儲量小,通過等差公式,便可以獲得整個基矩陣,另外構造原模圖節(jié)點較少,所需參數偏少。雖然與使用相同的等差數列構造的AP-QC-LDPC碼型相比所需的參數略多,但與另外3種PEG-QC-LDPC碼、M-QC-LDPC碼和GCD-QC-LDPC碼相比,所需存儲的參數明顯較少。另一方面,本文的構造方法,雖然增加了原模圖搜索機制,但是搜索節(jié)點較少,對編碼的運算復雜度影響不大。整體來說,本文構造方法的編碼復雜度較小,同時因為原模圖的引入,使本文構造的碼型具備了原模圖的低譯碼門限等優(yōu)點。綜上所述,本文構造方法所構造的碼型編譯碼簡單,且具有較好的糾錯性能。
本文針對QC-LDPC碼循環(huán)置換矩陣的移位次數確定問題,提出了一種基于等差數列和原模圖構造QC-LDPC碼的新方法。通過該方法最終得到的QC-LDPC碼不僅可靈活變換碼長碼率,而且圍長至少為8。仿真結果表明,本文所提出的構造方法構造的APP-QC-LDPC碼優(yōu)于傳統(tǒng)經典PEG算法構造的PEG-QC-LDPC碼,優(yōu)于使用等差數列算法構造的AP-QC-LDPC碼,也同樣優(yōu)于利用掩模技術構造的M-QC-LDPC碼和基于最大公約數構造的GCD-QC-LDPC碼,具有較好的糾錯性能。