文獻標識碼: A
文章編號: 0258-7998(2013)08-0105-04
廣義LDPC碼是一類由LDPC碼擴展而來的差錯控制編碼[1-2]。廣義LDPC碼保留了LDPC碼稀疏圖的表達,但將碼圖中的單奇偶校驗約束節(jié)點替換為線性分組碼。由于引入了線性分組碼約束節(jié)點,廣義LDPC具有構造靈活、在約束節(jié)點可以采用更強有力的譯碼器的優(yōu)勢,并具有錯誤平層較低、在低碼率條件下可逼近信道容量的性能。近年來,廣義LDPC碼由于其優(yōu)于LDPC碼的特性而引起了學者們的廣泛研究[3-5]。
傳統(tǒng)廣義LDPC譯碼算法基于奇偶校驗矩陣的分層結構,采用超碼串行譯碼而子碼并行譯碼的迭代譯碼機制。然而,以非規(guī)則LDPC等構造的廣義LDPC碼的校驗矩陣不具有分層結構,無法按照傳統(tǒng)廣義LDPC碼譯碼算法進行譯碼。本文提出一種廣義LDPC碼的自適應全并行MAP-BP譯碼算法。該算法具有通用性,且引入自適應修正因子,能保證迭代譯碼過程中子碼MAP算法和本地碼BP算法的良好銜接,并可提高譯碼準確性。
1 廣義LDPC碼結構
廣義LDPC碼是將LDPC碼中的單奇偶校驗約束節(jié)點用簡單的線性分組碼替換得到的,其中稱LDPC碼為本地碼,線性分組碼為子碼。
如圖1所示,廣義LDPC碼奇偶校驗矩陣的構造步驟為:構造本地LDPC碼的奇偶校驗矩陣Hb,稱之為基矩陣;選取子碼C0(n,k),并將基矩陣Hb每一行中的“1”隨機用子碼的校驗矩陣Ho的某一列替換,“0”用全零列矢量替換。
Gallager規(guī)則LDPC碼(N,j,n)采用分層方法構造,如圖1(a)所示,其校驗矩陣可按行劃分為j層(每一層包含相同的行數(shù)),第一層H1的構造很有規(guī)律,“1”在行中按降冪排列,其余j-1層是對第一部分進行的隨機重排,即Hi=πi(H1),i=2,3,…j,其中π表示隨機列位移。按照分層結構,將每一層的N/n個分量碼的值合稱為一個超碼。相應地,以Gallager規(guī)則LDPC碼為本地碼的廣義LDPC碼保留了這一分層結構,如圖1(b)所示。然而,廣義LDPC碼發(fā)展至今,其構造已不再限于傳統(tǒng)方法,即除了選取Gallager規(guī)則LDPC碼作本地碼外,QC-LDPC碼、非規(guī)則LDPC碼等作本地碼的廣義LDPC先后被構造并進行研究。若低密度校驗矩陣采用其他的方法構造,廣義LDPC碼未必可以分解為若干超碼。
2 傳統(tǒng)廣義LDPC譯碼
傳統(tǒng)的廣義LDPC譯碼算法是基于子碼譯碼基礎上的迭代譯碼,因此譯碼性能和譯碼復雜度嚴重依賴于子碼使用的譯碼算法。通常廣義LDPC碼選用的子碼為短碼且具有較高的碼率,而廣義LDPC碼迭代譯碼過程中使用的是軟信息,因此子碼一般采用軟輸入軟輸出SISO(Soft-in Soft-out)譯碼算法[6],所以傳統(tǒng)廣義LDPC碼的譯碼機制為基于子碼SISO的迭代譯碼。
根據(jù)分層結構,譯碼信息在不同層級的超碼之間進行傳遞:根據(jù)接收樣本計算每個比特的初始概率信息,并假定它屬于超碼C1。超碼C1中的N/n個子碼SISO譯碼器獨立并行工作,產(chǎn)生每個編碼比特的后驗概率和外概率。后者經(jīng)過交織后作為超碼C2中子碼SISO譯碼的先驗信息。上述過程在每對相鄰超碼之間依次進行,將C1→C2→…→Cj→C1的信息傳遞過程看作一次完整的迭代,整體上講超碼串行工作。當j=2時,廣義LDPC碼的譯碼可以看做Turbo碼譯碼器的擴展[7],子碼的譯碼器結構如圖2所示。綜上所述,傳統(tǒng)廣義LDPC迭代譯碼過程可概括為“超碼串行工作,子碼并行處理”。
3 MAP-BP譯碼算法
BP譯碼算法是LDPC碼的通用譯碼算法,適用于任意方法構造的LDPC。而傳統(tǒng)廣義LDPC譯碼算法并不具備通用性,不具有分層結構的廣義LDPC碼將無法按照傳統(tǒng)廣義LDPC碼譯碼算法進行譯碼。為此,本文設計了自適應全并行MAP-BP譯碼算法。廣義LDPC碼的MAP-BP譯碼算法的流程為:
與傳統(tǒng)廣義LDPC譯碼算法相比,MAP-BP譯碼算法具有以下優(yōu)點:(1)譯碼信息全并行計算與傳輸,一方面減少了處理時間,另一方面可作為廣義LDPC碼的通用譯碼算法;(2)算法中引入了自適應修正因子,既避免了迭代過程中在MAP算法和BP算法中流動的LLR值發(fā)生溢出,又提高了譯碼準確性。
4 仿真分析
在AWGN信道條件下,根據(jù)MAP-BP譯碼算法對兩組廣義LDPC碼的性能進行仿真,并與傳統(tǒng)譯碼算法的性能進行比較。圖3中碼字的碼長為420,圖4中的碼長為960,兩組碼字碼率都為0.467,本地碼列重為2,子碼選用(15,11)漢明碼。
仿真結果表明,采用MAP-BP算法得到的譯碼性能較好。實質上,對廣義LDPC碼而言,傳統(tǒng)譯碼算法可以看作無修正因子下MAP-BP譯碼的串行變換方案,因此MAP-BP性能的提高得益于修正因子的引入,且在高信噪比處譯碼性能改善更明顯。
圖5比較了(960, 2, 15)廣義LDPC碼在兩種譯碼算法下,誤碼率隨迭代次數(shù)的變化情況??梢钥闯觯^之于傳統(tǒng)譯碼算法,MAP-BP譯碼算法收斂速度較快。
圖6給出了(420,2,15)廣義LDPC碼的誤碼率隨修正因子大小的變化情況。最佳修正因子?茲的取值受信噪比大小、碼長長度的影響。修正因子的取值是值得深入探討的問題,在實際應用中,需根據(jù)碼長和信道條件選取恰當?shù)?茲值,即進行自適應調整。
本文提出了一種廣義LDPC碼的自適應全并行MAP-BP譯碼算法,該譯碼算法具有通用性。仿真表明在高信噪比條件下可提高譯碼準確性。廣義LDPC碼的MAP-BP譯碼算法思想來源于LDPC碼的BP譯碼算法,傳統(tǒng)的廣義LDPC譯碼算法可以看作MAP-BP算法分層串行的特例。MAP-BP譯碼算法對迭代譯碼過程中子碼MAP算法和本地碼BP算法輸出LLR的銜接進行了分析,并采用自適應除性修正因子解決溢出現(xiàn)象,提高了譯碼性能。
參考文獻
[1] LENTMAIER M, ZIGANGIROV K S. On generalized lowdensity parity check codes based on Hamming component codes[J].IEEE Communications Letter,1999,3(8):248-250.
[2] BOUTROS J, POTHIER O. Generalized low-density(Tanner) codes[C]. In Proceeding IEEE ICC, Houston, USA, July 1999:11-16.
[3] SHADI A S, DIVSALAR D. Enumerators for protographbased ensembles of LDPC and generalized LDPC codes[J]. IEEE Transactions on Information Theory, 2011,2(57):858-885.
[4] SHADI A S, DIVSALAR D, RYAN W E. On the typical minimum distance of protograph-based generalized LDPC codes[C]. ISIT 2010, Austin, Texas, U.S.A., June 13-18, 2010:719-723
[5] Wang Yige, FOSSORIER M. Doubly generalized LDPC codes over the AWGN channel[J]. IEEE Transactions on Communications, 2009,57(5):1312-1319.
[6] LIN S, COSTELLO D J. Error control coding 2nd edition[M]. Landon: Prentice Hall Press, 2007.
[7] MAO Y,BANIHASHEMI A H. Decoding low-density paritycheck codes with probabilistic schedule[J].IEEE Communications Letters, 2001,5(10):414-416.
[8] YAZDANI M R, HEMATI S, BANIHASHEMI A H. Improving belief propagation on graphs with cycles[J]. IEEE Communications Letters, 2004,8(1):57-59.