?

CCSDS標準下低碼率LDPC碼的編碼器設計

2017-03-23 10:21龔楊陽安軍社
電子設計工程 2017年5期
關鍵詞:碼長碼率譯碼

龔楊陽,安軍社,朱 巖

(1.中國科學院國家空間科學中心 北京100190;2.中國科學院大學 北京100190)

CCSDS標準下低碼率LDPC碼的編碼器設計

龔楊陽1,2,安軍社1,朱 巖1

(1.中國科學院國家空間科學中心 北京100190;2.中國科學院大學 北京100190)

基于空間咨詢委員會(CCSDS)推薦的深空通信標準,針對碼長為4096,碼率為1/2、2/3、4/5的LDPC碼,提出了一種實現在FPGA的編碼器設計方法。根據生成矩陣的塊循環特性,使用移位累加寄存器來設計編碼器,3個碼率使用同一套觸發器,從而極大的節省了硬件消耗資源。

LDPC碼;原模圖;CCSDS標準;深空通信;移位累加寄存器

低密度奇偶校驗(LDPC)碼是Gallager[1]博士在1961年提出的一種線性分組碼,采用迭代譯碼算法譯碼。近年來的很多研究表明,LDPC碼有著接近香農極限的優異性能,有著廣闊的應用前景[2]??臻g咨詢委員會(CCSDS)也將其推薦為應用于深空通信的信道編碼方式[3]。

香農指出,對于任何信道,只要采用隨機性編、譯碼方式,編碼長度接近無限大,在其信息傳輸速率不超過信道容量時,采用最佳的似然譯碼方案,必然存在一種編碼方式的誤碼率可以任意小[4]。LDPC碼之所以有如此好的性能,就在于其編碼時引入交織器而實現了偽隨機性。并且,由于迭代譯碼算法的譯碼復雜度不會因碼長的增加,使得LDPC碼在碼長較長的情況下也可以有很強的糾錯能力,用較少的資源消耗獲得極高的吞吐量。

文中是基于CCSDS提出的131.1-O-2標準,實現了碼長為4096,碼率為1/2、2/3、4/5的LDPC碼的編碼器設計。該編碼器硬件實現復雜度低,通過軟件仿真譯碼性能,與標準中給出的譯碼性能曲線進行對比,保證編碼器編碼優越性能。

1 原模圖LDPC碼

LDPC碼是一種有著稀疏校驗矩陣的線性分組碼,校驗矩陣的稀疏性讓LDPC碼與其他線性分組碼有著不同的譯碼算法,也保證了LDPC的譯碼低復雜度和較小的最小碼距。LDPC碼的設計也是從構造一個稀疏的校驗矩陣開始的,然后再通過校驗矩陣確定生成矩陣,從而進行后續的編碼。所以構造LDPC碼的本質就是構造一個稀疏的校驗矩陣。構造稀疏矩陣的方法有很多種,基本方法就是在全零矩陣中將少數的0置換為1。一個好的LDPC碼要滿足無短環、無低碼重碼字和碼間最小距離要盡可能大的條件[9],因此我們要使用合理的構造稀疏矩陣的方法。

2003年,J.Thorpe[5]提出了一種由原模圖構造的LDPC碼的方法,我們稱之為原模圖LDPC碼。原模圖是一種指節點數量相對較少的Tanner圖。精心設計的原模圖一般無四環,且構造出來的稀疏矩陣一般是準循環矩陣。

圖1 原模圖復制三次后置換

原模圖由校驗節點C、變量節點V和邊E組成,邊連接校驗節點和變量節點[6]。圖中1(a)是一個基本的原模圖,它由4個變量節點,3個校驗節點和8條邊組成。此時原模圖校驗矩陣Hs可以表示為

當原模圖復制三次之后(如圖1(b)所示),此時得到的校驗矩陣Hm表示為

其中I表示為3階單位矩陣,0表示三階全零矩陣。最后經過節點置換后,可以得到一個派生圖(如圖1(c)所示)。對同類節點邊置換相當于在矩陣中的單位矩陣Hm進行列置換,因此在式(2)的基礎上,派生圖的校驗矩陣[7]可以表示為

其中,E1,1…,E3,4為三階置換矩陣。H就是最終原模圖LDPC碼的校驗矩陣。

由式(3)我們可以知道,使用原模圖設計LDPC碼的難點就是設計置換矩陣。一般來說,置換矩陣都會被設計為一個循環矩陣,這樣在存儲校驗矩陣的時候就只需要存儲每一個置換矩陣的多項式,大大的降低了LDPC碼的編碼復雜度和譯碼復雜度。

2 CCSDS標準下的LDPC碼

CCSDS發布的131.1-O-2標準中,給出了兩種方法來設計LDPC碼,其中對于應用于深空通信的LDPC碼,CCSDS標準使用的就是原模圖構造方法[8]。在該標準中,一共定義了9種適用于深空的LDPC碼,碼長為1024、4096、16384,碼率r為1/2、2/3、4/5[9],這9種碼的參數如表1所示。

表1 碼率與碼長

下面以1/2碼率為例來說明。當碼率r=1/2時,校驗矩陣H1/2,由3×5個子循環矩陣構成:

在(4)式中,∏1到∏8是M×M維置換矩陣。0M為M×M維全零矩陣,IM為M×M維單位矩陣,M的取值與(n,k)相關。

CCSDS標準中定義置換矩陣∏k,k∈{1,2,…,8}中的第i行中的非零項的列序號為πk(i)表示,其中i∈1,…,M-1}。則πk(i)的計算公式見式(5):

最終我們可以求得原模圖LDPC碼的校驗矩陣。接下來可以根據校驗矩陣求得生成矩陣,最后使用生成矩陣完成編碼。由于校驗矩陣H是一個準循環矩陣,且生成矩陣G是校驗矩陣H的逆矩陣,則生成矩陣G是分塊循環矩陣[10]。

具體的編碼方法如下[11]。

1)將校驗矩陣H表示為H=[Q P],其中P是H的后3M列,Q是H的前MK列。

2)求解W=(P-1Q)T,其中矩陣運算在GF(2)中進行。

3)得到生成矩陣G=[IMKW],其中IMK是單位矩陣,W是稠密循環矩陣,大小可分塊表示為:

3 編碼電路FPGA實現

CCSDS標準將原模圖構造的LDPC碼推薦為深空通信的信道編碼方式,在航天應用中要求硬件資源消耗少,算法穩定性高。針對以上要求,本文設計了如圖2的LDPC編碼器,對LDPC碼進行分組,使用末位補零的方法提高編碼穩定性,并將1/2、2/3、4/5 3種碼率使用同一套觸發器,極大的減少了資源消耗率。同時編碼后進行擾碼和添加幀頭[12]的操作,極大的方便在實際空間通信系統中的使用。

圖2 編碼器設計

在CCSDS標準中我們選擇了碼長為4096位的信息幀來做完成LDPC的編碼,首先我們需要將數據流進行分組,每一幀碼長為4096位。針對1/2、2/ 3、4/5這三種碼率,經過LDPC碼編碼器之后分別得到碼長為8192位、6144位、5120位。編碼器的輸入位數和輸出位數不一致,這樣容易造成內存泄露。為了解決這個問題,我們采用累加器來設計編碼器的核心結構。當信息碼字為0時,不影響累加器的結果。因此我們在對碼流進行分組時,采用末位補零的方法,針對種碼率,將4096位信息位分別補零成為8192位、6144位、5120位,這樣編碼器的輸入位數和輸出位數一致,能更好的保障編碼器的穩定性。

同時,由于LDPC碼的生成矩陣比較大[13],如果直接存儲,會使用很多資源。因此,根據生成矩陣的塊循環特性,使用移位寄存器來設計編碼器。生成矩陣是由一個單位矩陣和一個稠密循環矩陣構成。在編碼器設計中,核心是完成信息序列和矩陣乘法即可。由上節中的格式可知,每行有8個子循環矩陣,我們只需要存儲每個循環矩陣的第一行,通過移位的方法就可以完成乘法運算,這極大的減少了所需存儲空間。將這8個循環移位寄存器并行設計,通過累加器來存儲運算結果,既節省了資源,又提高了吞吐量。具體編碼方法見圖3所示。

圖3 使用反饋移位寄存器的準循環編碼器

文中的LDPC碼編碼器設計了1/2、2/3、4/5這3種碼率,為了方便在航天應用的具體使用,我們將這3種碼率的LDPC碼使用一套觸發器,以1/2碼率的LDPC碼編碼所需的觸發器長度來設計編碼器,在FPGA實現時能更好的節省資源。根據上圖的編碼器結構,我們在Xilinx公司的xc4vsx55-12ff1148上實現了碼長為4096,碼率為1/2、3/4、4/5的LDPC編碼。表4是所消耗的硬件資源,從表中我們看到所占用的硬件資源相對較少,說明該編碼器實現復雜度低,硬件資源消耗少。

表2 編碼器消耗的資源

4 仿真驗證

為了驗證編碼硬件實現的正確性,我們把編碼后的碼字序列,使用BPSK調制,加上高斯白噪聲,使用Matlab仿真譯碼,譯碼方法選用置信度傳播算法[14],也稱為和積算法,最大迭代次數設置為100。我們一般使用誤比特率和誤幀率來衡量信道編碼性能[15]。圖4和圖5分別是碼長為4096,碼率為4/5的LDPC碼的誤比特率和誤幀率的性能曲線。在 CCSDS標準中,也給出了相應的參考性能曲線,由此我們可知編碼算法和硬件實現都是正確的。從下面兩幅圖中,我們也可以看出CCSDS標準下的LDPC碼性能優越,在誤碼率為10-5時,所需信噪比僅為3.35 dB。

圖4 誤比特率性能曲線

圖5 誤幀率性能曲線

5 結 論

文中主要討論了CCSDS標準中,使用原模圖構造的低碼率LDPC的編碼方法和FPGA[16-17]的硬件實現。通過末位補零保障編碼器的穩定性,3種碼率使用一套觸發器以更好的節省硬件資源,從實驗結果可以看出,文中設計的編碼器具有高效的編碼增益性能,吞吐量高,糾錯能力很強,消耗硬件資源少,非常適用于深空通信。

[1]R.G.Gallager.Low-Density Parity Check Codes [M].Cambridge,MA:MIT Press,1963.

[2]ETSI EN 302 307 V1.1.1,Digital Video BroadcastingSatelliteSecondGeneration[S].European,2004.

[3]CCSDS 131.1-0-2.Low density parity check codes for use in near-Earth and deep space applications [S].Washington DC,USA,2007.

[4]D.J.C.MacKay,R.M.Neal.Near Shannon limit performance of low density parity check codes[J].Electronics Letters,1997,33(6):455-457.

[5]J.Thorpe.Low-density parity-check LDPC codes constructed from protographs[C]//IPN Progress Report,2003.

[6]D.Divsalar,S.Dolinar,C.Jones.Low-rate LDPC codes with simple protograph structure[J].IEEE ISIT[C].Adelaide,Australia,2005(9):1622-1626.

[7]肖揚.Turbo與LDPC編解碼及其應用[M].北京:人民郵電出版社,2011.

[8]Divsalar D,Dolinar S,Jones C.Construction of protographLDPC codeswith linearminimum distance[J].IEEE ISIT[C]//Seattle,USA,2006[T]:664-668.

[9]Abbasfar A,Divsalar D,Yao K.Accumulate Repeat Accumulate Codes[J].In Proceedings of the IEEE,2004(4):509-513.

[10]Divsalar D,Dolinar S,Thorpe J,et al.Construction LDPC codes from simple loop-free encoding modules[J].In Proceedings of the IEEE International Symposium on Information Theory,2006(6):664-668.

[11]李忠亮,夏國江.原模圖LDPC碼的準循環擴展和編碼算法[J].空間科學學報,2011,31(3):406-411.

[12]CCSDS.1310-B-2.TM Synchronization and channel coding[S].Washington D.C.,USA,2011.

[13]Y.Kou,S Lin,M Fossorier.Low density parity check codes based on finite geometries:a rediscovery and new results[J].IEEE Transactions Information Theory,2001,47(10):2711-2736.

[14]J.H.Chen,M.P.C.Fossorier.Near optimum universal belief propagation based decoding of lowdensity Parity check codes[J].IEEE Trans.Commun,2002,50(3):406-414.

[15]袁東風,張海剛.LDPC碼理論與應用[M].北京:人民郵電出版社,2008.

[16]郎寶華,單成剛,無刷直流電機的FPGA控制系統設計及仿真 [J].西安工業大學學報,2014(2):160-166.

[17]嚴明,李斌康,郭明安,等.高速光電探測器陣列實時信號處理系統 [J].現代應用物理,2014(4):316-321.

An encoder architecture for low-rate LDPC codes based CCSDS standard

GONG Yang-yang1,2,AN Jun-she1,ZHU Yan1
(1.National Space Science Center of the Chinese Academy of Science Department of Space Technology,Beijing 100190,China;2.University of Chinese Academy of Sciences,Beijing 100190,China)

An encoder architecture is proposed to implement 1/2,2/3,4/5 rates LDPC codes based on the Consultative Committee for Space Data Systems standards.According to block cycle characteristics of the generation matrix,we used a feedback shift register design this encoder for saving hardware cost.And we add zeros at the end of information to ensure the stability of the LDPC code encoder.

LDPC codes;protograph;CCSDS standard;feedback shift registers;deep-space application

TN911.22

:A

:1674-6236(2017)05-0057-04

2016-03-15稿件編號:201603191

龔楊陽(1991—),女,江西上饒人,碩士研究生。研究方向:數字信號與圖像處理。

猜你喜歡
碼長碼率譯碼
基于信息矩陣估計的極化碼參數盲識別算法
基于校正搜索寬度的極化碼譯碼算法研究
一種基于HEVC 和AVC 改進的碼率控制算法
基于FPGA的多碼率卷積編碼器設計與實現
基于狀態機的視頻碼率自適應算法
環Fq[v]/上循環碼的跡碼與子環子碼
從霍爾的編碼譯碼理論看彈幕的譯碼
LDPC 碼改進高速譯碼算法
多光譜圖像壓縮的聯合碼率分配—碼率控制方法
基于概率裁剪的球形譯碼算法
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合