文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2014)09-0101-04
LDPC(Low Density Parity Check Code)碼是一種性能優(yōu)異的線性分組碼,其性能非常接近于Shannon極限且具有很強(qiáng)的糾錯(cuò)能力。但自LDPC碼被發(fā)明以來就存在一個(gè)阻礙其發(fā)展的巨大障礙。眾所周知,一般的線性分組碼是通過其生成矩陣實(shí)現(xiàn)編碼。而LDPC碼的校驗(yàn)矩陣雖然是稀疏的,但生成矩陣卻不是稀疏矩陣。由于LDPC碼的編碼長度都很長,因此復(fù)雜的生成矩陣為編碼帶來了巨大困難。后來,人們利用其校驗(yàn)矩陣的特點(diǎn)實(shí)現(xiàn)了快速編碼。即便如此,當(dāng)碼長很長時(shí)編碼所需的存儲(chǔ)空間仍然非常龐大,學(xué)者們也在不斷探索高性能的編碼方法。
目前,LDPC碼已開始逐漸應(yīng)用于空間通信、光纖通信、數(shù)字視頻和音頻廣播等領(lǐng)域。LDPC碼的編碼標(biāo)準(zhǔn)主要有:DVB-S(DigitalVideoBroadcasting-Sa-tellite)標(biāo)準(zhǔn)、DVB-S2[1]標(biāo)準(zhǔn)、CCSDS(Consultative Committee for Space Data Systems)標(biāo)準(zhǔn)[2]、GB20600標(biāo)準(zhǔn)[3]、IEEE802.16e標(biāo)準(zhǔn)[4]等。LDPC編碼已經(jīng)在IEEE802.16e標(biāo)準(zhǔn)中作為專用傳輸碼使用。DVB-S2是新一代數(shù)字衛(wèi)星廣播的標(biāo)準(zhǔn),與DVB-S標(biāo)準(zhǔn)相比,其傳輸容量增益可達(dá)30%。CCSDS標(biāo)準(zhǔn)中的LDPC碼包括近地和深空應(yīng)用。GB20600標(biāo)準(zhǔn)中的LDPC碼主要用于數(shù)字電視地面廣播系統(tǒng)。本文主要研究IEEE 802.16e標(biāo)準(zhǔn)中LDPC碼快速編碼的實(shí)現(xiàn)方法,并將其與DVB-S2標(biāo)準(zhǔn)的LDPC縮短碼的性能進(jìn)行比較。
1 IEEE802.16e標(biāo)準(zhǔn)中的LDPC碼校驗(yàn)矩陣的構(gòu)造方式
IEEE802.16e標(biāo)準(zhǔn)中定義的LDPC碼是一種準(zhǔn)循環(huán)的非規(guī)則LDPC碼,共有4種速率[4]。每一種速率都有相應(yīng)的校驗(yàn)矩陣H。Hb是H的基校驗(yàn)矩陣,Hb經(jīng)過擴(kuò)展后可得到H,Hb的尺寸為mb×nb,具體構(gòu)成見式(1)。nb的長度固定為24,mb的長度根據(jù)碼速率不同而異。Hb1是一個(gè)mb×(nb-mb)矩陣。Hb2是一個(gè)mb×mb矩陣。q稱為擴(kuò)展系數(shù),Hb可通過mb·q×nb·q的擴(kuò)展方式獲得校驗(yàn)矩陣H。
Hb1中的元素由-1或非負(fù)整數(shù)組成,若為-1,則校驗(yàn)矩陣H相應(yīng)的位置是全0矩陣;若為非負(fù)整數(shù),則校驗(yàn)矩陣H相應(yīng)的位置是單位矩陣E進(jìn)行非負(fù)整數(shù)次右移所得的矩陣。Hb2的第一列中h(1)、h(r)、h(mb)為非負(fù)整數(shù),且h(1)=h(mb)。r的取值范圍為2≤r≤mb-1,其具體值由IEEE802.16e標(biāo)準(zhǔn)指定。Hb2除第一列外,其余部分構(gòu)成準(zhǔn)雙對(duì)角線結(jié)構(gòu),兩條準(zhǔn)對(duì)角線上的元素為0,其他位置為-1。Hb2的元素構(gòu)成見式(2)。
根據(jù)IEEE802.16e標(biāo)準(zhǔn),基矩陣Hb的擴(kuò)展系數(shù)q共有19種取值,分別對(duì)應(yīng)19種碼長,最小為24,最大為96,具體的擴(kuò)展規(guī)則見參考文獻(xiàn)[4]。設(shè)基校驗(yàn)矩陣中處于位置(i,j)的元素為q(i,j)。以1/2速率的LDPC碼為例,當(dāng)q=96時(shí),1/2速率的LDPC碼的基校驗(yàn)矩陣為式(3),q(i,j)的更新方法見式(4),表示向下取整。
2 IEEE802.16e標(biāo)準(zhǔn)中LDPC碼的FPGA實(shí)現(xiàn)
2.1 LDPC碼的快速編碼算法
將線性方程組式(5)中的各行都加在第一行,可推出:
2.2 快速編碼算法的FPGA實(shí)現(xiàn)
以q=24、速率為1/2的LDPC碼為例,其基校驗(yàn)矩陣根據(jù)式(3)、(4)計(jì)算可得到式(10),其中mb=nb-mb=kb=12。
根據(jù)式(6)可推得:
設(shè)輸入序列s的長度為mb·q,每個(gè)時(shí)鐘上升沿輸入的位寬為q,即每次輸入為si。可以定義kb個(gè)寄存器ZH,每個(gè)寄存器的位數(shù)為q位。利用上述寄存器來存儲(chǔ)輸入序列與基矩陣每一列的乘積,這個(gè)乘積在每個(gè)時(shí)鐘周期進(jìn)行更新。在更新時(shí)需計(jì)算當(dāng)前值與乘積值的異或。在校驗(yàn)位計(jì)算中經(jīng)常需要計(jì)算的乘積,
表示基校驗(yàn)矩陣Hb1中位于(i,j)位置的元素。由于該元素表示單位矩陣的移位,所以其與輸入數(shù)據(jù)序列sj的乘積等效為輸入數(shù)據(jù)序列的循環(huán)移位。當(dāng)單位矩陣是右移時(shí),乘積等效為輸入序列的循環(huán)右移;當(dāng)單位矩陣是左移時(shí),乘積等效為輸入序列的循環(huán)左移。利用這個(gè)特性可以大大簡化序列與矩陣之間的乘法運(yùn)算。圖1表示編碼的詳細(xì)計(jì)算流程。在序列s12輸入后,每個(gè)ZHi(i=1,2…12)寄存器中就會(huì)得到
將上述編碼方法用HDL在Quartus II中實(shí)現(xiàn),并分別在EP2C70F896C6、EP2S15484C3上實(shí)現(xiàn)綜合和布線。邏輯資源占用情況如表1所示。對(duì)于不同的器件,消耗的邏輯資源各異,同時(shí)布線后邏輯單元的延遲也不盡相同。使用Stratix II系列的器件相比Cyclone II系列的器件的時(shí)鐘頻率提高了約50%??梢灶A(yù)見,如果提升輸入和輸出的位寬,邏輯單元間附加延遲會(huì)導(dǎo)致時(shí)鐘頻率略有降低,但由于并行度的增加,將顯著提升數(shù)據(jù)吞吐速率。
在EP2C70F896C6上的時(shí)序仿真如圖2所示。在仿真開始前首先復(fù)位使系統(tǒng)進(jìn)入初始狀態(tài)。工作時(shí)鐘為50 MHz,輸入序列s1=FF0000,s2=s3=…=s11=000000,s12=FFFFFF。輸出的校驗(yàn)碼序列為p1=F87C7B,p2=F0F8F7,…。在原碼輸出與校驗(yàn)位輸出之間有一個(gè)等待周期。與參考文獻(xiàn)[5]相比,考慮到預(yù)處理的時(shí)間以及輸入和輸出均需要大長度高速串/并、并/串轉(zhuǎn)換,實(shí)際的系統(tǒng)性能會(huì)有一定程度下降。與參考文獻(xiàn)[5]、[6]相比,本設(shè)計(jì)利用高速狀態(tài)機(jī)實(shí)現(xiàn),具有實(shí)時(shí)性強(qiáng),不需要進(jìn)行大長度串/并、并/串轉(zhuǎn)換的優(yōu)點(diǎn),而且也不需要對(duì)基矩陣進(jìn)行預(yù)處理和分割,對(duì)輸入/輸出的制約小,具有較高的性能。
3 IEEE802.16e和DVB-S2標(biāo)準(zhǔn)ldpc碼的性能比較
本設(shè)計(jì)實(shí)現(xiàn)了q=24下,1/2速率的IEEE802.16e標(biāo)準(zhǔn)的LDPC碼的快速編碼。根據(jù)圖3左圖所示,在q=24時(shí)其HT·H結(jié)果中只有主對(duì)角線上的元素大于1,其他元素均小于等于1。根據(jù)參考文獻(xiàn)[7],本校驗(yàn)矩陣中無4環(huán),具有良好的譯碼性能。DVB-S2標(biāo)準(zhǔn)的LDPC碼分為長碼和短碼兩種,長度分別為64 800 bit和16 200 bit。由于碼長較長,LDPC碼編解碼器實(shí)現(xiàn)具有相當(dāng)難度,因此將本設(shè)計(jì)與DVB-S2標(biāo)準(zhǔn)的LDPC縮短碼比較,縮短方法見參考文獻(xiàn)[8]。由于長度24·q=576的IEEE802.16e標(biāo)準(zhǔn)LDPC碼沒有適當(dāng)?shù)膓1值可使DVB-S2縮短碼的碼長與之相等,取q1=15,速率為1/2,則DVB-S2縮短碼的碼長為n=600。在高斯白噪聲信道中進(jìn)行性能仿真。仿真信道的調(diào)制方式為BPSK,采用BP譯碼算法,最大迭代次數(shù)為500次。對(duì)于200幀隨機(jī)數(shù)據(jù),每幀長度分別為288 bit和300 bit,分別進(jìn)行編碼調(diào)制和接收譯碼。最后的仿真曲線如圖4所示??梢娫诖a長基本相同的條件下,IEEE802.16e標(biāo)準(zhǔn)的LDPC碼較DVB-S2縮短碼具有優(yōu)異的BER性能。圖3右圖是n=600的情況下DVB-S2縮短碼的HT·H數(shù)值分布。由圖中可見有大量4環(huán)位于校驗(yàn)矩陣H中,這也是其BER曲線中存在誤碼平臺(tái)的原因。
本文對(duì)IEEE802.16e標(biāo)準(zhǔn)的LDPC碼的快速編碼算法進(jìn)行了研究,并在FPGA上實(shí)現(xiàn)了q=24、n=576、速率為1/2的LDPC碼快速編碼器。時(shí)序仿真的結(jié)果顯示該編碼器具有良好的實(shí)時(shí)編碼性能,資源占用少,性能優(yōu)良。同時(shí),該編碼器具有良好的可擴(kuò)展性。當(dāng)q不同時(shí),只要增加并行輸入輸出的位寬和內(nèi)部寄存器位數(shù)即可靈活改變碼長。其誤碼率在相同的信噪比下優(yōu)于長度相近的DVB-S2標(biāo)準(zhǔn)的LDPC縮短碼。因此,該編碼器具有良好的實(shí)用價(jià)值。
參考文獻(xiàn)
[1] DVB-S2 standard draft ETSI EN 302 307 V1.1.1[S].2004.
[2] CCSDS131.1-0-2.Low density parity check codes for use in near-earth and deep space applications[S].CCSDS,2007.
[3] 中華人民共和國國家標(biāo)準(zhǔn).數(shù)字電視地面廣播標(biāo)準(zhǔn)(GB20600)[S].2006.
[4] IEEE P802.16e/D8[S].IEEE Standard for Local and Metropo-litan Area Networks Part 16:Air Interface for Fixed and Mobile Broadband Wireless Access Systems,May 2005.
[5] 李超,石磊.基于IEEE802.16e標(biāo)準(zhǔn)的LDPC編碼器設(shè)計(jì)與實(shí)現(xiàn)[J].電子科技,2011,24(6):40-42.
[6] 俞華梁,毛志剛,張函雋.IEEE802.16e標(biāo)準(zhǔn)的LDPC編碼器設(shè)計(jì)及硬件實(shí)現(xiàn)[J].信息技術(shù),2008(4):63-66.
[7] XIAO Y,LEE M H.Low complexity MIMO-LDPC CDMA systems over multipath channels[J].IEICE Trans.,2006,89(5):1713-1717.
[8] 肖揚(yáng).Turbo與LDPC編解碼及其應(yīng)用[M].北京:人民郵電出版社,2010.