文獻標識碼: A
文章編號: 0258-7998(2013)08-0105-04
廣義LDPC碼是一類由LDPC碼擴展而來的差錯控制編碼[1-2]。廣義LDPC碼保留了LDPC碼稀疏圖的表達,,但將碼圖中的單奇偶校驗約束節(jié)點替換為線性分組碼,。由于引入了線性分組碼約束節(jié)點,廣義LDPC具有構(gòu)造靈活,、在約束節(jié)點可以采用更強有力的譯碼器的優(yōu)勢,,并具有錯誤平層較低、在低碼率條件下可逼近信道容量的性能,。近年來,,廣義LDPC碼由于其優(yōu)于LDPC碼的特性而引起了學者們的廣泛研究[3-5]。
傳統(tǒng)廣義LDPC譯碼算法基于奇偶校驗矩陣的分層結(jié)構(gòu),,采用超碼串行譯碼而子碼并行譯碼的迭代譯碼機制,。然而,以非規(guī)則LDPC等構(gòu)造的廣義LDPC碼的校驗矩陣不具有分層結(jié)構(gòu),,無法按照傳統(tǒng)廣義LDPC碼譯碼算法進行譯碼,。本文提出一種廣義LDPC碼的自適應(yīng)全并行MAP-BP譯碼算法。該算法具有通用性,,且引入自適應(yīng)修正因子,,能保證迭代譯碼過程中子碼MAP算法和本地碼BP算法的良好銜接,并可提高譯碼準確性,。
1 廣義LDPC碼結(jié)構(gòu)
廣義LDPC碼是將LDPC碼中的單奇偶校驗約束節(jié)點用簡單的線性分組碼替換得到的,,其中稱LDPC碼為本地碼,線性分組碼為子碼,。
如圖1所示,,廣義LDPC碼奇偶校驗矩陣的構(gòu)造步驟為:構(gòu)造本地LDPC碼的奇偶校驗矩陣Hb,稱之為基矩陣,;選取子碼C0(n,k),,并將基矩陣Hb每一行中的“1”隨機用子碼的校驗矩陣Ho的某一列替換,“0”用全零列矢量替換,。
Gallager規(guī)則LDPC碼(N,j,n)采用分層方法構(gòu)造,,如圖1(a)所示,其校驗矩陣可按行劃分為j層(每一層包含相同的行數(shù)),,第一層H1的構(gòu)造很有規(guī)律,,“1”在行中按降冪排列,,其余j-1層是對第一部分進行的隨機重排,即Hi=πi(H1),i=2,3,…j,,其中π表示隨機列位移,。按照分層結(jié)構(gòu),將每一層的N/n個分量碼的值合稱為一個超碼,。相應(yīng)地,,以Gallager規(guī)則LDPC碼為本地碼的廣義LDPC碼保留了這一分層結(jié)構(gòu),如圖1(b)所示,。然而,,廣義LDPC碼發(fā)展至今,其構(gòu)造已不再限于傳統(tǒng)方法,,即除了選取Gallager規(guī)則LDPC碼作本地碼外,,QC-LDPC碼、非規(guī)則LDPC碼等作本地碼的廣義LDPC先后被構(gòu)造并進行研究,。若低密度校驗矩陣采用其他的方法構(gòu)造,,廣義LDPC碼未必可以分解為若干超碼。
2 傳統(tǒng)廣義LDPC譯碼
傳統(tǒng)的廣義LDPC譯碼算法是基于子碼譯碼基礎(chǔ)上的迭代譯碼,,因此譯碼性能和譯碼復(fù)雜度嚴重依賴于子碼使用的譯碼算法,。通常廣義LDPC碼選用的子碼為短碼且具有較高的碼率,而廣義LDPC碼迭代譯碼過程中使用的是軟信息,,因此子碼一般采用軟輸入軟輸出SISO(Soft-in Soft-out)譯碼算法[6],,所以傳統(tǒng)廣義LDPC碼的譯碼機制為基于子碼SISO的迭代譯碼。
根據(jù)分層結(jié)構(gòu),,譯碼信息在不同層級的超碼之間進行傳遞:根據(jù)接收樣本計算每個比特的初始概率信息,,并假定它屬于超碼C1。超碼C1中的N/n個子碼SISO譯碼器獨立并行工作,,產(chǎn)生每個編碼比特的后驗概率和外概率,。后者經(jīng)過交織后作為超碼C2中子碼SISO譯碼的先驗信息。上述過程在每對相鄰超碼之間依次進行,,將C1→C2→…→Cj→C1的信息傳遞過程看作一次完整的迭代,,整體上講超碼串行工作。當j=2時,,廣義LDPC碼的譯碼可以看做Turbo碼譯碼器的擴展[7],,子碼的譯碼器結(jié)構(gòu)如圖2所示。綜上所述,,傳統(tǒng)廣義LDPC迭代譯碼過程可概括為“超碼串行工作,,子碼并行處理”。
3 MAP-BP譯碼算法
BP譯碼算法是LDPC碼的通用譯碼算法,,適用于任意方法構(gòu)造的LDPC,。而傳統(tǒng)廣義LDPC譯碼算法并不具備通用性,,不具有分層結(jié)構(gòu)的廣義LDPC碼將無法按照傳統(tǒng)廣義LDPC碼譯碼算法進行譯碼。為此,,本文設(shè)計了自適應(yīng)全并行MAP-BP譯碼算法,。廣義LDPC碼的MAP-BP譯碼算法的流程為:
與傳統(tǒng)廣義LDPC譯碼算法相比,MAP-BP譯碼算法具有以下優(yōu)點:(1)譯碼信息全并行計算與傳輸,,一方面減少了處理時間,,另一方面可作為廣義LDPC碼的通用譯碼算法;(2)算法中引入了自適應(yīng)修正因子,,既避免了迭代過程中在MAP算法和BP算法中流動的LLR值發(fā)生溢出,又提高了譯碼準確性,。
4 仿真分析
在AWGN信道條件下,,根據(jù)MAP-BP譯碼算法對兩組廣義LDPC碼的性能進行仿真,并與傳統(tǒng)譯碼算法的性能進行比較,。圖3中碼字的碼長為420,,圖4中的碼長為960,兩組碼字碼率都為0.467,,本地碼列重為2,,子碼選用(15,11)漢明碼。
仿真結(jié)果表明,,采用MAP-BP算法得到的譯碼性能較好,。實質(zhì)上,對廣義LDPC碼而言,,傳統(tǒng)譯碼算法可以看作無修正因子下MAP-BP譯碼的串行變換方案,,因此MAP-BP性能的提高得益于修正因子的引入,且在高信噪比處譯碼性能改善更明顯,。
圖5比較了(960, 2, 15)廣義LDPC碼在兩種譯碼算法下,,誤碼率隨迭代次數(shù)的變化情況??梢钥闯?,較之于傳統(tǒng)譯碼算法,MAP-BP譯碼算法收斂速度較快,。
圖6給出了(420,,2,15)廣義LDPC碼的誤碼率隨修正因子大小的變化情況,。最佳修正因子?茲的取值受信噪比大小,、碼長長度的影響。修正因子的取值是值得深入探討的問題,,在實際應(yīng)用中,,需根據(jù)碼長和信道條件選取恰當?shù)?茲值,,即進行自適應(yīng)調(diào)整。
本文提出了一種廣義LDPC碼的自適應(yīng)全并行MAP-BP譯碼算法,,該譯碼算法具有通用性,。仿真表明在高信噪比條件下可提高譯碼準確性。廣義LDPC碼的MAP-BP譯碼算法思想來源于LDPC碼的BP譯碼算法,,傳統(tǒng)的廣義LDPC譯碼算法可以看作MAP-BP算法分層串行的特例,。MAP-BP譯碼算法對迭代譯碼過程中子碼MAP算法和本地碼BP算法輸出LLR的銜接進行了分析,并采用自適應(yīng)除性修正因子解決溢出現(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.