孫昊 劉杰
摘要 本文主要對LDPC碼的原理及過程進(jìn)行了闡述,并對LDPC碼的譯碼算法進(jìn)行了研究。
【關(guān)鍵詞】LDPC碼 譯碼 算法
1 LDPC碼的概述
1984年,信道編碼理論率先由Shannon提出,也就是所有的信道都有一個固定的信道容量C,對所有比C小的碼率R,都有一種編碼方式,若果運(yùn)用最大似然譯碼,那么會伴著碼長的增加它的譯碼錯誤概率p能夠無限小。在AWGN信道下,信道容量表可做如下表示
Shannon所給的僅僅是一個存在性定理,沒有辦法達(dá)到可以達(dá)到香農(nóng)極限的特定模式。目前,在糾錯碼方面,相應(yīng)條件下,LDPC碼屬于現(xiàn)階段對香農(nóng)限最為接近的好碼,現(xiàn)階段成為了該領(lǐng)域的寵兒,它的優(yōu)點(diǎn)十分明顯,即抗干擾性以及抗衰減性極強(qiáng),,特別在高碼率下的更為明顯。
跟其他的線性分組碼不一樣的地方在于,LDPC碼并非通過它產(chǎn)生的矩陣來表示,而是通過它校驗矩陣來表示的。LDPC碼的低密度性具體為:矩陣中絕大大多數(shù)元素均為O,只有很少數(shù)的元素為1。面對較為常規(guī)的LDPC碼,它的校驗矩陣H里既滿足每一列里1的總數(shù)都一樣多,還滿足每一行1的總數(shù)也一樣。所以能夠通過(n,j,k)來表示規(guī)則的LDPC碼,這里n代表分組的長度,j代表校驗矩陣H里任意一列中1的個數(shù),k代表校驗矩陣H里任意一行1的總數(shù)。
按照線性分組碼的性質(zhì)要求,校驗矩陣H推導(dǎo)出生成矩陣G,進(jìn)而得到對應(yīng)的碼字。因此,LDPC碼的生成矩陣G無法通過一種簡單明了的形式來表達(dá)。H在物理上的意義為:每一行代表了一個校驗方程,每一列代表了一個變量點(diǎn)都被哪些校驗方程的制約。
2 Tanner圖表示的LDPC碼
不管是什么樣的線性分組碼,均可以通過一種簡單的方式來表示:Tanner圖。LDPC碼的Tanner圖由兩類節(jié)點(diǎn)構(gòu)成:變量節(jié)點(diǎn)以及校驗節(jié)點(diǎn)。變量節(jié)點(diǎn)所表示的變量屬于校驗節(jié)點(diǎn)的自變量,而且相同類型節(jié)點(diǎn)之間間無邊的直接連接。如下所示,A是(10,6,3)規(guī)則LDPC碼的校驗矩陣,其中行重為6,列重為3。有當(dāng)A里元素為1的時后,因子圖方從變量節(jié)點(diǎn)cj到校驗節(jié)點(diǎn)Zj形成一條有向邊。
在圖1虛線所示,從c1,zl,c2,z5,cl構(gòu)成一個閉合回路。我們在Tanner圖里這樣定義,一個節(jié)點(diǎn)的最小環(huán)長值為該節(jié)點(diǎn)所有閉合回路里最小環(huán)路長度,每個節(jié)點(diǎn)的最小環(huán)路長度的最小值被定義為Tanner圖形的圍長。這幅圖里的girth等于4。Girth的大小會影響LDPC碼的譯碼性能,它使得在迭代譯碼算法下,表現(xiàn)出完全不同的譯碼性能。實驗結(jié)果表明,girth的長度越小,LDPC譯碼性能越差。當(dāng)對LDPC進(jìn)行設(shè)計時,首先確保girth不能小于4,然后盡可能的令各節(jié)點(diǎn)的最小環(huán)長大一點(diǎn),這樣LDPC應(yīng)用迭代譯碼算法依然可以取得較好的誤碼率性能。
3 LDPC的編碼原理及過程
Mackay設(shè)計了一種LDPC碼的構(gòu)造途徑,選擇一個大于或等于3的整數(shù)ωc,產(chǎn)生一個r*n矩陣A,令它所擁有固定的列重量ωc與盡可能相同的行重量。對該矩陣進(jìn)行高斯消元,得到系統(tǒng)形式的H=[PII]此時A的各行如果線性相關(guān),就對A的行與列進(jìn)行相應(yīng)的變換,令它的結(jié)構(gòu)變成A=[C1lC2]得形式,這里C1屬于一個r*(n-T)稀疏矩陣,C2屬于一個r*r稀疏矩陣。因此P=C2-1C1。一個碼長等于n,碼率為(n-r)/n的LDPC碼的生成矩陣則能夠定義成
對矩陣進(jìn)行行列轉(zhuǎn)換,令所有行里l的總個數(shù)盡可能相同。
對1的位置再次進(jìn)行調(diào)整,令任意兩列里的相同地方不同時出現(xiàn)1。
通過Mackay算法產(chǎn)生的校驗矩陣任意兩列之間在同樣地方出現(xiàn)1的次數(shù)小于或等于1,保證不出現(xiàn)長度等于4的環(huán),同時調(diào)整校驗矩陣令它的周長最大化,以便于令它的性能變得更優(yōu)異。
4 LDPC碼的譯碼算法的實現(xiàn)
本文采用的是和積譯碼算法,具體過程如下:
和積譯碼算法通過概率決定信息位的取值(O或1),輸入信道或接收到的比特可能在LDPC譯碼操作之前就被預(yù)測,因此也可以將此成為接收到的比特的先驗概率。校驗節(jié)點(diǎn)和信息節(jié)點(diǎn)之間的外在信息被定義為Ej,i表示當(dāng)比特ci=1時滿足第j個奇偶校驗方程的概率,但若信息比特i未參與第j個奇偶校驗方程則不能用Ej,i表示校驗節(jié)點(diǎn)j和信息節(jié)點(diǎn)i之間的外在信息,因為他們之間此時沒有外在信息。
當(dāng)比特ci=l時,所參與的奇偶校驗方程中比特為1的個數(shù)為偶數(shù)個的概率為:
5 仿真結(jié)果及分析
利用上述編碼原理以及和積譯碼算法,我們設(shè)計的H校驗矩陣的大小是(2048,3,6),在AWGN信道下,采用的碼率為0.5,使用Matlab進(jìn)行模擬分析,得到的圖像如圖2所示。
從圖2中可以看出,隨著信噪比的增加,誤碼率是隨之減小的。