楊柳 佟首峰
【摘要】 LDPC碼是糾錯碼,在信道編碼中,與RS碼和Turbo碼相比,其糾錯能力是最好的,因此,對LDPC碼的研究有很大的價值和意義。目前,已經(jīng)廣泛應(yīng)用于深空通信、光纖通信和衛(wèi)星數(shù)字視頻等領(lǐng)域。
【關(guān)鍵詞】 LDPC編碼 譯碼 BP算法
一、LDPC碼概述
LDPC碼是一種低密度奇偶校驗碼。LDPC碼的譯碼比較簡單,具有逼近香農(nóng)極限的特點。LDPC碼是一種線性分組碼的一種,其校驗矩陣中非零元素的個數(shù)是很少的。由于校驗矩陣H的這種稀疏性,從而保證了譯碼復(fù)雜度和最小碼距都只隨碼長的增大而呈線性增加的趨勢。
二、LDPC碼的基本構(gòu)造方法
2.1 MacKay和Neal構(gòu)造的規(guī)則隨機(jī)LDPC碼
LDPC碼的這種構(gòu)造方法,是通過檢查其校驗矩陣H的任意兩列,同一位置是否都為1,通過這種方法可以避免最短四環(huán)的出現(xiàn)。對于碼長比較大的LDPC碼,其校驗矩陣會非常稀疏,出現(xiàn)最短4環(huán)的可能性會非常小。在LDPC碼的碼長較短的情況下,也可以構(gòu)造出無4環(huán)的校驗矩陣。
MacKay和Neal所提出的構(gòu)造方法,應(yīng)用到實際當(dāng)中是很難的,是由于它的校驗矩陣和生成矩陣不具有準(zhǔn)循環(huán)特性。
2.2 π—旋轉(zhuǎn)矩陣構(gòu)造法
旋轉(zhuǎn)矩陣構(gòu)造法就是根據(jù)單位置換矩陣來構(gòu)造校驗矩陣的。它是由子矩陣構(gòu)成校驗矩陣,但是π—旋轉(zhuǎn)矩陣構(gòu)造法中的子矩陣為單位置換矩陣,其列重和行重都為1。校驗矩陣是由多個子矩陣在橫向和縱向排列得到的,所以具有更大的靈活性。子矩陣的大小的設(shè)計是要根據(jù)校驗矩陣的列重、行重和碼率、碼長而決定的,并且子矩陣的大小對LDPC碼性能有很大的影響。
2.3準(zhǔn)循環(huán)構(gòu)造法
校驗矩陣是由零矩陣和循環(huán)置換單位子矩陣構(gòu)成的。有如下定義,循環(huán)置換子矩陣Zi是z×z階單位陣循環(huán)移動i次得到的,其中,Z是尺寸為z×z的零矩陣。則校驗矩陣H為mz×nz階,可構(gòu)造如下:
準(zhǔn)循環(huán)LDPC碼的存儲量是原來的1/ Z,需要的存儲量大幅度減少,是由于只需要存儲循環(huán)置換單位子矩陣中第一行元素“1”的位置和準(zhǔn)循環(huán)置換單位子矩陣在校驗矩陣中的位置。準(zhǔn)循環(huán)LDPC碼是具有比較好的應(yīng)用前景的,準(zhǔn)循環(huán)結(jié)構(gòu)的LDPC碼是一種重要的LDPC碼,已經(jīng)被IEEE 802.16e標(biāo)準(zhǔn)和GB20600標(biāo)準(zhǔn)所采納。
三、LDPC碼的編碼算法
1、LU分解編碼算法。LU分解法就是,首先對校驗矩陣H的子矩陣H2進(jìn)行LU分解,可以得到上三角矩陣U和下三角矩陣L,然后再用前向迭代法就可以根據(jù)信息位來得到校驗位,從而完成編碼,LU分解編碼算法運算的復(fù)雜度與碼長n是成線性關(guān)系的。
2、部分迭代譯碼算法。LU分解法的缺點是預(yù)處理的復(fù)雜度比較高,最重要的是經(jīng)過預(yù)處理之后,新得到的校驗矩陣有很大可能不是稀疏矩陣,所以會導(dǎo)致編碼的運算量非常大。所以,我們想找到其他的編碼算法,要求這種編碼算法的運算得復(fù)雜度和碼長成線性關(guān)系。部分迭代譯碼算法就具有這樣的特點,這種方法對校驗矩陣H只做列置換和行置換,這樣,矩陣的右上角會出現(xiàn)下三角形式,然后對矩陣進(jìn)行分塊處理,把上述的下三角矩陣獨立出來,使其成為一個子矩陣,最后根據(jù)這個子矩陣的結(jié)構(gòu)來進(jìn)行迭代編碼。
四、LDPC碼的譯碼
1、消息傳遞算法。在消息傳遞算法中,其中概率信息是根據(jù)兩部圖在校驗節(jié)點和變量節(jié)點之間的傳遞,逐步進(jìn)行迭代譯碼。節(jié)點的沿邊所發(fā)送的信息與上次接收到的信息是沒有關(guān)系的,而是取決于與其相連的其他邊上所接收到的信息。就是為了使任意一條邊上,只有外來信息的傳遞,這樣可以保證其譯碼性能的良好性。2、置信傳播算法。置信傳播算法就是,當(dāng)消息傳遞算法中的譯碼過程中所發(fā)送的信息的符號集和信道所輸出的符號集相同時,也就是采用連續(xù)性的消息時,適當(dāng)選擇信息映射函數(shù)。這種算法主要就是,根據(jù)接收到的軟信息在變量節(jié)點和校驗節(jié)點之間進(jìn)行迭代運算,來獲得最大編碼增益,因此具有良好的性能,在性能要求比較高的場合是適用的。3、最小和譯碼算法。最小和譯碼算法是根據(jù)對數(shù)域BP譯碼算法所提出的一種簡化算法,最小和譯碼算法根據(jù)求最小值的運算從而簡化了函數(shù)運算,不再需要估計信道噪聲,而且運算復(fù)雜度也很大程度上降低了,但是它的性能也是有所下降的。4、BP迭代譯碼算法?;贐P算法的迭代譯碼算法,就是在給定接收信號和信道估計的條件下,在迭代的每一步中,對于有噪序列的每一個符號,都要進(jìn)行后驗概率的估計,然后把所估計到的值輸入下一次迭代,這樣可以獲得更好的結(jié)果。
五、總結(jié)
LDPC碼是一種接近香農(nóng)極限的碼,其校驗矩陣是稀疏矩陣,譯碼具有線性復(fù)雜度。BP譯碼算法的錯誤是可以檢測的;MS算法雖然降低了函數(shù)的復(fù)雜度,但是性能也是下降的;BF算法復(fù)雜度低、硬件實現(xiàn)簡單,不需要復(fù)雜的計算,操作方便。但性能較BP算法有一定程度的降低,適用于對譯碼性能不高的場合。