王 博,章堅(jiān)武,包建榮,許曉榮
(杭州電子科技大學(xué)通信工程學(xué)院,浙江杭州310018)
低密度奇偶校驗(yàn)碼(Low Density Parity Check Code,LDPC)有逼近香農(nóng)極限的糾錯(cuò)性能、譯碼復(fù)雜度低、結(jié)構(gòu)靈活等優(yōu)點(diǎn)[1],受到了人們的廣泛關(guān)注,并成功應(yīng)用到了多個(gè)行業(yè)標(biāo)準(zhǔn),如第二代衛(wèi)星數(shù)字廣播中采用了BCH碼和LDPC碼級(jí)聯(lián)的方案[2]??臻g數(shù)據(jù)系統(tǒng)咨詢委員會(huì)(Consultative Committee for Space Data Systems,CCSDS)發(fā)布的131.1-0-2標(biāo)準(zhǔn)也推薦了2類 LDPC 碼[3]。LDPC 碼可分為隨機(jī)構(gòu)造的LDPC碼和結(jié)構(gòu)化的LDPC碼兩大類[4]。本文主要根據(jù)其編碼矩陣的結(jié)構(gòu),設(shè)計(jì)了一個(gè)碼率可選的多碼率并行編碼器,并進(jìn)行了分析和驗(yàn)證,說明了該方案具有資源少,算法簡(jiǎn)單,易工程實(shí)現(xiàn)等優(yōu)勢(shì)。
CCSDS推薦的深空通信的LDPC碼的生成矩陣是分塊循環(huán)的,故具有編碼復(fù)雜度低的優(yōu)點(diǎn)。該系列LDPC碼有1/2、2/3、3/4、4/5共4種碼率,各個(gè)碼率校驗(yàn)矩陣H的定義如下所示[3]:
式中,0M和IM分別是M階零矩陣和單位矩陣,Π1~Π26是置換矩陣。Πk在i行Πk(i)列有非零元素,i∈{0,…,M-1},在M階的置換矩陣Πk中,包括16個(gè)m的小矩陣塊(m=M/4)。其中,關(guān)于子矩陣階次M的可取值和Πk(i)的計(jì)算見CCSDS實(shí)驗(yàn)規(guī)范中的推薦標(biāo)準(zhǔn)[3]。獨(dú)立進(jìn)行校驗(yàn)矩陣計(jì)算,得出該系列碼具有兼容結(jié)構(gòu)的生成矩陣,且該矩陣具有準(zhǔn)循環(huán)結(jié)構(gòu)。即高碼率生成矩陣包含了低碼率生成矩陣。
本設(shè)計(jì)支持4種碼率、8路并行編碼。參數(shù)如下:M=512,分塊循環(huán)生成矩陣中子循環(huán)矩陣的維數(shù)m=128,對(duì)應(yīng)的4種碼率的參數(shù)如表1所示:
表1中,分塊矩陣的行、列數(shù)只包計(jì)算校驗(yàn)比特的那部分生成矩陣,生成矩陣具有系統(tǒng)形式G=[I W],分塊矩陣的行、列數(shù)也就是W中分塊矩陣的行、列數(shù)。
表1 各個(gè)碼率的具體參數(shù)表
編碼器的原理框圖如圖1所示。
圖1 8路并行編碼器原理框圖
在準(zhǔn)循環(huán)碼并行編碼時(shí),每個(gè)子循環(huán)矩陣能完成連續(xù)128(m=128)個(gè)信息比特的計(jì)算。所以,在此的串并轉(zhuǎn)換模塊不能簡(jiǎn)單地將連續(xù)進(jìn)入的8個(gè)信息比特并行輸出,而需特殊設(shè)計(jì)處理。在該模塊里需要設(shè)置8個(gè)存儲(chǔ)器,對(duì)應(yīng)8路并行數(shù)據(jù),且定義每1 024比特為1幀。串并模塊的具體工作原理是:信息比特的第1個(gè)128位數(shù)據(jù)按序存入第1個(gè)存儲(chǔ)器中,依次類推,直到第1幀的第8個(gè)128位存入第8個(gè)存儲(chǔ)器中,此時(shí)才可輸出并行信號(hào)。
并/串轉(zhuǎn)換模塊可以看成串/并轉(zhuǎn)換模塊的逆功能,同樣需要特殊設(shè)計(jì)。模塊里設(shè)置了8個(gè)大小相同的存儲(chǔ)器,并行輸入數(shù)據(jù)第1路到第8路分別存入第1個(gè)到第8個(gè)存儲(chǔ)器。當(dāng)存入1幀數(shù)據(jù)后,輸出使能信號(hào)置為高,表示可以輸出串行數(shù)據(jù),這時(shí)候依次輸出第1到第8個(gè)存儲(chǔ)器數(shù)據(jù)。
生成矩陣具有兼容結(jié)構(gòu),為了減少矩陣存儲(chǔ)量,只需存儲(chǔ)4/5碼率W矩陣中每行數(shù)據(jù)。為了便于8路并行編碼尋址和降低地址信號(hào)的控制復(fù)雜度,數(shù)據(jù)分8個(gè)ROM存儲(chǔ),這樣每個(gè)ROM位寬1 024位,深度為4(32/8=4),因此可用2位地址表示。ROM的存儲(chǔ)結(jié)構(gòu)如表2所示。表2中每個(gè)ROM下的數(shù)字代表4/5碼率W矩陣中行號(hào)為該數(shù)字的數(shù)據(jù)。1/2碼率的生成矩陣只用到了4/5碼率W矩陣中最后8行數(shù)據(jù),因此1/2碼率的W矩陣起始地址是從每個(gè)ROM的“11”開始的,對(duì)應(yīng)第25行到32行數(shù)據(jù)。同理,2/3碼率的起始地址是“10”,3/4碼率的起始地址為“01”,4/5碼率起始地址是“00”。經(jīng)過這樣設(shè)計(jì)后,地址數(shù)據(jù)的控制是相當(dāng)簡(jiǎn)單的,不同碼率只需賦于不同起始地址即可,降低了系統(tǒng)實(shí)現(xiàn)復(fù)雜度。
表2 存儲(chǔ)ROM地址分配
為了進(jìn)一步降低系統(tǒng)實(shí)現(xiàn)復(fù)雜度,減少FPGA資源的利用,編碼時(shí)二進(jìn)制矩陣乘法運(yùn)算可以化為簡(jiǎn)單的二進(jìn)制異或運(yùn)算,而不需使用乘法器。編碼開始首先將校驗(yàn)位寄存器初始化為零,然后在每來8個(gè)并行信息比特時(shí),將8個(gè)信息比特中非零元素對(duì)應(yīng)的W矩陣行數(shù)據(jù)和校驗(yàn)比特寄存器進(jìn)行模二和的累加運(yùn)算,即異或運(yùn)算,結(jié)果存入校驗(yàn)比特寄存器中,在一個(gè)碼字中所有k個(gè)信息比特到來后,校驗(yàn)比特寄存器異或的結(jié)果就是該碼字的校驗(yàn)位了,可以開始輸出該碼字的檢驗(yàn)位了。
編碼控制模塊的仿真波形如圖3所示。
圖2 編碼控制模塊的仿真波形
在圖2中rate為碼率選擇信號(hào),由于篇幅有限,這里只給出4/5碼率仿真圖。Encode_En為編碼使能信號(hào),高電平時(shí)編碼,編碼完成后置為低電平,輸出校驗(yàn)位。在圖2中開始時(shí)Encode_En為1,輸出dout的碼字與信息比特din完全相同,只是相差一個(gè)時(shí)鐘周期。
硬件實(shí)現(xiàn)平臺(tái)采用Xilinx公司的Virtex-6(XC6VLX240T)芯片,該芯片資源豐富,完全能滿足多碼率并行編碼資源的消耗。LDPC碼編碼器硬件資源主要消耗在生成矩陣存儲(chǔ)單元和編碼電路所占用邏輯資源上[5],如表3所示為ISE 13.2開發(fā)環(huán)境給出的資源利用報(bào)告。
表3 芯片的資源使用情況
由表3可見,編碼器在占用較少資源的情況下,實(shí)現(xiàn)了4種碼率的8路并行編碼,達(dá)到設(shè)計(jì)要求。
本文對(duì)CCSDS標(biāo)準(zhǔn)中適用于深空通信的系列LDPC碼,設(shè)計(jì)了一個(gè)能夠?qū)崿F(xiàn)可選碼率的多碼率(4種碼率)并行通用編碼器,增強(qiáng)了系統(tǒng)的適用性,提高了編碼數(shù)據(jù)速率,而具有一定的實(shí)用價(jià)值。從表3可見XC6VLX240T芯片資源豐富,因此還可用更高的并行路數(shù)以提高系統(tǒng)吞吐量。
[1] Chung SY.On the Design of Low Density Parity Check Codes Within 0.0045dB of the Shannon Limit[J].IEEECommun Letters,2001,5(2):58 -60.
[2] DVB-S2 Standard Draft ETSIEN 302 307 V1.1.1[S].2004.
[3] CCSDS.Low Density Parity Check Codes for Use in Near Earth and Deep Space Applications[S].CCSDS 131.1-O-2,Orange Book.Issue 2,2007.
[4] Macky D JC.Good error-correcting codes based on very sparse matrices[J].IEEE Trans on Inform Theory,1999,45(2):399-432.
[5] Zhang Huxing,Yu Hongyang.Multi-rate QC-LDPC Encoder[J].IEEE Trans on Inform Theory,2009,(4):1 -4.