趙希+?,摤?劉玉橋
摘 要 本文在分析LDPC碼的技術(shù)優(yōu)勢(shì)入手,在研究LDPC碼及其譯碼算法的基礎(chǔ)上,引入概率測(cè)度的概念,詳細(xì)概率測(cè)度的和積譯碼算法下的和積譯碼算法,并應(yīng)用高斯信道上進(jìn)行了性能仿真。
關(guān)鍵詞 LDPC碼 概率測(cè)度 和積譯碼算法
中圖分類號(hào):TN911 文獻(xiàn)標(biāo)識(shí)碼:A
LDPC碼(低密度校驗(yàn)碼)又稱哥拉(Gallager)碼,它屬于線性分組碼,現(xiàn)已經(jīng)研制開(kāi)發(fā)出相應(yīng)的LDPC碼編譯碼器,被廣泛應(yīng)用于網(wǎng)絡(luò)數(shù)據(jù)傳輸、光纖通信、深空通信、圖像傳輸以及無(wú)線通信系統(tǒng)、磁記錄、用戶數(shù)據(jù)線(DSL)、數(shù)字圖像水印等技術(shù)領(lǐng)域。
1 LDPC碼的技術(shù)優(yōu)勢(shì)
LDPC碼是一種線性分組碼,是目前最有發(fā)展前景的糾錯(cuò)編碼技術(shù)之一。其主要有以下技術(shù)優(yōu)點(diǎn):
(1)吞吐量大。LDPC碼在給定誤碼率情況下的信息傳輸速率可以非常接近Shannon限,對(duì)于一些中長(zhǎng)碼長(zhǎng)的LDPC碼,其糾錯(cuò)性能甚至已經(jīng)超過(guò)Turbo碼。
(2)實(shí)現(xiàn)簡(jiǎn)單。LDPC碼譯碼算法,是一種基于稀疏矩陣的并行迭代譯碼算法,運(yùn)算量低、結(jié)構(gòu)并行、硬件實(shí)現(xiàn)容易;
(3)方便靈活。LDPC碼碼率可以任意構(gòu)造,靈活性大,不需通過(guò)打孔來(lái)實(shí)現(xiàn)高碼率;
(4)應(yīng)用廣泛。LDPC碼譯碼器具有更低的錯(cuò)誤平層,誤碼率要求苛刻的場(chǎng)合同樣適用。
2 LDPC碼及其譯碼算法
LDPC碼由稀疏奇偶校驗(yàn)矩陣H的零空間定義。所謂“稀疏性”指的是矩陣H中包含0的個(gè)數(shù)遠(yuǎn)大于1的個(gè)數(shù),而“低密度”指的是矩陣H中含1的密度很低。假設(shè)H矩陣是MN,且滿秩,即LDPC碼長(zhǎng)為N,校驗(yàn)位長(zhǎng)為M,信息位長(zhǎng)為K=N€HaM,碼率為K/N,H矩陣每行中1的個(gè)數(shù)稱為行權(quán)重,每列重1的個(gè)數(shù)成為列權(quán)重。H矩陣可用二分圖表示,碼字V=(v1,v2,…,vN),可表示為一組變量節(jié)點(diǎn){vi:i=1,2,…,N};校驗(yàn)集可表示為一組校驗(yàn)節(jié)點(diǎn)。{Cj:j=1,2,…,M}當(dāng)H矩陣中的hij=1時(shí),表示節(jié)點(diǎn)vi到Cj由一條有向邊連接。
令集合N(v)表示變量節(jié)點(diǎn)受限范圍,N(c)表示校驗(yàn)節(jié)點(diǎn)受限范圍。迭代過(guò)程中,每個(gè)變量節(jié)點(diǎn)向與其相連的校驗(yàn)節(jié)點(diǎn)發(fā)送變量消息Qavc;每個(gè)校驗(yàn)節(jié)點(diǎn)向與其相連的變量節(jié)點(diǎn)發(fā)送校驗(yàn)消息Racv對(duì)二元碼而言,a∈{0,1})。其中變量消息Qavc是在已知與變量節(jié)點(diǎn)相連的其它校驗(yàn)節(jié)點(diǎn)發(fā)送的校驗(yàn)消息{Rc'∈N(v)\c}的前提下,變量節(jié)點(diǎn)為a的條件概率;Racv是在已知變量節(jié)點(diǎn)取值為a以及與校驗(yàn)節(jié)點(diǎn)相連的其它變量消息{Qc'∈N(v)\v}的前提下,校驗(yàn)關(guān)系成立的條件概率。算法的每輪迭代過(guò)程,都是一次消息處理的循環(huán):變量節(jié)點(diǎn)處理和傳送變量消息,接著是校驗(yàn)節(jié)點(diǎn)處理和傳送校驗(yàn)消息。
這種迭代算法中很重要的一點(diǎn)是某節(jié)點(diǎn)u沿某邊e發(fā)送的消息與上次u從e接收到的消息無(wú)關(guān),而決定于和u相連的其它邊上接收的信息。這就保證了在任一條邊上,只有外來(lái)消息傳遞,這是和積譯碼算法的重要特性。
3基于概率測(cè)度的和積譯碼算法
這種迭代算法中很重要的一點(diǎn)是某節(jié)點(diǎn)“沿某邊e發(fā)送的消息與上次u從e接收到的消息無(wú)關(guān)”,而決定于和“相連的其它邊上接收的信息”。這就保證了在任一條邊上,只有外來(lái)消息傳遞,這是和積譯碼算法的重要特性。
下面以AWGN信道為例,假設(shè)噪聲均值為0,方差為€%l2,接收變量為yi),采用BPSK調(diào)制:,a→€%o(a):0→1,1→-1,給出概率測(cè)度下的和積譯碼算法:
(1)初始化。根據(jù)校驗(yàn)矩陣H,若hi=1,即變量節(jié)點(diǎn)vi和校驗(yàn)節(jié)點(diǎn)cj相連,定義變量消息
(5)譯碼判決。一輪迭代之后,根據(jù)每個(gè)變量節(jié)點(diǎn)Q0v的和Q1v做出判決:若Q0v>0.5,則 = 0;否則 = 1。
由此可以得到對(duì)發(fā)送碼字的一個(gè)估計(jì)=[v1,v2…vN],再計(jì)算伴隨式S = vHT,如果S = 0那么認(rèn)為譯碼成功,結(jié)束迭代過(guò)程,否則繼續(xù)迭代直至達(dá)到預(yù)定的最大迭代次數(shù)。
4性能仿真
應(yīng)用概率測(cè)度和積譯碼算法在高斯信道上進(jìn)行性能仿真。仿真采用的是1/2碼率的(1024,3,6)規(guī)則LDPC碼。校驗(yàn)矩陣中無(wú)圍長(zhǎng)為4的環(huán),譯碼的最大迭代次數(shù)設(shè)置為100次。在Eb/N0≤3dB的情況下,誤碼率可以達(dá)到10-9以下,并且沒(méi)有出現(xiàn)誤碼平層。
參考文獻(xiàn)
[1] 田耘,徐文波.Xilinx FPGA開(kāi)發(fā)實(shí)用例程[M].北京:清華大學(xué)出版社,2008.
[2] 王新梅,肖國(guó)鎮(zhèn).糾錯(cuò)碼——原理與方法[M].西安電子科技大學(xué)出版社,2001.
[3] A.R.Calderbank,“The art of signaling: Fifty years of coding theory,” IEEE Trans.IT, vol.44, No.6,Oct.1998.