專利名稱:適于并行譯碼實(shí)現(xiàn)的ldpc碼構(gòu)造方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種信道編碼方法,尤其涉及一種適用于并行譯碼實(shí)現(xiàn)的LDPC碼構(gòu)造方法,屬于信息技術(shù)領(lǐng)域。
背景技術(shù):
信道編碼技術(shù)作為保證通信系統(tǒng)可靠傳輸?shù)幕炯夹g(shù),已經(jīng)得到了飛速的發(fā)展,LDPC碼是一種重要的信道編碼,有很多高效譯碼方法,其中行列合并譯碼算法(Joint Row-Column Decoding,簡稱JRC譯碼方法)是一種高效快速的譯碼算法,還可結(jié)合min-sum 算法,用于分層譯碼。下面先簡析JRC算法流程。設(shè)Hmxn是LDPC校驗(yàn)矩陣,首先初始化=Ui = uiQ 1彡i彡η ;Uji = 0,i e N(J), 1彡j彡m。上面式中Ui表示變量節(jié)點(diǎn)i發(fā)出的外信息的和。Uitl是BPSK符號(hào)經(jīng)過加性高斯白噪音信道后接收到的信道信息概率密度對(duì)數(shù)似然比,+ι表示校驗(yàn)節(jié)點(diǎn)j傳向變量節(jié)點(diǎn) i的外信息。逐行進(jìn)行置信度傳播運(yùn)算,對(duì)校驗(yàn)矩陣第j (1 ^ j ^ m)行進(jìn)行(1)、(2)、(3)式的運(yùn)算(簡稱JRC運(yùn)算)Vij = Ui-Uji, i e N(j)(1)uP =Π8§ηΚ )·^ η Κ ] ieN(J) (2)
keNU)/iUi = Vij+Uji, i e N(j)(3)上面式中N(j)為校驗(yàn)節(jié)點(diǎn)j相鄰的變量節(jié)點(diǎn)集合。N(j)/i是N(j)集合排除掉i 所得的集合。式(2)也可使用修正的min-sum算法。每進(jìn)行完所有m行對(duì)應(yīng)的JRC運(yùn)算就完成一次迭代處理,就可對(duì)所有Ui (1 < i < η)進(jìn)行硬判決并計(jì)算校驗(yàn)式,如果滿足校驗(yàn)矩陣約束,則停止迭代。否則繼續(xù)迭代,直到滿足校驗(yàn)方程或者迭代次數(shù)達(dá)到預(yù)設(shè)值則完成譯碼。JRC譯碼算法逐行進(jìn)行運(yùn)算,每行有關(guān)的運(yùn)算包括式(2)表示的行方向置信度傳播運(yùn)算,和式(1)和式(3)表示的與本行有關(guān)的列方向的置信度傳播運(yùn)算,相比于普通和積算法的置信度傳播方式,在誤碼性能相當(dāng)?shù)那闆r下,JRC譯碼方法典型迭代次數(shù)減少一半, 有利于提高譯碼速率。JRC方法對(duì)每列的(1),(3)式運(yùn)算,只需1次加法和減法,都是用Ui, Uji變量計(jì)算,且(2)式是對(duì) 的更新,這有利于列運(yùn)算和行運(yùn)算合并實(shí)現(xiàn),不需要專有的列運(yùn)算流水線,減少了硬件資源消耗,也比傳統(tǒng)SPA算法減少了迭代需要的總處理節(jié)拍數(shù), 更有利于提高速率。JRC譯碼的數(shù)學(xué)運(yùn)算也很簡單,硬件需求降低,有利于提高譯碼速度。 綜上所述,JRC譯碼法很適于硬件高速實(shí)現(xiàn)。然而,JRC高速硬件譯碼需要實(shí)施多行并行的JRC運(yùn)算,普通LDPC碼并不支持。參見圖1是示意一個(gè)典型的1/2碼率LDPC系統(tǒng)碼校驗(yàn)矩陣H14x28。H的左半部分有雙對(duì)角線結(jié)構(gòu),H中的黑色的方塊表示元素1,白色的表示0。對(duì)圖1中的行組{1,2},參看圖lb,行組{1,2}并行JRC運(yùn)算寫U1、寫U27沖突,即第1行JRC運(yùn)算用的Ui變量和第2行JRC運(yùn)算用的Ui變量有交集IU1,U27}。行組中兩個(gè)行的運(yùn)算都要對(duì)UuU27值更新,所以1,2兩行的并行JRC運(yùn)算有寫操作沖突,不能并行進(jìn)行。造成這種情況是因?yàn)樾薪M{1,2}內(nèi)的兩行在相同列有非O元素。普通矩陣不能有效支持并行JRC運(yùn)算,要支持Pr行的并行JRC運(yùn)算,只有構(gòu)造多個(gè)像圖Ic中的Pr( > 1)行行組構(gòu)成的校驗(yàn)矩陣,且要求各個(gè)行組內(nèi)任一列最多只能有一個(gè)非零元素,即要求校驗(yàn)矩陣各列的非0元素處于不同行組。綜上分析可知,JRC并行譯碼法所需要的LDPC碼的校驗(yàn)矩陣為多個(gè)有Pr( > 1整數(shù))個(gè)行的行組組成,并要求同一行組中的Pr行的每一列的最多只有一個(gè)非0元素。而依照目前的LDPC碼構(gòu)造方法,并不能得到適用于JRC運(yùn)算的可具有較高譯碼并行度的LDPC碼。
發(fā)明內(nèi)容
為了克服現(xiàn)有技術(shù)中存在的問題,本發(fā)明提供了一種適于并行譯碼實(shí)現(xiàn)的LDPC 碼構(gòu)造方法,包括基于PEG算法實(shí)現(xiàn)的普通LDPC碼和基于Block-PEG算法實(shí)現(xiàn)的QC-LDPC 碼,QC-LDPC碼也屬于LDPC碼,只是在實(shí)現(xiàn)方式上有所不同。為了實(shí)現(xiàn)本發(fā)明的目的采用的技術(shù)方案概述如下一種適于并行譯碼實(shí)現(xiàn)的LDPC碼構(gòu)造方法,包括步驟1)初始化LDPC碼的參數(shù),包括碼長N、碼率R,校驗(yàn)矩陣H的維度分布函數(shù);2)確定譯碼并行度Pr ;Pr整除N(I-R);將校驗(yàn)矩陣H的每一行看做校驗(yàn)節(jié)點(diǎn),每一列看做變量節(jié)點(diǎn),將校驗(yàn)節(jié)點(diǎn)規(guī)劃成N(I-R)/Pr個(gè)集合,用Cprj表示,j表示集合的標(biāo)號(hào), j = 1,2... N (I-R)/Pr,每個(gè)集合有Pr個(gè)校驗(yàn)節(jié)點(diǎn)。3)利用Peg算法構(gòu)造LDPC碼的H矩陣,其中要求在確定非零元素的位置時(shí),滿足條件在同一個(gè)變量節(jié)點(diǎn)上連接的所有校驗(yàn)節(jié)點(diǎn)中,不存在任何兩個(gè)校驗(yàn)節(jié)點(diǎn)屬于同一個(gè)校驗(yàn)節(jié)點(diǎn)集合 Cprj,j = 1,2. ..N (I-R)/Pr。所述步驟1)利用密度推演方法或者EXIT圖方法確定H矩陣的維度分布函數(shù)。所述步驟3)構(gòu)造H矩陣包含以下步驟3-1)初始化H矩陣的二分圖,將H陣的每一行看做校驗(yàn)節(jié)點(diǎn),每一列看做變量節(jié)點(diǎn),共有m = N(I-R)個(gè)校驗(yàn)節(jié)點(diǎn),η = N個(gè)變量節(jié)點(diǎn);3-2)向二分圖中添加m個(gè)校驗(yàn)節(jié)點(diǎn),逐個(gè)添加變量節(jié)點(diǎn),并與符合條件的目的校驗(yàn)節(jié)點(diǎn)建立連接路徑;3-3)判斷所有η個(gè)變量節(jié)點(diǎn)都已經(jīng)添加入二分圖;3-4)在沒有連接的位置填充0元素,得到最終的H矩陣。所述步驟3-2)與符合條件的目的校驗(yàn)節(jié)點(diǎn)建立連接路徑包括以下步驟3-2-1)以當(dāng)前添加的變量節(jié)點(diǎn)為根節(jié)點(diǎn),將H矩陣二分圖展為樹狀;3-2-2)挑選出距根節(jié)點(diǎn)最遠(yuǎn)的校驗(yàn)節(jié)點(diǎn)放入集合一;3-2-3)從集合一中選出和目前變量節(jié)點(diǎn)相連接的任一校驗(yàn)節(jié)點(diǎn)不在同一個(gè) Cprj, (j = 1,2... N (I-R)/Pr)集合中的校驗(yàn)節(jié)點(diǎn)組成集合二,在所組成集合二中再選擇維度最小的校驗(yàn)節(jié)點(diǎn),作為目的校驗(yàn)節(jié)點(diǎn)。
所述步驟3-3)首先判斷當(dāng)前變量節(jié)點(diǎn)的維度是否已經(jīng)滿足初始維度分布,然后判斷是否η個(gè)變量節(jié)點(diǎn)都添加入二分圖。
一種適于并行譯碼實(shí)現(xiàn)的QC-LDPC碼構(gòu)造方法,包括步驟1)初始化QC-LDPC碼的參數(shù),包括碼長N、碼率R,維度分布函數(shù),校驗(yàn)矩陣H的子塊大小為ρΧρ ;其中要求P能夠整除正整數(shù)N(I-R)和N,每個(gè)非零子塊都是一個(gè)單位循環(huán)偏移矩陣。2)確定譯碼并行度Pr,其中要求ρ能整除Pr,Pr能整除N(I-R);將H陣的每一個(gè)塊行看做一個(gè)校驗(yàn)節(jié)點(diǎn),每一個(gè)塊列看做一個(gè)變量節(jié)點(diǎn),將校驗(yàn)節(jié)點(diǎn)規(guī)劃成N(I-R)/Pr個(gè)集合,用Cprj表示,j表示集合的標(biāo)號(hào),j = 1,2... N (I-R)/Pr,每個(gè)集合有Pr/p個(gè)校驗(yàn)節(jié)點(diǎn)ο3)利用Block-Peg算法構(gòu)造QC-LDPC碼的H矩陣,其中要求在確定非零子塊的位置時(shí),即在確定H矩陣二分圖的連接時(shí),滿足條件在同一個(gè)變量節(jié)點(diǎn)上連接的所有校驗(yàn)節(jié)點(diǎn)中,不存在任何兩個(gè)校驗(yàn)節(jié)點(diǎn)屬于同一個(gè)校驗(yàn)節(jié)點(diǎn)集合Cprj,j = 1,2... N(I-R)/Pr。所述步驟1)利用密度推演方法或者EXIT圖方法確定H矩陣的維度分布函數(shù)。所述步驟3)構(gòu)造H矩陣包含以下步驟3-1)初始化H矩陣的二分圖,將H陣的每一個(gè)塊行看做一個(gè)校驗(yàn)節(jié)點(diǎn),每一個(gè)塊列
N(I-R)N
看做一個(gè)變量節(jié)點(diǎn);校驗(yàn)節(jié)點(diǎn)有 = ^個(gè),變量節(jié)點(diǎn)有《 =—個(gè);
PP3-2)向二分圖中添加m個(gè)校驗(yàn)節(jié)點(diǎn),逐個(gè)添加變量節(jié)點(diǎn),并與符合條件的目的校驗(yàn)節(jié)點(diǎn)建立連接路徑,條件為在同一個(gè)變量節(jié)點(diǎn)上連接的所有校驗(yàn)節(jié)點(diǎn)中,不存在任何兩個(gè)校驗(yàn)節(jié)點(diǎn)屬于同一個(gè)校驗(yàn)節(jié)點(diǎn)集合Cprj, j = 1,2... N (I-R)/Pr ;3-3)遍歷變量節(jié)點(diǎn)到目的校驗(yàn)節(jié)點(diǎn)的所有路徑,根據(jù)路徑權(quán)重累計(jì)值確定偏移量;3-4)判斷所有η個(gè)變量節(jié)點(diǎn)都已經(jīng)添加入二分圖;3-5)根據(jù)構(gòu)造得到的帶有偏移量的二分圖,填充相應(yīng)偏移量的單位循環(huán)偏移矩陣和全0矩陣,就得到最終的QC-LDPC碼的H矩陣。所述步驟3-2)與符合條件的目的校驗(yàn)節(jié)點(diǎn)建立連接路徑包括以下步驟3-2-1)以當(dāng)前添加的變量節(jié)點(diǎn)為根節(jié)點(diǎn),將H矩陣二分圖展為樹狀;3-2-2)挑選出距根節(jié)點(diǎn)最遠(yuǎn)的校驗(yàn)節(jié)點(diǎn)放入集合一;3-2-3)從集合一中選出和目前變量節(jié)點(diǎn)相連接的任一校驗(yàn)節(jié)點(diǎn)不在同一個(gè) Cprj, (j = 1,2... N (I-R)/Pr)集合中的校驗(yàn)節(jié)點(diǎn)組成集合二,在所組成集合二中再選擇維度最小的校驗(yàn)節(jié)點(diǎn),作為目的校驗(yàn)節(jié)點(diǎn)。所述步驟3-3)首先按照環(huán)長最大化原則選擇路徑權(quán)重,如果沒有符合條件的可選權(quán)重值,則利用隨機(jī)原則選取路徑權(quán)重。所述步驟3-4)首先判斷當(dāng)前變量節(jié)點(diǎn)的維度是否已經(jīng)滿足初始維度分布,然后判斷是否η個(gè)變量節(jié)點(diǎn)都添加入二分圖。與現(xiàn)有技術(shù)相比,本發(fā)明具有的技術(shù)效果有該方法能構(gòu)造比普通LDPC碼并行度更高的QC-LDPC碼,因而可以支持更高的譯碼并行度及譯碼速率。仿真結(jié)果表明,在使譯碼速度提高的同時(shí),本發(fā)明方法構(gòu)造的LDPC碼和普通Block-PEG算法構(gòu)造出的LDPC碼誤碼性能相當(dāng)。
圖Ia為LDPC碼校驗(yàn)矩陣H的示意圖;圖Ib為行組{1,2}并行JRC運(yùn)算的寫Ul、寫U27沖突;圖Ic為行組{1,3}并行JRC運(yùn)算所需Ui值無沖突;圖2a為處于構(gòu)造過程中的基矩陣二分圖示意圖;圖2b為按當(dāng)前變量節(jié)點(diǎn)為根節(jié)點(diǎn)的樹狀展開圖;圖3為本發(fā)明方法構(gòu)造的LDPC碼基矩陣;圖4為本發(fā)明方法構(gòu)造的LDPC碼誤碼率比較;圖5為本發(fā)明方法構(gòu)造的LDPC碼和WIMAX碼的誤碼率比較;圖6為本發(fā)明方法構(gòu)造的LDPC碼和DVBSII碼的誤碼率比較;圖7為并行JRC譯碼器結(jié)構(gòu)圖;圖8為JRC運(yùn)算器單元結(jié)構(gòu)圖。
具體實(shí)施例方式下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)描述。實(shí)施例1基于PEG算法構(gòu)造LDPC碼的步驟包括1)初始化LDPC碼的參數(shù),包括碼長N、碼率R ;利用密度推演方法或者EXIT圖方法確定校驗(yàn)矩陣H的維度分布函數(shù)。2)確定譯碼并行度Pr ;Pr能整除N(I-R);將H陣的每一行看做校驗(yàn)節(jié)點(diǎn),每一列看做變量節(jié)點(diǎn),將校驗(yàn)節(jié)點(diǎn)規(guī)劃成N(I-R)/Pr個(gè)集合,用Cprj表示,j表示集合的標(biāo)號(hào),j = 1,2... N (I-R)/Pr,每個(gè)集合有Pr個(gè)校驗(yàn)節(jié)點(diǎn)。3)利用Peg算法構(gòu)造LDPC碼的H矩陣,其中要求在確定非零元素的位置時(shí),滿足條件在同一個(gè)變量節(jié)點(diǎn)上連接的所有校驗(yàn)節(jié)點(diǎn)中,不存在任何兩個(gè)校驗(yàn)節(jié)點(diǎn)屬于同一個(gè)校驗(yàn)節(jié)點(diǎn)集合Cprj,j = 1,2. . .N(I-R)/Pr。構(gòu)造H矩陣包含以下步驟(a)初始化H矩陣的二分圖,將H陣的每一行看做校驗(yàn)節(jié)點(diǎn),每一列看做變量節(jié)點(diǎn), 共有m = N(I-R)個(gè)校驗(yàn)節(jié)點(diǎn),n = N個(gè)變量節(jié)點(diǎn);(b)向二分圖中添加m個(gè)校驗(yàn)節(jié)點(diǎn),逐個(gè)添加變量節(jié)點(diǎn),并與符合條件的目的校驗(yàn)節(jié)點(diǎn)建立連接路徑;與符合條件的目的校驗(yàn)節(jié)點(diǎn)建立連接路徑包括以下步驟(bl)以當(dāng)前添加的變量節(jié)點(diǎn)為根節(jié)點(diǎn),將H矩陣二分圖展為樹狀;(b2)挑選出距根節(jié)點(diǎn)最遠(yuǎn)的校驗(yàn)節(jié)點(diǎn)放入集合一;(b3)從集合一中選出和目前變量節(jié)點(diǎn)相連接的任一校驗(yàn)節(jié)點(diǎn)不在同一個(gè)Cprj, (j = 1,2... N (I-R)/Pr)集合中的校驗(yàn)節(jié)點(diǎn)組成集合二,在所組成集合二中再選擇維度最小的校驗(yàn)節(jié)點(diǎn),作為目的校驗(yàn)節(jié)點(diǎn)。(c)判斷所有η個(gè)變量節(jié)點(diǎn)都已經(jīng)添加入二分圖;(d)填充0元素,得到最終的H矩陣。參見圖lc,構(gòu)造完成的LDPC碼,行組{1,3}并行JRC運(yùn)算所需Ui值無沖突,行組內(nèi)兩行的JRC運(yùn)算要刷新的Ui值都不相同,即該行組形成的子矩陣的所有列的非0元素的個(gè)數(shù)至多為1,故能并行運(yùn)算。實(shí)施例2,基于Block-P EG算法構(gòu)造QC-LDPC碼因?yàn)榛贐lock-PEG算法構(gòu)造QC-LDPC碼在實(shí)際中的應(yīng)用更為廣泛,以下以 QC-LDPC碼為例,介紹本發(fā)明基于Block-PEG算法提出適于JRC并行譯碼器的新的碼構(gòu)造方法(稱為JRC-QC-PEG碼構(gòu)造方法)。Block-PEG構(gòu)造方法是PEG算法的升級(jí),它用PEG算法構(gòu)造準(zhǔn)循環(huán)LDPC基矩陣,但構(gòu)造過程結(jié)合準(zhǔn)循環(huán)LDPC碼基矩陣中的循環(huán)偏移量計(jì)算。Block-PEG算法基于圖論構(gòu)造 LDPC碼。第1節(jié)分析出JRC并行譯碼對(duì)LDPC碼校驗(yàn)矩陣的要求,那么對(duì)于QC-LDPC碼,如果要進(jìn)一步提高譯碼并行度,其基矩陣也要符合上述要求,從圖論的角度看,此要求就是要構(gòu)造的二分圖的校驗(yàn)節(jié)點(diǎn)規(guī)劃成Pr/p個(gè)一組的校驗(yàn)節(jié)點(diǎn)集合(記為Cprj)組成,而和每個(gè)變量節(jié)點(diǎn)連接的校驗(yàn)節(jié)點(diǎn)需處于不同的Cprj集合。以下給出本發(fā)明方法的完整流程。1)初始化的步驟,包括a)初始化QC-LDPC碼的參數(shù),包括碼長N、碼率R,校驗(yàn)矩陣H的每個(gè)子塊大小為 pXp ;其中要求P能夠整除正整數(shù)N(I-R)和N,每個(gè)非零子塊都是一個(gè)單位循環(huán)偏移矩陣。
N(I-R) N
可以得到基礎(chǔ)矩陣B的大小是= ^-X-
P Pb)利用密度推演或者EXIT圖等方法確定H矩陣的優(yōu)化的維度分布。c)確定譯碼并行度Pr ;其中要求ρ能整除Pr,Pr能整除N(I-R);將H陣的每一個(gè)塊行看做一個(gè)校驗(yàn)節(jié)點(diǎn),每一個(gè)塊列看做一個(gè)變量節(jié)點(diǎn),將校驗(yàn)節(jié)點(diǎn)規(guī)劃成N(I-R)/Pr個(gè)集合,用Cprj表示,j表示集合的標(biāo)號(hào),j = 1,2... N (I-R)/Pr,每個(gè)集合有Pr/p個(gè)校驗(yàn)節(jié)點(diǎn)ο2)初始化基礎(chǔ)矩陣B的二分圖向二分圖中添加m個(gè)校驗(yàn)節(jié)點(diǎn)。3)構(gòu)造向基礎(chǔ)矩陣B的二分圖中逐個(gè)添加變量節(jié)點(diǎn),挑選校驗(yàn)節(jié)點(diǎn)建立連接,并確定邊線權(quán)重,如下a)以當(dāng)前變量節(jié)點(diǎn)為根節(jié)點(diǎn),將當(dāng)前基礎(chǔ)矩陣B的二分圖展為樹狀圖,參見圖2a 和圖2b。圖2a為當(dāng)前已經(jīng)建立的二分圖,其中Cl,C2等方框?yàn)樾r?yàn)節(jié)點(diǎn),VI,V2等圓圈為變量節(jié)點(diǎn),el,e2是邊,V3為需要添加校驗(yàn)節(jié)點(diǎn)的當(dāng)前變量節(jié)點(diǎn)。圖2b為對(duì)圖2a按照當(dāng)前變量節(jié)點(diǎn)V3的展開圖,圖中e_sel虛線是依當(dāng)前展開樹及隨后的行間約束所選用的二分圖的邊。b)挑選出距根節(jié)點(diǎn)最遠(yuǎn)的校驗(yàn)節(jié)點(diǎn),組成集合一。其中最遠(yuǎn)的校驗(yàn)節(jié)點(diǎn)是指將二分圖展開到第L層時(shí)恰好包含了所有的校驗(yàn)節(jié)點(diǎn),而展開到第L-I層時(shí),并未包含所有的校驗(yàn)節(jié)點(diǎn),此時(shí)處于第L層的校驗(yàn)節(jié)點(diǎn)就是距離變量節(jié)點(diǎn)最遠(yuǎn)的校驗(yàn)節(jié)點(diǎn)。在編碼的初始階段展開的樹狀圖不可能包含所有的校驗(yàn)節(jié)點(diǎn),樹狀圖外的校驗(yàn)節(jié)點(diǎn)都是距離變量節(jié)點(diǎn)最遠(yuǎn)的校驗(yàn)節(jié)點(diǎn)。c)從所得集合一中選出和目前變量節(jié)點(diǎn)相連接的任一校驗(yàn)節(jié)點(diǎn)不在同一個(gè)Cprj 集合中的校驗(yàn)節(jié)點(diǎn)組成集合二。在集合二中再選擇維度最小的校驗(yàn)節(jié)點(diǎn),作為目的節(jié)點(diǎn),并把此目的節(jié)點(diǎn)加到已連接的校驗(yàn)節(jié)點(diǎn)集合中;d)遍歷根節(jié)點(diǎn)到目的節(jié)點(diǎn)的所有路徑,計(jì)算路徑權(quán)重累計(jì)值
s = (Σ二2 (-OV h' V) mod ρ ;2L是路徑環(huán)長,p(ik,jk)是路徑上已確定的邊線權(quán)重值。然后首先按照環(huán)長最大化原則選擇路徑權(quán)重,如果沒有符合條件的可選權(quán)重值,則利用隨機(jī)原則選取路徑權(quán)重;e)判斷根節(jié)點(diǎn)的維度是否已經(jīng)滿足初始維度分布,如果已經(jīng)滿足,則進(jìn)入步驟 f),否則返回步驟a);
f)判斷是否所有變量節(jié)點(diǎn)已經(jīng)被添加進(jìn)二分圖,如果滿足則進(jìn)入步驟4),否則返回步驟3);4)根據(jù)構(gòu)造得到的帶有偏移量的二分圖,即得到的基礎(chǔ)矩陣B,填充相應(yīng)偏移量的循環(huán)偏移單位矩陣和全0矩陣,就得到最終的準(zhǔn)循環(huán)LDPC碼的校驗(yàn)矩陣H。如圖3所示,展示了本發(fā)明方法構(gòu)造并行度Pr = 2p的準(zhǔn)循環(huán)LDPC碼的基矩陣 H1,該矩陣行數(shù)m = 14,列數(shù)η = 28,Hl中的子矩陣行列數(shù)為ρ = 72,對(duì)應(yīng)碼長N = 2016, 碼率為 1/2。構(gòu)造時(shí)規(guī)劃的 Cprj 集合如下=Cpr1 = {1,3},Cpr2 = {5,7},Cpr3 = {9,11}, Cpr4 = {13,2}, Cpr5 = {4,6},Cpr6 = {8,10},Cpr7 = {12,14}。圖3中的每個(gè)0表示72x72全0矩陣,各非0數(shù)值表示72x72單位循環(huán)偏移矩陣, 且非0數(shù)值減去1表示該子矩陣的循環(huán)偏移量。觀察{1,3},{5,7} {9,11}等Cprj集合對(duì)應(yīng)的行組,每個(gè)行組內(nèi)兩行的非0元素沒有共列,所以該校驗(yàn)矩陣可以支持并行度為Pr = 2*72 = 144的JRC譯碼??蓪l的第14列中標(biāo)為72的單位循環(huán)陣的的最右上角的1變?yōu)?,作為編碼器運(yùn)算的入手點(diǎn)[21],也可在構(gòu)造時(shí)采用類似WIMAX LDPC碼的校驗(yàn)矩陣的雙對(duì)角線結(jié)構(gòu)方便地支持編碼。表1給出了一些成功構(gòu)造碼集的參數(shù)。這些參數(shù)都處于常用碼長碼率范圍,P值的選取考慮了碼率的精確和校驗(yàn)位數(shù)等參數(shù)的整數(shù)化。下表中并行度表示的是Pr/p,即可并行的行塊數(shù)。
權(quán)利要求
1.一種適于并行譯碼實(shí)現(xiàn)的LDPC碼構(gòu)造方法,包括步驟1)初始化LDPC碼的參數(shù),包括碼長N、碼率R,校驗(yàn)矩陣H的維度分布函數(shù);2)確定譯碼并行度ft·,ft·整除N(I-R);將校驗(yàn)矩陣H的每一行看做校驗(yàn)節(jié)點(diǎn),每一列看做變量節(jié)點(diǎn),將校驗(yàn)節(jié)點(diǎn)規(guī)劃成N(I-R) /Pr個(gè)集合,用Cprj表示,j表示集合的標(biāo)號(hào),j = 1,2... N (1- /Pr,每個(gè)集合有ft·個(gè)校驗(yàn)節(jié)點(diǎn);3)利用Peg算法構(gòu)造LDPC碼的H矩陣,其中要求在確定非零元素的位置時(shí),滿足條件 在同一個(gè)變量節(jié)點(diǎn)上連接的所有校驗(yàn)節(jié)點(diǎn)中,不存在任何兩個(gè)校驗(yàn)節(jié)點(diǎn)屬于同一個(gè)校驗(yàn)節(jié)點(diǎn)集合 Cprj,j = 1,2. ..N (I-R)/Pr。
2.如權(quán)利要求1所述的方法,其特征在于,所述步驟1)利用密度推演方法或者EXIT圖方法確定H矩陣的維度分布函數(shù)。
3.如權(quán)利要求1所述的方法,其特征在于,所述步驟3)構(gòu)造H矩陣包含以下步驟3-1)初始化H矩陣的二分圖,將H陣的每一行看做校驗(yàn)節(jié)點(diǎn),每一列看做變量節(jié)點(diǎn),共有m = N(I-R)個(gè)校驗(yàn)節(jié)點(diǎn),η = N個(gè)變量節(jié)點(diǎn);3-2)向二分圖中添加m個(gè)校驗(yàn)節(jié)點(diǎn),逐個(gè)添加變量節(jié)點(diǎn),并與符合條件的目的校驗(yàn)節(jié)點(diǎn)建立連接路徑;3-3)判斷所有η個(gè)變量節(jié)點(diǎn)都已經(jīng)添加入二分圖;3-4)在沒有連接的位置填充0元素,得到最終的H矩陣。
4.如權(quán)利要求3所述的方法,其特征在于,所述步驟3-2)與符合條件的目的校驗(yàn)節(jié)點(diǎn)建立連接路徑包括以下步驟3-2-1)以當(dāng)前添加的變量節(jié)點(diǎn)為根節(jié)點(diǎn),將H矩陣二分圖展為樹狀;3-2-2)挑選出距根節(jié)點(diǎn)最遠(yuǎn)的校驗(yàn)節(jié)點(diǎn)放入集合一;3-2-3)從集合一中選出和目前變量節(jié)點(diǎn)相連接的任一校驗(yàn)節(jié)點(diǎn)不在同一個(gè)Cprj,(j =1,2... N (I-R)/Pr)集合中的校驗(yàn)節(jié)點(diǎn)組成集合二,在所組成集合二中再選擇維度最小的校驗(yàn)節(jié)點(diǎn),作為目的校驗(yàn)節(jié)點(diǎn)。
5.如權(quán)利要求3所述的方法,其特征在于,所述步驟3-3)首先判斷當(dāng)前變量節(jié)點(diǎn)的維度是否已經(jīng)滿足初始維度分布,然后判斷是否η個(gè)變量節(jié)點(diǎn)都添加入二分圖。
6.一種適于并行譯碼實(shí)現(xiàn)的QC-LDPC碼構(gòu)造方法,包括步驟1)初始化QC-LDPC碼的參數(shù),包括碼長N、碼率R,校驗(yàn)矩陣H的維度分布函數(shù),校驗(yàn)矩陣H的子塊大小為ρXp ;其中要求ρ能夠整除正整數(shù)N(I-R)和N,每個(gè)非零子塊都是一個(gè)單位循環(huán)偏移矩陣;2)確定譯碼并行度ft·,其中要求ρ能整除ft~,ft·能整除N(I-R);將H陣的每一個(gè)塊行看做一個(gè)校驗(yàn)節(jié)點(diǎn),每一個(gè)塊列看做一個(gè)變量節(jié)點(diǎn),將校驗(yàn)節(jié)點(diǎn)規(guī)劃成N(I-R) /Pr個(gè)集合, 用Cprj表示,j表示集合的標(biāo)號(hào),j = 1,2...則1-1 )/ 1~,每個(gè)集合有1^/ 個(gè)校驗(yàn)節(jié)點(diǎn);3)利用Block-Peg算法構(gòu)造QC-LDPC碼的H矩陣,其中要求在確定非零子塊的位置時(shí), 即在確定H矩陣二分圖的連接時(shí),滿足條件在同一個(gè)變量節(jié)點(diǎn)上連接的所有校驗(yàn)節(jié)點(diǎn)中, 不存在任何兩個(gè)校驗(yàn)節(jié)點(diǎn)屬于同一個(gè)校驗(yàn)節(jié)點(diǎn)集合Cprj,j = 1,2... N(I-R)/Pr。
7.如權(quán)利要求6所述的方法,其特征在于,所述步驟1)利用密度推演方法或者EXIT圖方法確定H矩陣的維度分布函數(shù)。
8.如權(quán)利要求6所述的方法,其特征在于,所述步驟3)構(gòu)造H矩陣包含以下步驟3-1)初始化H矩陣的二分圖,將H陣的每一個(gè)塊行看做一個(gè)校驗(yàn)節(jié)點(diǎn),每一個(gè)塊列看做 一個(gè)變量節(jié)點(diǎn);校驗(yàn)節(jié)點(diǎn)有
9.如權(quán)利要求8所述的方法,其特征在于,所述步驟3-2)與符合條件的目的校驗(yàn)節(jié)點(diǎn)建立連接路徑包括以下步驟3-2-1)以當(dāng)前添加的變量節(jié)點(diǎn)為根節(jié)點(diǎn),將H矩陣二分圖展為樹狀; 3-2-2)挑選出距根節(jié)點(diǎn)最遠(yuǎn)的校驗(yàn)節(jié)點(diǎn)放入集合一;3-2-3)從集合一中選出和目前變量節(jié)點(diǎn)相連接的任一校驗(yàn)節(jié)點(diǎn)不在同一個(gè)Cprj,(j =1,2... N (I-R)/Pr)集合中的校驗(yàn)節(jié)點(diǎn)組成集合二,在所組成集合二中再選擇維度最小的校驗(yàn)節(jié)點(diǎn),作為目的校驗(yàn)節(jié)點(diǎn)。
10.如權(quán)利要求8所述的方法,其特征在于,所述步驟3-3)首先按照環(huán)長最大化原則選擇路徑權(quán)重,如果沒有符合條件的可選權(quán)重值,則利用隨機(jī)原則選取路徑權(quán)重。
11.如權(quán)利要求8所述的方法,其特征在于,所述步驟3-4)首先判斷當(dāng)前變量節(jié)點(diǎn)的維度是否已經(jīng)滿足初始維度分布,然后判斷是否η個(gè)變量節(jié)點(diǎn)都添加入二分圖。
全文摘要
本發(fā)明提供一種適于并行譯碼實(shí)現(xiàn)的LDPC碼構(gòu)造方法,包括步驟1)初始化LDPC碼的參數(shù);2)確定譯碼并行度Pr,即需要同時(shí)進(jìn)行譯碼的行數(shù),將H陣的每一行的元素看做校驗(yàn)節(jié)點(diǎn),每一列的元素看做變量節(jié)點(diǎn),將所有校驗(yàn)節(jié)點(diǎn)按照并行運(yùn)算要求,規(guī)劃成多個(gè)校驗(yàn)節(jié)點(diǎn)集合,每個(gè)集合含多個(gè)校驗(yàn)節(jié)點(diǎn);3)構(gòu)造LDPC碼的H矩陣,其中要求在確定非零元素的位置時(shí),即在確定H矩陣二分圖的連接時(shí),滿足在同一個(gè)變量節(jié)點(diǎn)上連接的所有校驗(yàn)節(jié)點(diǎn)中,不存在任何兩個(gè)校驗(yàn)節(jié)點(diǎn)屬于同一個(gè)校驗(yàn)節(jié)點(diǎn)集合。該方法能構(gòu)造并行度更高的LDPC碼,因而可以支持更高的并行譯碼速率。
文檔編號(hào)H03M13/11GK102185615SQ20111011597
公開日2011年9月14日 申請(qǐng)日期2011年5月5日 優(yōu)先權(quán)日2011年5月5日
發(fā)明者王達(dá), 董明科, 鄭雅丹, 金野, 項(xiàng)海格 申請(qǐng)人:北京大學(xué)