王志娜,肖 旻,王 琳
(1.重慶郵電大學(xué)重慶市移動(dòng)通信重點(diǎn)實(shí)驗(yàn)室,重慶 400065;2.廈門(mén)理工學(xué)院電子工程系,福建廈門(mén) 361005;3.廈門(mén)大學(xué)通信工程系,福建廈門(mén) 361005)
通信系統(tǒng)業(yè)務(wù)的多樣性、信道的時(shí)變性、物理層技術(shù)的靈活性需要信道編碼碼率能夠自適應(yīng)地根據(jù)信道環(huán)境做出相應(yīng)的調(diào)整。采用碼率自適應(yīng)的編碼技術(shù),可以在保證系統(tǒng)服務(wù)質(zhì)量的前提下,根據(jù)信道的狀況及時(shí)調(diào)整碼率,從而提高通信系統(tǒng)的頻譜利用率。
低密度奇偶校驗(yàn)碼[1](low density parity check code,LDPC)具有良好的距離特性、小的誤碼率和較低的譯碼復(fù)雜度,被認(rèn)為是迄今為止糾錯(cuò)性能最好的碼。2003年,美國(guó)國(guó)家航空航天局的空氣動(dòng)力實(shí)驗(yàn)室(JPL)首次提出了原模圖 LDPC碼[2](protograph LDPC codes),彌補(bǔ)了傳統(tǒng)LDPC碼編碼復(fù)雜度較高的不足。作為一種原模圖LDPC碼,AR4JA碼[3](accumulate repeat-4 jagged-accumulate code)最大的優(yōu)勢(shì)就是錯(cuò)誤地板極低。該碼的性能優(yōu)于絕大多數(shù)的一般LDPC碼和其他原模圖LDPC碼,2006年由太空數(shù)據(jù)系統(tǒng)咨詢委員會(huì)(consultative committee for space date systems,CCSDS)推薦給 NASA 作為深空通信的標(biāo)準(zhǔn)碼型。鑒于原模圖LDPC碼,尤其是AR4JA碼的各種優(yōu)勢(shì),對(duì)原模圖LDPC碼率自適應(yīng)的研究有著很廣闊的前景。
目前,實(shí)現(xiàn)碼率自適應(yīng)的方法主要有刪余和擴(kuò)展兩種。刪余可以利用同一對(duì)編譯碼器對(duì)不同碼率的碼進(jìn)行編譯碼,是最常用的一種碼率自適應(yīng)方法。2006年,J.Ha等[4]借鑒“恢復(fù)”的概念,定義了刪余變量節(jié)點(diǎn)(punctured variable node,PVN)的“恢復(fù)級(jí)別”。PVN的恢復(fù)級(jí)別是影響刪余碼型性能的重要因素,之后,對(duì)刪余算法的研究實(shí)質(zhì)上都是基于PVN 的恢復(fù)級(jí)別進(jìn)行的[5-8]。然而,J.Li等[9]表明,隨著刪余碼率的增加,碼的性能離香農(nóng)限的距離增大,僅僅依靠刪余并不能在較大碼率范圍內(nèi)得到好性能的碼。為了得到更大范圍變化的碼率,通常將刪余和擴(kuò)展結(jié)合起來(lái)構(gòu)造碼率自適應(yīng)碼組。
現(xiàn)階段,對(duì)一般LDPC碼率自適應(yīng)的研究已經(jīng)取得了很多成果。然而,對(duì)原模圖LDPC碼率自適應(yīng)的研究卻較少。目前,只有 El-khamy等[10]以一個(gè)低碼率的原模圖LDPC碼(accumulate repeat check accumulate code,ARCA 碼)為基礎(chǔ),利用刪余的方法實(shí)現(xiàn)碼率自適應(yīng),得到的碼率自適應(yīng)ARCA碼有較高的錯(cuò)誤地板。與之不同的是,本文將擁有極低錯(cuò)誤地板的AR4JA碼作為母碼,通過(guò)刪余和擴(kuò)展相結(jié)合的方法來(lái)構(gòu)造碼率自適應(yīng)AR4JA碼(ratecompatible AR4JA,RC-AR4JA)。
原模圖是一種包含相對(duì)較少節(jié)點(diǎn)的Tanner圖。一個(gè)原模圖Gp=(V,C,E)包含變量節(jié)點(diǎn)集V,校驗(yàn)節(jié)點(diǎn)集C和邊集E。每一條邊e=(V,C)∈E連接一個(gè)變量節(jié)點(diǎn)v∈V和一個(gè)校驗(yàn)節(jié)點(diǎn)c∈C。原模圖中允許有平行邊的存在,因此e→(vi,cj)∈E并不是一一映射關(guān)系。與原模圖對(duì)應(yīng)的校驗(yàn)矩陣稱為基礎(chǔ)矩陣B,Bij的值代表第i個(gè)校驗(yàn)節(jié)點(diǎn)和第j個(gè)變量節(jié)點(diǎn)之間連接邊的條數(shù)。與一般LDPC碼校驗(yàn)矩陣不同的是,Bij的值并不僅限于0和1。對(duì)原模圖進(jìn)行T次復(fù)制,然后把T條相同類(lèi)型的變量節(jié)點(diǎn)和校驗(yàn)節(jié)點(diǎn)之間的邊置換,可以擴(kuò)展成不同大小的圖。我們稱這種圖為導(dǎo)出圖G,對(duì)應(yīng)的LDPC碼稱為原模圖LDPC碼。
作為一個(gè)簡(jiǎn)單的例子,我們考慮如圖1所示的原模圖,其中圓圈代表變量節(jié)點(diǎn),方框代表校驗(yàn)節(jié)點(diǎn)。圖1a的原模圖Gp有個(gè)變量節(jié)點(diǎn),個(gè)校驗(yàn)節(jié)點(diǎn),條邊。圖1b是將圖1a的原模圖Gp復(fù)制T=2次得到的大圖,這2個(gè)相同的子圖之間是相互獨(dú)立,互不相連的。將圖1b中相同類(lèi)型節(jié)點(diǎn)之間的邊進(jìn)行置換,便得到圖1c所示的導(dǎo)出圖G,此時(shí)這2個(gè)子圖就連接在一起了。
圖1 原模圖到導(dǎo)出圖的過(guò)程Fig.1 Process from protograph to derived graph
原模圖中,允許變量節(jié)點(diǎn)集V包含刪余變量節(jié)點(diǎn)。假設(shè)有Vu個(gè)刪余變量節(jié)點(diǎn),則未刪余變量節(jié)點(diǎn)個(gè)。那么碼率的計(jì)算將變?yōu)镽=
AR4JA碼是一種特殊的累加重復(fù)累加碼[11](accumulate repeataccumulate codes,ARA)。碼率為1/2的AR4JA的編碼框圖,原模圖如圖2所示,其中I表示交織器,D表示累加器,空心圓圈代表刪余變量節(jié)點(diǎn),實(shí)心圓圈代表未刪余變量節(jié)點(diǎn),方框代表校驗(yàn)節(jié)點(diǎn)。該碼的原模圖有個(gè)變量節(jié)點(diǎn),個(gè)校驗(yàn)節(jié)點(diǎn),其中有1個(gè)變量節(jié)點(diǎn)被刪余了。(1)式為該碼的基礎(chǔ)矩陣。AR4JA碼是一種系統(tǒng)碼,即:變量節(jié)點(diǎn)3和4代表信息位,變量節(jié)點(diǎn)0,1和2代表校驗(yàn)位。碼率為1/2的AR4JA的迭代譯碼門(mén)限為 0.628 dB,典型最小距離比為 δmin=0.015[3]。
圖2 碼率為1/2的AR4JA碼Fig.2 AR4JA code of rate 1/2
AR4JA碼具有傳統(tǒng)LDPC碼的優(yōu)點(diǎn),作為一種ARA碼,還可以通過(guò)簡(jiǎn)單的重復(fù)器和累加器進(jìn)行編碼,編碼簡(jiǎn)單快速更易于硬件實(shí)現(xiàn)。此外,它的最小距離以很高的概率與碼長(zhǎng)成線性關(guān)系[12-13],克服了一般原模圖LDPC碼錯(cuò)誤地板欠佳的不足。
對(duì)于RC-AR4JA碼的設(shè)計(jì),我們選取碼率為1/2的AR4JA碼作為母碼,并分兩部份進(jìn)行。首先,提出“逐節(jié)點(diǎn)刪余”算法實(shí)現(xiàn)碼率由0.5~0.8的自適應(yīng)。其次,利用矩陣擴(kuò)展的方法獲得碼率從0.5~0.25的RC-AR4JA碼。結(jié)合刪余和擴(kuò)展的方法,能夠?qū)崿F(xiàn)碼率在0.25~0.8變化的 RC-AR4JA 碼。
刪余的基本思想:首先選取一個(gè)較低碼率及性能優(yōu)良的碼作為母碼,通過(guò)刪余母碼的冗余變量節(jié)點(diǎn)得到一系列高碼率的碼。
2.1.1 基本準(zhǔn)則
在進(jìn)行刪余時(shí),我們提出以下準(zhǔn)則,依據(jù)這些準(zhǔn)則依次刪余滿足條件的變量節(jié)點(diǎn),直到獲得想要的高碼率。
準(zhǔn)則1 最大化最低恢復(fù)級(jí)別PVN個(gè)數(shù)。
準(zhǔn)則2 最小化刪余變量節(jié)點(diǎn)通過(guò)校驗(yàn)節(jié)點(diǎn)相連的所有PVN數(shù)目。
準(zhǔn)則3 最小化每個(gè)校驗(yàn)節(jié)點(diǎn)上連接PVN個(gè)數(shù)。
2.1.2 算法主要步驟
“逐節(jié)點(diǎn)刪余”算法的具體步驟表述如下(參數(shù)見(jiàn)表1)。
表1 “逐節(jié)點(diǎn)刪余”算法的參數(shù)Tab.1 Parameters of the“puncturing node by node”algorithm
步驟1 通過(guò)(2)式計(jì)算要?jiǎng)h余的節(jié)點(diǎn)數(shù)目
步驟2 找到集合U,并對(duì)于每一個(gè)c∈N(v),其中v∈U,計(jì)算出被刪余 。
步驟3 對(duì)于每一個(gè)v∈U,通過(guò)(3)式計(jì)算出G(v),H(v)和M(v)。
步驟4 找到集合T={vr:vr∈U&G(vr)=minv∈U G(v)},如果T中只有一個(gè)節(jié)點(diǎn),刪余該節(jié)點(diǎn),并跳到步驟5。
步驟4.1 找到集合W={vr:vr∈U&H(vr)=minv∈T H(v)},如果W中只有一個(gè)節(jié)點(diǎn),刪余該節(jié)點(diǎn),并跳到步驟5。
步驟4.2 找到集合D={vr:vr∈U&M(vr)=minv∈W M(v)},如果D中只有一個(gè)節(jié)點(diǎn),刪余該節(jié)點(diǎn)。如果D中有多個(gè)節(jié)點(diǎn),隨機(jī)選取一個(gè)進(jìn)行刪余。
步驟5 判斷刪余的變量節(jié)點(diǎn)數(shù)目是否等于Npun,若是,則結(jié)束;否則,跳到步驟2。
擴(kuò)展是選取一個(gè)較高碼率及性能優(yōu)秀的碼作為母碼,通過(guò)增加額外的冗余比特來(lái)降低碼率。擴(kuò)展有兩種方法:矩陣擴(kuò)展和校驗(yàn)節(jié)點(diǎn)分裂。矩陣擴(kuò)展是最早提出的一種擴(kuò)展方法[9],如圖3所示。首先選取一個(gè)較高碼率母碼的校驗(yàn)矩陣,為N0列M0行。當(dāng)碼率需要降低的時(shí)候,依次增加Mi行和Mi列,從而得到一系列碼率為Ri<R0的碼,其中Ri=為了保證母碼的特性,擴(kuò)展后的矩陣右上角全為0,同時(shí)左下角的“稀疏矩陣”也需要保證與原矩陣之間的非相關(guān)性。對(duì)于擴(kuò)展矩陣中的Bi,不同的碼具有不同的構(gòu)造方式。
圖3 矩陣擴(kuò)展Fig.3 Matrix expansion
對(duì)于AR4JA碼,采用如圖4所示的擴(kuò)展方法,左上角3T×5T的矩陣為母碼的校驗(yàn)矩陣。在左下角的“稀疏矩陣”設(shè)計(jì)時(shí),本文保證新增校驗(yàn)節(jié)點(diǎn)的度為4,并且使得新增的校驗(yàn)節(jié)點(diǎn)只與母碼中2號(hào)和3號(hào)變量節(jié)點(diǎn)相連。右上角的0代表全零矩陣,右下角的1代表單位矩陣,這樣便可以得到碼率為R=T/(2T+M)的AR4JA碼。
圖4 AR4JA的矩陣擴(kuò)展Fig.4 Matrix expansion of AR4JA code
新增校驗(yàn)節(jié)點(diǎn)的度為4,使得擴(kuò)展后的矩陣校驗(yàn)節(jié)點(diǎn)度更加集中,有利于碼的性能[14]。為了進(jìn)一步提高性能,采用改進(jìn)的PEG算法對(duì)新增校驗(yàn)節(jié)點(diǎn)與變量節(jié)點(diǎn)的連接進(jìn)行優(yōu)化,避免了Tanner中短環(huán)的出現(xiàn)。
我們用上述方法構(gòu)造RC-AR4JA碼,并進(jìn)行了仿真。其中,母碼采用擴(kuò)展次數(shù)為512的 AR4JA碼,即信息位長(zhǎng)度為1 024,碼率為1/2,其中在擴(kuò)展時(shí)采用改進(jìn)型的PEG算法[15]來(lái)消除6環(huán)。仿真在AWGN信道下進(jìn)行,采用 BPSK調(diào)制,Log-BP譯碼算法,最大迭代次數(shù)為100。
首先,采用“逐節(jié)點(diǎn)刪余”算法設(shè)計(jì)RC-AR4JA碼,實(shí)現(xiàn)了碼率從0.5~0.8的變化,并與隨機(jī)刪余構(gòu)造的RC-AR4JA碼進(jìn)行了對(duì)比。圖5給出了這兩種RC-AR4JA碼的性能仿真曲線。為了使不同碼率的仿真結(jié)果更加清晰,本文給出了Es/N0與BER的曲線,其中Es/N0=Eb/N0+10lgR。
相對(duì)于隨機(jī)刪余,采用“逐節(jié)點(diǎn)刪余”設(shè)計(jì)的RC-AR4JA碼具有更好的性能,隨著速率的增加優(yōu)勢(shì)進(jìn)一步擴(kuò)大。在BER為10-6數(shù)量級(jí)(無(wú)線數(shù)據(jù)通信業(yè)務(wù)的標(biāo)準(zhǔn) BER),逐節(jié)點(diǎn)刪余設(shè)計(jì)的 RCAR4JA碼在碼率分別為0.6,0.7的情況下,比隨機(jī)刪余獲得的 RC-AR4JA 碼分別有約 0.5 dB,1.0 dB的增益。在碼率為0.8時(shí),隨機(jī)刪余與逐節(jié)點(diǎn)刪余的差距更大。
圖5 不同刪余算法下的RC-AR4JA碼性能Fig.5 BER performances of RC-AR4JA codes with different algorithms
其次,采用圖4所示矩陣擴(kuò)展的方法,設(shè)計(jì)了碼率從0.5~0.25的 RC-AR4JA 碼。作為對(duì)比,還利用隨機(jī)擴(kuò)展構(gòu)造0.5~0.25碼率變化的AR4JA碼。在隨機(jī)擴(kuò)展時(shí),保證新增校驗(yàn)節(jié)點(diǎn)度同樣為4,兩者之間的對(duì)比將是公平的。圖6給出這兩種擴(kuò)展方法得到的RC-AR4JA碼的性能仿真曲線。圖6中,選擇表示本文設(shè)計(jì)的擴(kuò)展方法,隨機(jī)為隨機(jī)擴(kuò)展方法。
圖6 不同擴(kuò)展方法得到的AR4JA碼性能Fig.6 BER performances of RC-AR4JA codes obtained by differentmatrix expansion method.
相同的碼率下,用圖4所示矩陣擴(kuò)展構(gòu)造的RC-AR4JA碼較隨機(jī)擴(kuò)展有更好的性能,隨著碼率的降低,這種優(yōu)勢(shì)更加明顯。在BER為10-6數(shù)量級(jí),用本文的擴(kuò)展方法構(gòu)造的AR4JA碼在碼率分別為 0.4,0.35,0.3 和 0.25 的情況下,較隨機(jī)擴(kuò)展得到的 AR4JA 碼分別有 0.2 dB,0.5 dB,0.7 dB 和 1 dB的增益。此外,我們?cè)O(shè)計(jì)的 RC-AR4JA碼,在BER為10-6數(shù)量級(jí)并未出現(xiàn)錯(cuò)誤地板。
本文針對(duì)一類(lèi)擁有極低錯(cuò)誤地板的原模圖LDPC碼—AR4JA碼,提出了“逐節(jié)點(diǎn)刪余”算法,實(shí)現(xiàn)了碼率由0.5~0.8的增加,并利用矩陣擴(kuò)展的方法構(gòu)造了碼率從0.5~0.25變化的AR4JA碼。結(jié)合刪余和擴(kuò)展的方法,實(shí)現(xiàn)碼率從0.25~0.8靈活變化的RC-AR4JA碼。在AWGN信道下的仿真結(jié)果表明,在 BER為10-6數(shù)量級(jí)處,本文設(shè)計(jì)的 RCAR4JA碼在整個(gè)碼率變化范圍內(nèi)并未出現(xiàn)錯(cuò)誤地板,保持了母碼錯(cuò)誤地板低的優(yōu)良特性。
[1]GALLAGER R G.Low-density parity check codes[M].Cambridge,MA:MIT Press,1963.
[2]THORPE J.Low-density parity-check(LDPC)codes constructed from protographs[C]//Tech.Rep.Progress Report.Pasadena,CA,USA:JPL IPN,2003:42-154.
[3] DIVSALAR D,JONESC,THORPE J.Protograph based LDPC codeswithminimum distance linearly growing with block size[C]//IEEE.IEEE Communications Society subject.ST,louis:IEEE Globecom,2005:1152-1156.
[4]HA J,KIM J,KLINC D,et al.Rate-compatible punctured low-density parity-check codes with short block length[J].IEEE Trans Inform Theroy,2006,52(2):728-738.
[5]胡文江,衛(wèi)霞.碼率自適應(yīng) QC-LDPC碼的研究[J].重慶郵電大學(xué)學(xué)報(bào):自然科學(xué)版,2009,21(1):53-56.
HUWen-jiang,WEIXia.Design of rate-compatible QCLDPC codes[J].Journalof Chongqing University of Posts and Telecommunications:Nature Science Edition,2009,21(1):53-56.
[6] YOU Ying,XIAOMin,WANG Lin.The rate-compatible Multi-Edge Type LDPC codes with short block length[C]//IEEE.Proceedings of the 5th International Conference on Wireless communications(WiCOM'09).NJ,USA:IEEE Press,2009:1-4.
[7]肖旻,黎勇,王琳.碼率自適應(yīng)LDPC碼刪余算法[J].應(yīng)用科學(xué)學(xué)報(bào),2011,24(9):385-389.
XIAOMin,LIYong,WANG Lin.Puncturing Algorithm for design rate-compatible LDPC codes[J].Journal of applied sciences,2011,24(9):385-389.
[8] 溫娜,徐永太,張平.有限長(zhǎng)LDPC碼的打孔方案設(shè)計(jì)[J].北京郵電大學(xué)學(xué)報(bào),2007,29(6):135-138.
WEN Na,XU Yong-tai,ZHANG Ping.Design of puncturing scheme for finite-length LDPC codes[J].Jouranl of Beijing University of Posts and Telecommunications,2007,29(6):135-138.
[9]LI J,NARAYANNA K.Rate-compatible low density parity check codes for capacity-approaching ARQ scheme in packet data communications[C]//Proc.Int Conf Comm Internet and Info.Tech(CIIT).Virgin Islands,USA:2002:201-206.
[10] MOSTAFA E1-Khamy,HOU Ji-lei,BHUSHAN Naga.Design of rate-compatible structured LDPC codes for Hybrid ARQ application[J].IEEE JSele Areas Commun,2009,27(6):965-973.
[11] ABBASFAR A,DIVSALAR D,YAO Kung.Accumulate repeat accumulate codes[C]//IEEE International Symposium on Information Theory(ISIT).Chicago,USA:IEEE Globecom,2004:509-513.
[12] DIVSALAR D.Ensemble weight enumerators for protograph LDPC codes[C]//IEEE.IEEE International Symposium on Information Theory(ISIT).Seattle,Washington,USA:IEEE Press,2006:1554-1558.
[13] DIVSALAR D,DOLINAR S,JONSC R,et al.Capacity-approaching protograph codes[J].IEEE J sele Areas Commun,2009,27(6):876-888.
[14] CHUNG SY,RICHARDSON T J,URBANKE R L.A-nalysis of sumproduct decoding of low-density paritycheck codes using a Gaussion approximation[J].IEEE Trans Inform Theory,2001,47(2):567-570.
[15] BONELLO N,CHEN Sheng,HANZO L.Construction of regular Quasi-Cyclic protograph LDPC codes based on vandermondematrices[J].IEEE Transactions Veh Technol,2008,54(4):2583-2588.