趙 明, 劉志鵬, 趙 嶺
(1. 中國(guó)電子科技集團(tuán)公司 電子科學(xué)研究院, 北京 100041; 2. 北京航空航天大學(xué) 電子信息工程學(xué)院, 北京 100191)
低密度奇偶校驗(yàn)卷積(LDPC-C: Low Density Parity-Check Convolutional)碼是定義在稀疏奇偶校驗(yàn)矩陣上的一類卷積碼[1-2], 其可對(duì)任意長(zhǎng)度的數(shù)據(jù)進(jìn)行連續(xù)編碼和譯碼, 因此可以很好地應(yīng)用于可變幀長(zhǎng)的通信(如無(wú)線局域網(wǎng))或連續(xù)模式的通信(如視頻通信、 中繼衛(wèi)星高速數(shù)傳)系統(tǒng)中[3]。LDPC-C碼具有接近香農(nóng)(Shannon)極限的譯碼性能和較低的編碼復(fù)雜度[1-2,4]。其中準(zhǔn)循環(huán)低密度奇偶校驗(yàn)卷積(QC-LDPC-C: Quasi-Cyclic LDPC-C)碼對(duì)應(yīng)的半無(wú)窮校驗(yàn)矩陣由一組循環(huán)移位矩陣(CPMs: Circulant Permutation Matrices)構(gòu)成, 從而易于高效編碼和譯碼, 且便于硬件實(shí)現(xiàn)[5-6]。
目前, 構(gòu)造LDPC-C碼需通過(guò)對(duì)LDPC分組碼進(jìn)行校驗(yàn)矩陣拆解。文獻(xiàn)[1]提出基于LDPC分組碼的校驗(yàn)矩陣并利用剪切、交換和重復(fù)的方法構(gòu)造LDPC-C碼。利用QC-LDPC分組碼的循環(huán)移位子矩陣構(gòu)造LDPC-C碼對(duì)應(yīng)的校驗(yàn)矩陣[5], 可簡(jiǎn)化矩陣構(gòu)造的復(fù)雜度。文獻(xiàn)[7]提出在LDPC-C碼的構(gòu)造中, 采用LDPC分組碼的漸進(jìn)邊增長(zhǎng)(PEG: Progressive Edge-Growth)構(gòu)造方法。文獻(xiàn)[8]提出利用LDPC碼, 并采用基于圖覆蓋的方法構(gòu)造LDPC-C碼, 所構(gòu)造的LDPC-C碼性能優(yōu)于相應(yīng)的LDPC分組碼, 同時(shí)分析了其中的卷積增益。文獻(xiàn)[9]提出利用有限域的乘群, 并采用相關(guān)的修正方法獲得可實(shí)現(xiàn)快速編碼的LDPC-C碼。此外, 還有其他構(gòu)造LDPC-C碼對(duì)應(yīng)校驗(yàn)矩陣的方法[10-12]。
LDPC-C譯碼算法利用基于校驗(yàn)矩陣行的置信度傳播(BP: Belief Propagation)迭代計(jì)算完成, 因此LDPC-C碼, 特別是QC-LDPC-C碼對(duì)應(yīng)校驗(yàn)矩陣需考慮短環(huán)問(wèn)題[13-14]。雖然LDPC-C碼可利用對(duì)應(yīng)的LDPC分組碼進(jìn)行構(gòu)造, 但需對(duì)LDPC分組碼對(duì)應(yīng)的校驗(yàn)矩陣進(jìn)行剪切、 交換和復(fù)制等操作, 而此時(shí)會(huì)改變矩陣的結(jié)構(gòu), 特別當(dāng)LDPC-C碼的碼長(zhǎng)、 記憶長(zhǎng)度和周期為隨機(jī)的正整數(shù)時(shí), 無(wú)法確保得到的LDPC-C碼對(duì)應(yīng)校驗(yàn)矩陣不存在4環(huán)。并且, 若不考慮LDPC-C碼對(duì)應(yīng)校驗(yàn)矩陣的結(jié)構(gòu)特點(diǎn), 直接構(gòu)造校驗(yàn)矩陣, 將會(huì)使構(gòu)造算法的計(jì)算復(fù)雜度呈指數(shù)增長(zhǎng)[15-22]。
為獲得較好的譯碼性能, 盡可能提高所構(gòu)造碼的圍長(zhǎng)(girth)并避免短環(huán), 特別是4環(huán)的存在, 筆者提出基于子矩陣偏移量周期性填充的QC-LDPC-C碼構(gòu)造方法。同時(shí), 考慮到可實(shí)現(xiàn)快速編碼, 在QC-LDPC-C碼對(duì)應(yīng)校驗(yàn)矩陣的構(gòu)造中, 令每個(gè)校驗(yàn)行塊中最右端子矩陣的校驗(yàn)部分子矩陣滿足行和列的非負(fù)值個(gè)數(shù)均為1。所提構(gòu)造方法基于QC-LDPC-C碼對(duì)應(yīng)的基矩陣構(gòu)造, 利用基矩陣的周期性, 首先填充確定的校驗(yàn)行塊中校驗(yàn)部分子矩陣的位置;而后利用基于子矩陣偏移量周期性擴(kuò)展填充的方法, 周期性擴(kuò)展所填充的對(duì)應(yīng)位置, 并在周期性擴(kuò)展每個(gè)對(duì)應(yīng)位置時(shí), 使由周期性確定的位置與即將填充的位置構(gòu)成的矩陣可滿足無(wú)4環(huán)的擴(kuò)展矩陣結(jié)構(gòu)。因此, 所構(gòu)造的由基矩陣擴(kuò)展的校驗(yàn)矩陣不存在4環(huán), 即校驗(yàn)矩陣的圍長(zhǎng)至少為6。利用所提方法構(gòu)造的QC-LDPC-C碼可實(shí)現(xiàn)快速編碼, 降低編碼復(fù)雜度, 同時(shí)可獲得較好的譯碼性能。
為降低譯碼設(shè)計(jì)實(shí)現(xiàn)的復(fù)雜度, 所構(gòu)造的QC-LDPC-C碼對(duì)應(yīng)的校驗(yàn)矩陣H由基矩陣Hb擴(kuò)展得到, 其中子矩陣擴(kuò)展因子為b。對(duì)于碼率為R=k0/n0的(n0b0,k0b0,M)QC-LDPC-C碼, 其基矩陣
(1)
其中Bi(t)(i=0,1,…,M,t∈)是mb×nb=(m0b0/b)×(n0b0/b)階矩陣。Hb中元素的取值范圍為{-1,0,1,…,b-1}, 若元素為-1, 則擴(kuò)展得到的子矩陣即為全零矩陣; 若元素為其他值, 則擴(kuò)展為循環(huán)移位單位矩陣(CPIM: Circulant Permutation Identity Matrix), 元素值即為子矩陣的循環(huán)移位偏移量。
k0,n0的最大公約數(shù)是1, 且任意Bi(t)(i=0,1,…,M,t∈)是m0b0×n0b0=(n0-k0)b0×n0b0階二元矩陣。其中M為碼組的記憶塊長(zhǎng)度, 而ns=(M+1)n0b0為碼的約束長(zhǎng)度。若式(1)滿足Bi(t+T)=Bi(t)(i=0,1,…,M,t∈), 則該碼為周期性時(shí)變QC-LDPC-C碼; 當(dāng)T=1時(shí), 該碼為時(shí)不變QC-LDPC-C碼。
為簡(jiǎn)化校驗(yàn)矩陣設(shè)計(jì)的復(fù)雜度, 同時(shí)考慮到校驗(yàn)矩陣的行重和列重分布, 在校驗(yàn)矩陣的構(gòu)造中不能直接利用b0進(jìn)行矩陣框架的構(gòu)造, 否則可能無(wú)法滿足所設(shè)計(jì)的行重和列重。因此, 提出利用子矩陣擴(kuò)展因子b構(gòu)造校驗(yàn)矩陣, 其中b0是b的整數(shù)倍。
為利用迭代計(jì)算的方式實(shí)現(xiàn)快速編碼, 需對(duì)QC-LDPC-C碼對(duì)應(yīng)基矩陣Hb的每行進(jìn)行設(shè)計(jì)。這里要求Hb中B0(t)(t∈)的校驗(yàn)部分子矩陣滿足行和列的非負(fù)數(shù)個(gè)數(shù)均為1(見(jiàn)圖1)。
圖1 B0(t)(t∈)的校驗(yàn)部分子矩陣的行和列非負(fù)數(shù)個(gè)數(shù)分布Fig.1 The numbers of non-negative values in each row and column of parity-check portion in B0(t)(t∈)
由圖1可知,B0(t)(t∈)的校驗(yàn)部分子矩陣中各行非負(fù)值的位置集合是其所有可能行位置的排列組合, 即所有行不存在重復(fù)的非負(fù)值行位置。
同時(shí), 為實(shí)現(xiàn)正確的基于迭代計(jì)算的快速編碼, 需基矩陣Hb的每行中非負(fù)數(shù)的個(gè)數(shù)至少為2, 即要求每行除B0(t)(t∈)對(duì)應(yīng)的校驗(yàn)部分外, 其余位置的非負(fù)數(shù)的個(gè)數(shù)至少為1。
2.2.1 無(wú)4環(huán)的擴(kuò)展矩陣結(jié)構(gòu)
圖2所示的基校驗(yàn)矩陣中存在4環(huán), 其中Mi(1≤i≤4)為H中的非零子矩陣。此時(shí)若要求擴(kuò)展后的矩陣不存在4環(huán), 則
mod(q(M1)-q(M2),b)≠mod(q(M3)-q(M4),b)
(2)
其中q(Mi)表示非零子矩陣Mi的循環(huán)右移數(shù)值, mod(a,b)表示a對(duì)b整除后求余。
圖2 非零子矩陣M1,M2,M3,M4在H中的位置處于4環(huán)結(jié)構(gòu)中Fig.2 The positions of non-zero sub-matrices M1,M2,M3,M4 in H are in an length-4 cycle
2.2.2 基于偏移量周期性填充方法
在構(gòu)造QC-LDPC-C碼對(duì)應(yīng)的基校驗(yàn)矩陣時(shí), 可首先利用行位置的排列組合方法確定B0(t)中校驗(yàn)部分子矩陣非負(fù)數(shù)的位置。
將式(1)中QC-LDPC-C碼對(duì)應(yīng)基校驗(yàn)矩陣Hb的周期假定為T, 則在確定其余非負(fù)數(shù)的位置上, 比特填充的周期也為T, 同時(shí)在周期為T的對(duì)應(yīng)位置上填充相同的值。因此, 只需完成周期T內(nèi)的列構(gòu)成的子矩陣的構(gòu)造即可。同時(shí)為降低設(shè)計(jì)和計(jì)算的復(fù)雜度, 將校驗(yàn)矩陣H的圍長(zhǎng)設(shè)置為6, 即不存在4環(huán)。所以, 只需檢驗(yàn)矩陣Hb中(T+2M)個(gè)包含完整約束長(zhǎng)度的行構(gòu)成的子矩陣的短環(huán)即可。于是, 筆者提出基于偏移量周期性填充的QC-LDPC-C碼構(gòu)造方法。
由于所考慮的基校驗(yàn)矩陣Hb的周期為T, 所以若Hb中存在4環(huán), 則4環(huán)的一條豎邊必在周期為T的校驗(yàn)列內(nèi), 因此4環(huán)的結(jié)構(gòu)必在周期為T的校驗(yàn)列所包含的檢驗(yàn)行中。同時(shí), 所構(gòu)造的部分基校驗(yàn)矩陣需使前Mmb行的行重至少為2, 因此所考慮的部分基校驗(yàn)矩陣為
(3)
假定已經(jīng)構(gòu)建了n(n≥0)列的校驗(yàn)矩陣HB滿足所有的約束條件, 即對(duì)k=1,2,…,N, 第k列的列重正好為ak; 并且相應(yīng)二分圖的girth滿足g≥6?,F(xiàn)在考慮增加第(n+1)列到校驗(yàn)矩陣HB中, 新增的列用包含元素的個(gè)數(shù)至多為an+1的校驗(yàn)節(jié)點(diǎn)集合U1表示, 初始化為空。進(jìn)一步假定, 已經(jīng)在U1中加入了i(0≤i≤an+1)個(gè)校驗(yàn)節(jié)點(diǎn)。
對(duì)任一個(gè)校驗(yàn)節(jié)點(diǎn)1≤c≤M,Nc是指與c共享變量節(jié)點(diǎn)的所有校驗(yàn)節(jié)點(diǎn)的集合。對(duì)j≥2, 定義
(4)
顯然U2中每個(gè)校驗(yàn)節(jié)點(diǎn)肯定與U1中某個(gè)校驗(yàn)節(jié)點(diǎn)存在長(zhǎng)度為2的路徑。增加一個(gè)校驗(yàn)節(jié)點(diǎn)c′到U1中, 則c′和U1的每個(gè)校驗(yàn)節(jié)點(diǎn)間都存在一條長(zhǎng)度為2的路徑, 所以如果c′也出現(xiàn)在U2中, 就可確定長(zhǎng)度為4的環(huán)的存在。因此為避免長(zhǎng)度為4的環(huán), 應(yīng)該避免這個(gè)校驗(yàn)節(jié)點(diǎn)在U2中出現(xiàn)。因此, 為滿足girth限制, 應(yīng)盡量避免將集合U中的校驗(yàn)節(jié)點(diǎn)加到U1中。集合
U=U1∪U2
(5)
令D(c)為校驗(yàn)節(jié)點(diǎn)c的度數(shù), 同時(shí)令
A= {c∈{1,2,…,M}|D(c)
(6)
其中A是還沒(méi)有達(dá)到最大重量的校驗(yàn)節(jié)點(diǎn)集, 則沒(méi)有違反girth約束的可加到U1的校驗(yàn)節(jié)點(diǎn)集合即為A集合與U集合的差值, 可表示為
F0=AU
(7)
如果F0為空, 當(dāng)前girth將減少2; 如果g′降到小于4, 則算法停止。
于是, 提出的QC-LDPC-C碼的構(gòu)造方法如算法1所示。
算法1
輸入?yún)?shù):mb,nb,M,T,smax,{a1,a2,…,anbT}, {br1,br2,…,br(M+T)mb}, {P1,P2,…,PT}
填充確定的子矩陣部分:
1) Fori=0;i≤T-1;i=i+1
2) Forj=1;j≤mb;j=j+1
3) 確定B0(i)(Pi(j),nb-mb+1)的值
4) End For
5) End For
6) Fori=T;i≤T+2M-1;i=i+1
7) If mod(i,T)=0
8)B0(i)=B0(T)
9) Else
10)B0(i)=B0(mod(i,T))
11) End If
12) End For
13) Forc=1;c≤mb(T+2M);c=c+1
14)D(c)=1;Nc={c}
15) End For
填充隨機(jī)子矩陣部分:
17) Fort=0;t 18) Forn=0;n 19) Ifn≥nb-mb+1 20)A={mb(t+1)+1,mb(t+1)+2,…,mb(t+M+1)} 21)anT=anT-1 22) Else 23)A={mbt+1,mbt+2,…,mb(t+M+1)} 24) End If 26) Fors=0; (t+sT+i<=T+2M-1);s=s+1 27) 設(shè)置Bi(t+sT+i)(j,n)的數(shù)值 28) End For 30) Fori=0;i 31) sel_flag=0; 32) Forg′=g_max; (g′>=4sel_flag=0);g′=g′-2 33) 計(jì)算F0=AU0 34) If(g′≥6&&F0≠φ)‖g′=4 35) Ifg′=4 36) 依據(jù)算法2中的算法從F1中選擇c* 37) Else 38) 依據(jù)文獻(xiàn)[16]中的算法從F0中選擇c* 39) End If 40) sel_flag=1,F1=F1c* 41)ii=?c*/mb」 42) Fors=0; (t+sT+ii<=T+2M-1);s=s+1 49)b=br-counter,A=A∩{?d|D(d) 50) End If 51) End For 52) Else 54) End If 55) End For 56) End For 57) End For 58) End For 輸出參數(shù):HB,g′ 最后, 更新U=U∪V2(c)。只有當(dāng)girth降低2時(shí), 才需重新計(jì)算U。算法1的目的即加入第(i+1)個(gè)校驗(yàn)節(jié)點(diǎn)到U1中。如果失敗, 整個(gè)算法將停止。 這里為降低計(jì)算復(fù)雜度, 對(duì)搜索的次數(shù)進(jìn)行了簡(jiǎn)化。由于構(gòu)造的基校驗(yàn)矩陣僅考慮不存在4環(huán), 因此將循環(huán)搜索的次數(shù)設(shè)置為2, 由此可令構(gòu)造矩陣的圍長(zhǎng)至少為6。 在算法1中, 從F1中選擇c*的算法如下。 算法2 1) ?c∈F1, 令U1(c)={c}; 2) ?c∈F1, 計(jì)算U2(c), 并計(jì)算T0(c)=U2(c)∩U0; 3) ?c∈F1, 計(jì)算S1(c)=|T0(c)|, 計(jì)算T1={c1∈F1: ?c2∈F1,S1(c1)≤S1(c2)}; 4) ?c∈T1, 計(jì)算S2(c)=D(c), 計(jì)算T2={c1∈T1: ?c2∈T1,S2(c1)≤S2(c2)}; 5) 從T2中選擇c*。 注意到算法1中, 如果已經(jīng)添加了一個(gè)校驗(yàn)節(jié)點(diǎn)c到U1中, 然后設(shè)U1={c}, 并且計(jì)算 (8) V2(c)=U1(c)∪U2(c) (9) 算法1中的構(gòu)造流程示意圖如圖3所示。假定構(gòu)造的基矩陣Hb的列重均為3, 且Hb的周期為T。若矩陣Hb的參數(shù)設(shè)置為其他數(shù)值, 則可采用類似的方法進(jìn)行構(gòu)造。 圖3 所提構(gòu)造方法的流程示意圖Fig.3 The flow diagram of proposed construction method 由于矩陣Hb的周期為T, 因此只要完成前Tnb列的構(gòu)造, 即可依據(jù)矩陣的周期性得到Hb。在算法1中, 首先根據(jù)每個(gè)行塊中B0(t),t∈[0,T-1]的校驗(yàn)部分子矩陣滿足行和列的非負(fù)數(shù)個(gè)數(shù)均為1, 確定一個(gè)周期內(nèi)B0(t)的校驗(yàn)部分子矩陣中非負(fù)值的位置, 而后進(jìn)行周期性擴(kuò)展, 即填充確定的子矩陣部分(圖3中標(biāo)記X的方格)。 在矩陣Hb的隨機(jī)子矩陣部分的構(gòu)造中, 只需得到前Tnb列的非負(fù)值位置即可, 而所要完成周期性填充的部分基校驗(yàn)矩陣HB的總列數(shù)為(T+2M)nb。因此, 在確定前Tnb列的每個(gè)非負(fù)值位置后, 需依據(jù)矩陣HB的周期, 填充以T為周期的對(duì)應(yīng)位置(即完成第26~28行, 也即圖3中周期T內(nèi)未標(biāo)記X的位置)。 由于需確定非負(fù)值位置的矩陣HB的總列數(shù)為(T+2M)nb, 因此在針對(duì)矩陣Hb的前Tnb列的構(gòu)造中, 每個(gè)即將填充的非負(fù)值位置及其周期擴(kuò)展后填充的位置都要與已填充的位置及其周期擴(kuò)展后填充的位置構(gòu)成聯(lián)合矩陣, 并依據(jù)式(2)對(duì)此聯(lián)合矩陣進(jìn)行擴(kuò)展矩陣結(jié)構(gòu)4環(huán)檢驗(yàn)。 于是, 利用所提的基于子矩陣偏移量周期性擴(kuò)展填充的方法, 即可得到部分基校驗(yàn)矩陣HB的非負(fù)值位置, 而后依據(jù)矩陣的周期性, 得到基校驗(yàn)矩陣Hb的非負(fù)值位置。并且在構(gòu)造過(guò)程中使Hb滿足無(wú)4環(huán)的擴(kuò)展矩陣結(jié)構(gòu)的要求, 于是可確保由矩陣Hb擴(kuò)展后得到的檢驗(yàn)矩陣的圍長(zhǎng)至少為6, 即不存在4環(huán)。 2.2.3 計(jì)算復(fù)雜度分析 依據(jù)式(3)給出的部分基校驗(yàn)矩陣HB和算法1, 算法1中填充確定子矩陣部分可在O((T+M)mb)(即線性復(fù)雜度)內(nèi)完成。 對(duì)算法1中的填充隨機(jī)子矩陣部分, 假定構(gòu)造的部分基校驗(yàn)矩陣HB的行、 列重平均值分別為a和b, 第33行計(jì)算A和U0的差集, 可在O((T+M)mb)內(nèi)完成。針對(duì)聯(lián)合矩陣中存在無(wú)4環(huán)結(jié)構(gòu)的情形, 執(zhí)行第36行從F1中選擇c*(即算法2), 在最復(fù)雜的情形下需O(((T+M)mb)2)次運(yùn)算。而針對(duì)聯(lián)合矩陣中存在4環(huán)的情形, 執(zhí)行第38行從F0中選擇c*[16], 在最復(fù)雜的情形下也需要O(((T+M)mb)2)次運(yùn)算。 于是, 每執(zhí)行一次第30~56行的“For…End For”內(nèi)循環(huán), 復(fù)雜度為O(((T+M)mb)2)。這個(gè)循環(huán)最多執(zhí)行a次, 復(fù)雜度為O(a((T+M)mb)2)。最后, 第 17~58行的兩層外循環(huán)“For…End For”最多執(zhí)行bT(T+M)mb/a次, 所以算法總體復(fù)雜度為 O(a((T+M)mb)2bT(T+M)mb/a)=O(bT((T+M)mb)3) 利用算法構(gòu)造QC-LDPC-C碼對(duì)應(yīng)基校驗(yàn)矩陣時(shí), 算法的總體計(jì)算復(fù)雜度如表1所示。 表1 構(gòu)造算法總體的計(jì)算復(fù)雜度 為驗(yàn)證構(gòu)造算法的譯碼性能, 使用具有不同碼率和碼長(zhǎng)的LDPC-C碼的校驗(yàn)矩陣進(jìn)行仿真實(shí)驗(yàn)。實(shí)驗(yàn)是在二進(jìn)制移相鍵控(BPSK: Binary Phase Shift Keying)調(diào)制和加性高斯白噪聲(AWGN: Additive White Gaussian Noise)信道條件下, 使用不同的迭代次數(shù)及信噪比(SNRs: Signal to Noise Ratios)條件, 其中最大迭代次數(shù)為30次。針對(duì)IEEE 1901標(biāo)準(zhǔn)中LDPC-C碼[3], 利用LBP譯碼算法所得的誤碼率(BER: Bit Error Rate,RBER)性能如圖4所示。 在圖4中, 碼Ref-CC12-1901和Ref-CC23-1901分別是IEEE 1901標(biāo)準(zhǔn)中碼率為1/2和2/3的LDPC-C碼[3]。構(gòu)造的QC-LDPC-C碼CC-1和CC-2分別與碼Ref-CC12-1901和Ref-CC23-1901具有相同的碼率和行列重分布, 且兩個(gè)碼的周期均為3。其中碼CC-1對(duì)應(yīng)基矩陣的每個(gè)元素包含2列, 子矩陣擴(kuò)展因子為2, 記憶塊長(zhǎng)度為108; 碼CC-2對(duì)應(yīng)基矩陣的每個(gè)元素包含3列, 子矩陣擴(kuò)展因子為3, 記憶塊長(zhǎng)度為76。 圖4表明, 構(gòu)造碼CC-1和CC-2的譯碼性能均優(yōu)于標(biāo)準(zhǔn)中對(duì)應(yīng)的碼Ref-CC12-1901和Ref-CC23-1901。在圖4中, CC-1和CC-2可利用構(gòu)造的基校驗(yàn)矩陣實(shí)現(xiàn)基于迭代計(jì)算的快速編碼, 即此時(shí)的編碼復(fù)雜度只與基校驗(yàn)矩陣的行數(shù)和列重相關(guān), 并且其譯碼過(guò)程可直接采用構(gòu)造的基校驗(yàn)矩陣進(jìn)行迭代計(jì)算。而Ref-CC12-1901和Ref-CC23-1901在編碼過(guò)程中需要存儲(chǔ)和利用完整的校驗(yàn)矩陣進(jìn)行計(jì)算, 并且譯碼也需基于較為復(fù)雜的校驗(yàn)矩陣進(jìn)行迭代計(jì)算。因此, CC-1和CC-2具有相對(duì)較低的編譯碼復(fù)雜度。 圖4 碼Ref-CC12-1901與CC-1, Ref-CC23-1901 圖5 碼Ref-CC2與CC-3在不同的 與CC-2在不同的SNR條件下的BER性能 SNR條件下的BER性能 Fig. 4 BER performance of the codes Ref-CC12-1901, Fig. 5 BER performance of the codes Ref-CC2 CC-1, Ref-CC23-1901 and CC-2 under different SNRs and CC-3 under different SNRs 圖5所使用的碼Ref-CC2為基于LDPC碼構(gòu)造的碼率為2/3, 約束長(zhǎng)度為2520的LDPC-C碼[8]。構(gòu)造的QC-LDPC-C碼CC-3具有相同的碼率和約束長(zhǎng)度, 其對(duì)應(yīng)基矩陣的每個(gè)元素包含4列, 子矩陣擴(kuò)展因子為64, 碼的周期為10。圖5表明構(gòu)造碼CC-3比碼Ref-CC2有更好的性能, 同時(shí)碼CC-3具有較低的編譯碼復(fù)雜度。 由圖4和圖5可見(jiàn), 采用筆者提出的方法構(gòu)造的QC-LDPC-C碼在相同或相近的條件下, 可獲得更好的譯碼性能。同時(shí), 由于構(gòu)造碼均為具有可實(shí)現(xiàn)快速編碼的準(zhǔn)循環(huán)碼, 于是這些碼相對(duì)具有較低的編譯碼復(fù)雜度, 更易于設(shè)計(jì)實(shí)現(xiàn)。 QC-LDPC-C碼具有較低的編譯碼復(fù)雜度, 同時(shí)經(jīng)過(guò)優(yōu)化設(shè)計(jì)的碼可獲得逼近Shannon極限的譯碼性能, 并可對(duì)任意長(zhǎng)度的數(shù)據(jù)進(jìn)行連續(xù)編譯碼。但QC-LDPC-C碼的構(gòu)造需避免4環(huán), 并且其校驗(yàn)矩陣的直接構(gòu)造方法的計(jì)算復(fù)雜度較高。于是, 筆者提出基于偏移量周期性填充的QC-LDPC-C碼構(gòu)造方法。依據(jù)QC-LDPC-C碼對(duì)應(yīng)的基校驗(yàn)矩陣的周期性, 所提方法首先確定校驗(yàn)行塊中最右端子矩陣的校驗(yàn)部分子矩陣的位置;而后在針對(duì)每個(gè)列中每個(gè)變量節(jié)點(diǎn)的選擇時(shí), 使由周期性確定的位置與即將填充的位置構(gòu)成的矩陣能滿足擴(kuò)展后的校驗(yàn)矩陣的圍長(zhǎng)至少為6。同時(shí), 所提構(gòu)造方法的計(jì)算復(fù)雜度相對(duì)較低, 具有校驗(yàn)行數(shù)的3次方的復(fù)雜度。實(shí)驗(yàn)結(jié)果表明, 基于所提方法構(gòu)造的QC-LDPC-C碼對(duì)應(yīng)基校驗(yàn)矩陣的擴(kuò)展矩陣無(wú)4環(huán), 并可獲得較好的譯碼性能, 同時(shí)具有較低的編譯碼復(fù)雜度。另外, 所提的周期性比特填充方法也可用于其他卷積碼的構(gòu)造。3 實(shí)驗(yàn)結(jié)果與討論
4 結(jié) 語(yǔ)