陳遠友
(中國電子科技集團公司第五十四研究所,河北石家莊050081)
LDPC碼是Gallager在1962年提出的利用稀疏校驗矩陣的信道編碼方案[1],是一種可以接近Shannon限的“非常好”的分組碼[2],為了追求優異的性能,采用隨機化方法構造的校驗矩陣[1-3]使得編碼器的設計十分困難,譯碼器的存儲復雜度也高,實現困難。為了構造易于實現、性能優良的編碼方法,人們提出了很多改進方法[4-11],針對具體應用的文獻也很多[12-15]。
一般來說,碼字長度越長,LDPC的編碼性能越好,因此,通常設計的LDPC的碼字都較長,達到數千位。但在某些應用場合,如在短猝發隱蔽通信中,由于通信時間非常短,數據量較少,不可能采用碼字較長的編碼方案,必須設計針對這種特殊應用場合的短碼。
準循環LDPC(quasi-cyclic LDPC)碼是一種可以使用簡單移位寄存器實現的結構化LDPC碼,精心設計的準循環LDPC碼在比特差錯率、塊差錯率以及差錯平底等方面可以達到計算機隨機構造碼的性能。
在給定長度和度分布對的情況下,通過隨機連接二分圖的變量節點和校驗節點,就可以得到一個隨機LDPC碼集。由于LDPC碼主要采用置信度傳播(BP)迭代譯碼算法,在無短環情況下才能獲得最佳性能。就長碼而言,碼集平均性能隨碼長增加,碼集中的單個碼性能趨近于平均性能。而對于短碼,因為碼長有限,二分圖中的短環明顯增多,特別容易出現四環,導致有限次迭代之后軟信息出現相關,算法無法收斂或收斂速度減慢,造成性能下降。為此需要通過調整校驗矩陣中環的分布情況,避免出現四和六環,增大短環的圍長[9],從而構造性能較好的LDPC碼字。
PEG(Progressive Edge-Growth)[4]是隨機構造LDPC碼的一種相對簡單但有效的算法,它按某種規則逐步向Tanner圖添加連接變量節點和校驗節點的邊,選擇合適的規則使Tanner圖中的環最大。仿真顯示使用PEG算法構造的短碼長LDPC碼比隨機構造的碼字有很大的性能提升[5]。
PEG算法通過展開Tanner圖,按照逐節點的方式在校驗節點和變量節點之間建立邊的連接,在增加新邊時盡可能減少對已有Tanner圖圍長的影響,充分考慮使Tanner圖的圍長達到最大以避免短環的存在,最終獲得性能較好的LDPC碼。
對給定的雙向圖參數,包括變量節點數N、校驗節點數M、變量節點度序列Dv,常規PEG算法如下[4]:
令第i個變量節點為vi,第j個校驗節點為cj;
對于第i個變量節點:i=0到 N-1;
增加第i個變量節點的第k條邊:k=0到dvi-1;
其中,dvi表示第i個變量節點vi的度數。
如果 k=0,則邊(vi,cj)→,其中是變量節點vi的第一條入射邊,cj是在當前圖集合Ev0∪Ev1∪…∪Evi-1中具有最低度數的校驗節點之一。
否則,在當前圖集合的基礎上,將變量節點vi展開成深度為l的子圖,直到集合的元素數目達到 M,或
然后,(vi,cj)→,其中是變量節點vi第k條入射的邊,cj是集合中具有最低度數的校驗節點。
第3步:對任意的若滿足RSθ,η(Reduct{a},D)?RSθ,η(A,D),則轉下一步;若中不存在a使得RSθ,η(Reduct{a},D)?RSθ,η(A,D),則算法結束,返回Reduct;
常規PEG算法需要對每一個變量節點都展開成樹圖結構,以逐點的次序添加邊,這樣不但耗費時間和內存資源,而且構造的矩陣也沒有規律,給編譯碼的硬件實現帶來困難。改進的QC-PEG-LDPC算法構造的準循環校驗矩陣是由多個循環子矩陣構成,在構造時首先把變量節點和校驗節點分成多個小組,然后對于每組變量節點,只需對其中第一個變量節點尋找最優邊,最后根據循環矩陣的約束關系,同組其他節點相連的邊也隨之確定。
下面以構造一個碼長為700,碼率為3/7的準循環LDPC碼字為例說明改進的PEG算法。
該準循環矩陣用HM×N表示,每個子矩陣用Ark表示,該校驗矩陣的子矩陣維數為100×100,有28個循環子矩陣,M=b×c=100×4,N=b×t=100×7,0≤r<c,0≤k<t。矩陣的行重和列重分別為dc=5和dv=3,即校驗節點的度為5,變量節點的度為3。
文獻[9]專門研究了設計準循環LDPC碼時如何避免短環問題與校驗矩陣的行相關問題,提出了避免短環的準循環LDPC碼的設計約束條件。
已證明構造的校驗矩陣H所對應的LDPC碼不包含長度為4的環的必要條件為[6]:

因此為了避免4環的出現,需要遍歷準循環矩陣HM×N中的元素,對不滿足條件的元素進行修正處理,使修正后的擴展矩陣中所有元素的值都小于LDPC碼的擴展因子z。
為了定量分析所設計的短碼性能,以 LDPC(700,300)為例對其進行了性能仿真,并在通用調制解調器硬件平臺上進行了性能測試。
仿真條件:
譯碼方式:修正最小和譯碼算法;迭代次數:50次;
信道條件:高斯白噪聲,編碼環。
如圖1所示,仿真結果顯示,基于QC-PEG-LDPC算法構造的準循環LDPC碼性能優良,在歸一化最小和譯碼算法下,Eb/N0值為 2.9 dB,BER≤10-5。且因為其具有準循環結構,譯碼器結構簡單,便于硬件實現。

圖1 LDPC(700,300)編碼環仿真誤碼曲線
測試條件:
信息幀長:300 bit;
LDPC(700,300):碼率 3/7;
猝發調制方式:BPSK+擴頻;
譯碼方式:修正最小和譯碼算法;
迭代次數:50次;
信道條件:高斯白噪聲,中頻環。
硬件資源需求情況如下:
邏輯單元:10 280;
寄存器:16 224;
存儲器:1 693 234;
乘法器:71。
占用資源較少,具有很好的可實現性。
測試結果如圖2所示,由此可見,Eb/N0值為4.3 dB,BER≤10-5。

圖2 LDPC(700,300)中頻環測試誤碼曲線
針對短猝發隱蔽通信的通信時間非常短、數據量較少但對數據傳輸可靠性要求又很高的需求,提出了采用改進的PEG方法構建準循環LDPC短碼的方法,計算機仿真和電路性能測試表明,構造的短碼具有優良的性能,并且其電路實現復雜度較低,占用硬件資源較少,譯碼延時較小,便于工程實現。
[1]GALLAGER R G.Low Density Parity Check Codes[J].IRETrans.Inf.Theory,1962,8(1):21 - 28.
[2]MACKAY D J C.Good Error-correcting Codes Based on Very Sparse Matrices[J].IEEE Trans.Inf.Theory,1999,45(2):399 -431.
[3]PRABHAKAR A,NARAYANAN K.Pseudorandom Construction of Low-density Parity-check Codes Using Linear Congruential sequences[J].IEEE Trans.on Commun.,2002,50(9):1389 -1396.
[4]HU X Y,ELEFTHERIOU E,ARNOLD D M.Progressive Edge Growth Tanner Graphs[C]∥San Antonio,TX:GLOBECOM.01.IEEE,2001:995 -1001.
[5]HU X Y,ELEFTHERIOU E,ARNOLD D M.Regular and Irregular Progressive Edge-growth Tanner Graphs[J].IEEE Trans.Inf.Theory,2005,51(1):386 -398.
[6]傅婷婷,吳湛擊,王文博.基于PEG算法的準循環LDPC碼的編碼構造方法[J].數據采集與處理,2009(B10):182 -186.
[7]敬龍江.低密度校驗碼的構造和設計研究[D].成都:電子科技大學,2007:25 -85.
[8]焦治克.刪除信道下的LDPC碼與PEG算法研究[D].西安:西安電子科技大學,2008:37 -59.
[9]肖揚,徐丹.準循環LDPC好碼設計[J].系統工程與電子技術,2009,31(5):1011 -1017.
[10]范俊,肖揚.可快速編碼的準循環LDPC碼設計[J].應用科學學報,2010,28(1):1 -8.
[11]王啟瑋,戰興群,嚴凱.LDPC碼的編譯碼設計與研究[J].計算機測量與控制,2013,21(3):728 -731.
[12]李志勇,李文鐸.一種高速LDPC編譯碼器的設計與實現[J].無線電工程,2009,39(7):17 -19.
[13]劉波,李旭東.LDPC碼在深空探測中的應用[J].無線電工程,2009,39(10):13 -15.
[14]魏瑞剛,陳暉,邱金蕙,等.高速數據傳輸中的LDPC碼譯碼算法研究[J].無線電工程,2011,41(3):20 -22.
[15]趙建功,劉香玲.準循環LDPC碼的部分并行譯碼算法[J].無線電工程,2012,42(2):55 -57.