《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于IEEE802.1 6e標(biāo)準(zhǔn)的LDPC編碼器設(shè)計(jì)與實(shí)現(xiàn)
基于IEEE802.1 6e標(biāo)準(zhǔn)的LDPC編碼器設(shè)計(jì)與實(shí)現(xiàn)
Icbuy
Icbuy
摘要: 如何構(gòu)造和改進(jìn)LDPC碼成為目前研究的熱點(diǎn),而準(zhǔn)循環(huán)低密度奇偶校驗(yàn)碼的發(fā)現(xiàn),為LDPC編譯碼的硬件實(shí)現(xiàn)提供了可能。QC—LDPC碼具有更好的結(jié)構(gòu)性與隨機(jī)性,在保證碼的信道性能不變的前提下,極大的簡化了編碼和譯碼電路,是目前實(shí)現(xiàn)LDPC編譯碼器的主流算法。正是由于這些優(yōu)勢,LDPC碼已被WIMAX(IEEE802.16e)、WLAN(IEEE802.11n)、DVB-T等標(biāo)準(zhǔn)選定為信道編碼的備選編碼,并且極有可能成為第四代無線通信的編碼標(biāo)準(zhǔn)。
Abstract:
Key words :
 

  1962年Gallager在對糾錯編碼的研究中提出了LDPC碼,但是由于當(dāng)時的硬件條件不足,直到90年代末隨著超大規(guī)模集成電路的推廣才真正為人們所重視。雖然在高斯信道中LDPC(Low Density Parity Check,低密度奇偶校驗(yàn)碼)碼相比其他編碼方法具有更優(yōu)良的性能,但是由于其逼近香農(nóng)限的性能是在較長的碼長情況下才能得到體現(xiàn),使得實(shí)現(xiàn)起來具有相當(dāng)大的復(fù)雜度,即便是當(dāng)今的超大規(guī)模集成電路也很難直接實(shí)現(xiàn)較長碼長的編碼和解碼。于是如何構(gòu)造和改進(jìn)LDPC碼成為目前研究的熱點(diǎn),而準(zhǔn)循環(huán)低密度奇偶校驗(yàn)碼的發(fā)現(xiàn),為LDPC編譯碼的硬件實(shí)現(xiàn)提供了可能。QC—LDPC碼具有更好的結(jié)構(gòu)性與隨機(jī)性,在保證碼的信道性能不變的前提下,極大的簡化了編碼和譯碼電路,是目前實(shí)現(xiàn)LDPC編譯碼器的主流算法。正是由于這些優(yōu)勢,LDPC碼已被WIMAX(IEEE802.16e)、WLAN(IEEE802.11n)、DVB-T等標(biāo)準(zhǔn)選定為信道編碼的備選編碼,并且極有可能成為第四代無線通信編碼標(biāo)準(zhǔn)。

  1 IEEE802.16e標(biāo)準(zhǔn)中對LDPC碼的規(guī)定

  IEEE802.16e標(biāo)準(zhǔn)中LDPC碼的校驗(yàn)矩陣為

a.JPG

  其中,Pij被定義為z×z的單位變換矩陣或零矩陣,單位變換矩陣是通過對單位矩陣循環(huán)右移得到的。LDPC碼是由的效驗(yàn)矩陣日定義,其中m是校驗(yàn)位的長度,n是碼長的長度?;揪仃囍械囊莆患瘂p(i,j)}是用來決定相同碼率不同碼長的移位大小,對于碼率1/2、3/4A、3/4B、2/3B和5/6的各種碼,p(i,J)p(i,j)由式(2)決定。

b.JPG

  其中,[x]表示不大于x的最大整數(shù)。([x]為取整函數(shù))。

  在IEEE802.16e標(biāo)準(zhǔn)中各種碼長和碼率的校驗(yàn)矩陣H都是由基本矩陣Hb膨脹得到的,每個基本矩陣有24列,膨脹因子z=n/24(n為碼長)。

  IEEE802.16e標(biāo)準(zhǔn)支持碼長從576到2 304共19種碼長。

  IEEE802.16e中對于不同碼率的LDPC碼給定了不同的基本矩陣,以碼率為1/2的碼為例,基本矩陣Hb如圖1所示。

c.JPG

圖1中-1為全零陣;0為單位陣,其余標(biāo)號為相應(yīng)右移次數(shù)的單位陣。

  2 基于IEEE802.16e的LDPC碼的快速編碼算法

  高編碼復(fù)雜度是LDPC碼需要解決的主要問題,LDPC編碼器直接實(shí)現(xiàn)具有和碼長成二次方的時間復(fù)雜度,而Turbo碼可以在線性時間內(nèi)編碼。于是如何使得LDPC碼能夠在與碼長成線性時間內(nèi)編碼就成為一個非常關(guān)鍵的問題。

  IEEE802.16e標(biāo)準(zhǔn)中規(guī)定的LDPC碼是一種結(jié)構(gòu)性碼,其算法大大的降低了LDPC碼的編碼復(fù)雜度。但是如果采用傳統(tǒng)的編碼方法,其編碼復(fù)雜度仍令人難以接受。校驗(yàn)矩陣H得到的生成矩陣是一個稀疏矩陣,所以可以根據(jù)校驗(yàn)矩陣H的稀疏性以及準(zhǔn)循環(huán)特性來進(jìn)行快速編碼。

  IEEE802.16e標(biāo)準(zhǔn)中給出了3種LDPC快速編碼的算法。由于第3種編碼方式是最常用的,而且已經(jīng)比較成熟,現(xiàn)只對第3種編碼方式進(jìn)行說明。

  為了說明效驗(yàn)矩陣結(jié)構(gòu),現(xiàn)將其分割為6個子矩陣表示

d.JPGe.JPG

  3 LDPC編碼算法的實(shí)現(xiàn)

  根據(jù)上述編碼算法,F(xiàn)PGA程序?qū)崿F(xiàn)了0.5碼率,碼長為2 304 bit,信息位為1 152 bit數(shù)據(jù)流的編碼。每幀送入1 152 bit原始數(shù)據(jù)流,經(jīng)過編碼后產(chǎn)生1 152 bit效驗(yàn)位,因?yàn)槭窍到y(tǒng)碼,所以將原始信息位后緊跟效驗(yàn)位就可以合并成所要發(fā)送的編碼碼流。編碼器的硬件總體結(jié)構(gòu)如圖2所示。

f.JPG

  從圖2可以看出,LDPC編碼器中主要包含矩陣乘法模塊,前項(xiàng)置換模塊,矢量加法模塊,以及生成碼字模塊。現(xiàn)對矩陣乘法模塊,前項(xiàng)置換模塊和碼字生成模塊進(jìn)行介紹。

  (1)矩陣乘法器模塊:主要由循環(huán)移位器和模二加法器組成。由于FPGA運(yùn)算的并行特點(diǎn),編碼器在計(jì)算矩陣乘法時可按行并行操作。輸入的原始信息比特流與效驗(yàn)矩陣Hb的每一行進(jìn)行相乘運(yùn)算時,首先按照RAM中存儲的非零列號找到相對應(yīng)的信息位中的矢量,并對該矢量進(jìn)行循環(huán)右移,循環(huán)右移的次數(shù)依照IEEE802.11e標(biāo)準(zhǔn)的規(guī)定進(jìn)行控制,然后把這一行中的所有非零元素和信息位相乘所得結(jié)果做一次異或操作,這就是矩陣的一行與信息位相乘的結(jié)果。該過程可以并行執(zhí)行,同時完成矩陣中每一行與信息位的相乘運(yùn)算。

  (2)前項(xiàng)置換器模塊:IEEE802.16e標(biāo)準(zhǔn)中規(guī)定,LDPC碼的效驗(yàn)矩陣r是雙對角矩陣,所以對于乘矩陣T的逆的操作采用前項(xiàng)置換方法,其原理如下:

g.JPG

  所以在FPGA中進(jìn)行乘矩陣r的逆的計(jì)算,不必進(jìn)行求逆和相乘運(yùn)算,僅用異或運(yùn)算就能完成。

  (3)生成碼字模塊:主要作用是將原始信息位與效驗(yàn)位p1和p2合成。在IEEE802.16e標(biāo)準(zhǔn)中規(guī)定LDPC碼為系統(tǒng)碼,所以將原始信息位與效驗(yàn)位p1和p2按順序依次拼接起來,就是實(shí)際編碼后數(shù)據(jù)。

  4 FPGA仿真結(jié)果分析

  在QuartusⅡ軟件下進(jìn)行編譯和綜合,器件選擇為Altera公司STRATIXII系列的EP2S90F1020C3,整個LDPC編碼器最高工作時鐘214 MHz,邏輯資源占用3 027 LE。LDPC碼編碼仿真結(jié)果如圖3所示。

h.jpg

  code_rden:編碼器使能標(biāo)志,高電平說明LDPC編碼器正在工作。

  matlab_code:LDPC編碼的Matlab仿真結(jié)果輸出。

  ldpc_code:LDPC編碼的FPGA仿真結(jié)果輸出。

  result_out:比對Matlab與FPGA仿真結(jié)果,輸出碼流進(jìn)行相減一直為零,說明仿真結(jié)果正確。

  5 結(jié)束語

  文中分析了基于IEEE802.16e標(biāo)準(zhǔn)的LDPC碼的校驗(yàn)矩陣H,然后在QuartusⅡ平臺下根據(jù)分塊矩陣的快速編碼算法設(shè)計(jì)了一種編碼器,滿足IEEE802.16e標(biāo)準(zhǔn)的碼長為2 304,碼率為1/2的LDPC碼的編碼要求,并仿真驗(yàn)證了LDPC編碼器的性能。仿真結(jié)果證明通過合理的構(gòu)造LDPC碼的校驗(yàn)矩陣以及選擇合適的編碼算法,可以有效降低編碼復(fù)雜度,并實(shí)現(xiàn)了線性編碼。


 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。