一種具有較大圍長(zhǎng)的正則LDPC碼構(gòu)造方法
1962年Gallager提出低密度校驗(yàn)(Low DensityParity Check,LDPC)碼,后來(lái)Tanner對(duì)它進(jìn)行了很有價(jià)值的補(bǔ)充,直到1995年又被Mackey重新提出。如果采用和積迭代譯碼算法,LDPC碼具有非常接近香農(nóng)限的性能。如果在LDPC碼的Tanner圖中存在環(huán),在迭代譯碼的過(guò)程中錯(cuò)誤信息將會(huì)膨脹,對(duì)于LDPC的譯碼性能相當(dāng)有害,尤其是較短環(huán)的存在,所產(chǎn)生的危害尤為嚴(yán)重。所以,在構(gòu)造LDPC的過(guò)程當(dāng)中,要盡量避免短環(huán)的出現(xiàn)。為了盡量減小Tanner圖中環(huán)的存在對(duì)相應(yīng)LDPC碼在和積譯碼算法下所得性能的影響,一些研究學(xué)者基于代數(shù)方法和啟發(fā)式搜索方法,提出了一些具有較大圍長(zhǎng)的LDPC碼構(gòu)造方法。研究表明,通過(guò)增大LDPC碼的圍長(zhǎng),在一定程度上可以改善碼的糾錯(cuò)性能。本文構(gòu)造了正則LDPC碼,在構(gòu)造過(guò)程中討論了設(shè)計(jì)圍長(zhǎng)的參數(shù)選舉,使得滿足一定的條件就可以避免校驗(yàn)矩陣的小圍長(zhǎng)出現(xiàn),使得所構(gòu)造的矩陣具有較大圍長(zhǎng)。
1.LDPC碼的構(gòu)造理論
考慮長(zhǎng)為16的(2,4)正則LDPC碼對(duì)應(yīng)的Tanner,如圖1所示。
從圖1中很顯然可以看出,該Tanner中環(huán)的最小長(zhǎng)度為8,因此對(duì)應(yīng)LDPC碼的圍長(zhǎng)也為8。
按圖1將其中的變量結(jié)點(diǎn)和校驗(yàn)結(jié)點(diǎn)依次編號(hào),可以得到對(duì)應(yīng)LDPC碼的校驗(yàn)矩陣,如圖2所示。
圖2矩陣很有規(guī)律,可以看作是由兩個(gè)行重為2、維數(shù)為8×8的循環(huán)方陣拼接而成。因此可以猜想,采用某些有規(guī)律的矩陣合并成校驗(yàn)矩陣,這樣生成的LDPC碼很可能會(huì)具有較大的圍長(zhǎng)?;蛘哒f(shuō),將LDPC碼的校驗(yàn)矩陣分裂為若干個(gè)子矩陣,然后每個(gè)子矩陣再按照某種規(guī)律構(gòu)造,就有可能避免小環(huán)的出現(xiàn)。
這里采用矩陣分裂的思想。設(shè)要構(gòu)造一個(gè)長(zhǎng)為72(n=ρUU∈N)的(λ,ρ)正則LDPC碼,將該碼的校驗(yàn)矩陣分裂為(λ,ρ)個(gè)U×U的子矩陣。
式中:每個(gè)子矩陣Hi,j=I(ai,j)(0≤i<λ,0≤j<ρ)均為一個(gè)單位陣或者單位陣的循環(huán)移位ai,j表示該單位陣的各行循環(huán)右移的位數(shù)。顯然,這樣構(gòu)造的校驗(yàn)矩陣也不可能為滿秩,至多為λρ-λ-1。
為便于描述,用A=(ai,j)表示由各個(gè)子方陣的循環(huán)移位參數(shù)組成的矩陣,用(I,J,i,j)表示校驗(yàn)矩陣中的元素,其中(I,J)為該元素所屬的子矩陣的坐標(biāo),(i,j)為該元素在它所屬的子矩陣中的坐標(biāo)。稱Tanner圖中每個(gè)變量結(jié)點(diǎn)參與的所有環(huán)的最小長(zhǎng)度為該變量結(jié)點(diǎn)的環(huán)長(zhǎng),則顯然相應(yīng)LDPC碼的圍長(zhǎng)就等于各個(gè)變量結(jié)點(diǎn)環(huán)長(zhǎng)的最小值。將n個(gè)變量結(jié)點(diǎn)分為P組,每一組變量結(jié)點(diǎn)對(duì)應(yīng)一列子矩陣,則考慮到各個(gè)子矩陣的循環(huán)特性,有如下定理成立。
定理1 屬于同組的變量結(jié)點(diǎn)具有相同的環(huán)長(zhǎng)。
證明:設(shè)任意兩個(gè)同組的變量結(jié)點(diǎn)x和y,分別對(duì)應(yīng)一列子矩陣的第x列和第y列,且y-x=dmodU,其環(huán)長(zhǎng)分別為C(x)和C(y),并設(shè)變量結(jié)點(diǎn)x的最小環(huán)路徑如圖3所示。
根據(jù)各個(gè)子矩陣的循環(huán)特性,可以找到另一個(gè)環(huán)的路徑如圖4所示。
顯然該環(huán)路長(zhǎng)度為C(x)且經(jīng)過(guò)變量節(jié)點(diǎn)y,故有:
C(x)≥C(y) (2)
同理可得:
C(x)≤C(y) (3)
綜合上面兩式,有C(x)=C(y)即對(duì)任意兩個(gè)同組的變量節(jié)點(diǎn),它們的環(huán)長(zhǎng)均相等,證畢。
由定理1可知,按照上述方法構(gòu)造的校驗(yàn)矩陣所對(duì)應(yīng)的LDPC碼,所有變量節(jié)點(diǎn)的環(huán)長(zhǎng)至多有ρ種情況,因此對(duì)這樣構(gòu)造的矩陣只需要分別從各組中抽取一個(gè)變量節(jié)點(diǎn),然后只對(duì)這ρ個(gè)變量節(jié)點(diǎn)進(jìn)行檢測(cè),即可確定整個(gè)碼的圍長(zhǎng)。
2校驗(yàn)矩陣中循環(huán)移位參數(shù)的選取
下面討論4環(huán)的情況。如果一個(gè)LDPC碼含有4環(huán),則它所對(duì)應(yīng)的校驗(yàn)矩陣中必然有4個(gè)“1”處于某個(gè)矩形的四個(gè)頂點(diǎn),該環(huán)路路徑可表示為:
定理2 按照式(1)所示矩陣分裂方法構(gòu)造的矩陣所對(duì)應(yīng)的LDPC碼不含長(zhǎng)為4的環(huán)的充要條件有式(6)成立:
該定理的正確性從前面的描述中即可得知,這里不再贅述。
由定理2很容易得到下面推論:
推論1:按照式(1)所示矩陣分裂構(gòu)造方法構(gòu)造的矩陣所對(duì)應(yīng)的LDPC碼不含長(zhǎng)為2l的環(huán)的充要條件為:
在編碼設(shè)計(jì)時(shí),可以首先確定所構(gòu)造LDPC碼設(shè)計(jì)圍長(zhǎng),然后根據(jù)上面的定理和推論列出相應(yīng)的不等約束,進(jìn)而尋找滿足這些不等約束的參數(shù)即可。
在進(jìn)行參數(shù)選擇時(shí),可以根據(jù)上面分析和設(shè)計(jì)的圍長(zhǎng)列出各參數(shù)所對(duì)應(yīng)滿足的約束方程,然后尋找滿足這些約束方程的參數(shù)取值。然而,由于這些約束方程均為不等約束,因而無(wú)法采用一般的方程組求解法;如果采用窮舉的方法去遍歷各個(gè)參數(shù)的所有可能組合,繼而從中找出滿足約束的一組,搜索的范圍將有己U(λ-1)(ρ-1),這樣即使U的取值范圍很小(如102),總的搜索范圍也將很大,因而無(wú)法實(shí)現(xiàn)。
為了實(shí)現(xiàn)參數(shù)的快速選取可以采用下述逐參試探算法:
(1)令ai,0=0(i=0,1,…,λ-1)及a0,j=0(j=1,2,…,ρ-1);
(2)隨機(jī)在{0,1,…,U-1)中選取a1,1取值,然后判斷a1,1是否滿足給定的不等約束,若滿足則確定取值,否則重新執(zhí)行(2)
(3)按照(2)的方法一次確定剩余子矩陣的循環(huán)移位參數(shù)。
按照上面算法,每個(gè)參數(shù)至多需要U次試探,這樣總共的試探次數(shù)至多為(λ-1)(ρ-1)U,遠(yuǎn)遠(yuǎn)小于整個(gè)搜索空間U(λ-1)(ρ-1)。
由于該算法采用逐個(gè)確定參數(shù)的方法,顯然最后確定的參數(shù)受到的約束是最多的,定義N(l)為考慮消除Tanner圖中長(zhǎng)度為2l的環(huán)時(shí)最后一個(gè)參數(shù)受到的約束方程個(gè)數(shù),則有:
由于各個(gè)約束方程均為不等約束,每個(gè)約束只能限制參數(shù)不能取某個(gè)特定的值,因此所有不等約束限制參數(shù)所不能取的值的個(gè)數(shù)至多為約束方程數(shù)目的兩倍??紤]到所要構(gòu)造的LDPC碼的碼長(zhǎng),U的取值一般在100左右,因此消除六環(huán)一般都可行。
3仿真及性能分析
取U=168,按照上面的方法構(gòu)造長(zhǎng)度為1 008的(3,6)正則LDPC碼,通過(guò)計(jì)算機(jī)搜索檢測(cè)發(fā)現(xiàn),得到子方陣的循環(huán)參數(shù)為:
檢測(cè)發(fā)現(xiàn)LDPC碼的圍長(zhǎng)為10,為了保證所構(gòu)造碼的碼率嚴(yán)格等于0.5,可以從生成的檢驗(yàn)矩陣中刪去2個(gè)“1”。該碼在AWGN信道下的糾錯(cuò)性能如圖5所示,圖中的另外兩條曲線分別為相同長(zhǎng)度、隨即構(gòu)造、不消除4環(huán)的(3,6)正則LDPC碼的性能曲線。其中,girth表示圍長(zhǎng);ave表示所有變量節(jié)點(diǎn)的平均環(huán)長(zhǎng)。
文獻(xiàn)[8,9]采用PEG算法所構(gòu)造的長(zhǎng)度為1 008的(3,6)正則LDPC碼的圍長(zhǎng)為8,平均環(huán)長(zhǎng)為9.66,稍劣于上面構(gòu)造的LDPC碼,因此該方法用于正則LDPC碼的構(gòu)造時(shí)要優(yōu)于其他的構(gòu)造方法。
通過(guò)分析發(fā)現(xiàn),采用該方法構(gòu)造的正則LDPC碼與文獻(xiàn)[10]所述方法一樣,其圍長(zhǎng)存在一個(gè)上限,下面進(jìn)行詳細(xì)介紹。考慮一個(gè)維素為2U×3U的矩陣,將其分裂成6個(gè)維素為U×U的子方陣,每個(gè)方陣均為單位陣或單位陣的行循環(huán)移位,則可以得到一個(gè)行重為3、列重為2的矩陣。不失一般性,令第一行子方陣均為單位陣,其余兩個(gè)方陣的行右循環(huán)移位參數(shù)分別為a1,1和a1,2,則不論a1,1和a1,3如何取值,該矩陣始終存在如圖6所示的12環(huán)。
將圖6環(huán)上各個(gè)的非零元素依次編號(hào),并令編號(hào)為1的元素坐標(biāo)為(0,0,x,x),則環(huán)上各節(jié)點(diǎn)的坐標(biāo)如圖7所示。
因此,若采用上面的方法構(gòu)造(λ,ρ)正則LDPC碼,只要λ≥2,ρ≥2且λ+ρ≥5,相應(yīng)的校驗(yàn)矩陣中也就必然包含圖所示的字矩陣或其轉(zhuǎn)置矩陣,于是得到的LDPC碼的圍長(zhǎng)也就必然不可能超過(guò)12。
4結(jié) 語(yǔ)
給出了一種高圍長(zhǎng)的正則LDPC碼的構(gòu)造方法,具體分析了去環(huán)方法和循環(huán)移位參數(shù)的選取。用這種方法構(gòu)造的LDPC碼的H矩陣具有很好的結(jié)構(gòu)。仿真表明,用該方法構(gòu)造的碼在AWGN信道下性能要優(yōu)于隨機(jī)構(gòu)造的碼。