馬克祥
(中國(guó)電子科學(xué)研究院,北京 100041)
由于LDPC碼具有逼近香農(nóng)限的良好譯碼性能,進(jìn)而得到了廣泛的研究[1],并且被廣泛應(yīng)用于現(xiàn)有的一些主要通信系統(tǒng)中,比如5G、10Gbit Ethernet(IEEE 802.3an)等其它通信系統(tǒng)。LDPC碼作為一種具有并行譯碼結(jié)構(gòu)的線(xiàn)性分組碼,尤其適合利用FPGA等并行計(jì)算平臺(tái)構(gòu)造并行編譯碼器實(shí)現(xiàn)快速譯碼[2-3]。為了獲取更好的譯碼性能,LDPC碼的各種譯碼算法得到廣泛研究。其中,對(duì)于光通信等超高速數(shù)據(jù)傳輸場(chǎng)景,比如工作在40 Gb/s的下一代光纖通信系統(tǒng),現(xiàn)有的硬件水平只能支持實(shí)現(xiàn)BF-based譯碼器[4]。
由于BF-based算法在譯碼速度方面固有的優(yōu)勢(shì),因此得到廣泛的研究。通過(guò)給不同的校驗(yàn)方程引入不同的可靠性度量值,加權(quán)比特翻轉(zhuǎn)算法(Weighted BF,WBF)首先被提出來(lái)改進(jìn)BF算法的譯碼性能[5]。Zhang利用每個(gè)比特的信道接收值對(duì)WBF算法的品質(zhì)因素進(jìn)行修正,進(jìn)而提出Modified WBF (MWBF) 算法[6]。上述算法表現(xiàn)出良好的譯碼性能,具有良好地應(yīng)用前景。不過(guò),定點(diǎn)仿真試驗(yàn)結(jié)果表明,WBF和MWBF算法的譯碼過(guò)程中會(huì)出現(xiàn)“偽零值”現(xiàn)象,使得算法利用FPGA平臺(tái)實(shí)現(xiàn)時(shí)將會(huì)出現(xiàn)性能惡化的結(jié)果。為此,本文給出一種修正的加權(quán)比特翻轉(zhuǎn)算法解決上述問(wèn)題,從而保證LDPC碼利用FPGA平臺(tái)進(jìn)行加權(quán)比特翻轉(zhuǎn)譯碼時(shí)可以獲得良好的譯碼性能,實(shí)現(xiàn)相應(yīng)碼字的快速譯碼,從而滿(mǎn)足高速數(shù)據(jù)傳輸系統(tǒng)的快速譯碼需求。
翻轉(zhuǎn)函數(shù)的計(jì)算尤為關(guān)鍵。翻轉(zhuǎn)函數(shù)值的大小決定著比特是否翻轉(zhuǎn),比特的正確翻轉(zhuǎn)直接決定譯碼是否正確。WBF算法的翻轉(zhuǎn)函數(shù)計(jì)算公式如式(1)所示[5],本節(jié)以WBF算法為例詳細(xì)闡述算法精度問(wèn)題。
WBF算法計(jì)算翻轉(zhuǎn)函數(shù)的公式:
(1)
wm是一個(gè)非負(fù)實(shí)數(shù),sm的取值為0或者1,單比特翻轉(zhuǎn)每次翻轉(zhuǎn)最大函數(shù)值對(duì)應(yīng)的比特,所以翻轉(zhuǎn)函數(shù)值越大,對(duì)應(yīng)比特被翻轉(zhuǎn)的可能性越大。下面將詳細(xì)分析WBF翻轉(zhuǎn)函數(shù)公式:
(1)假定wm>0,m∈A(n)。如果第eWBF,n比特參與的所有校驗(yàn)式均為0,則該比特出錯(cuò)概率很低,易知eWBF,n是一個(gè)較大的負(fù)數(shù),第eWBF,n比特被翻轉(zhuǎn)的可能性極低;如果第eWBF,n比特參與的校驗(yàn)式中有多個(gè)校驗(yàn)式值為1,該比特出錯(cuò)的概率較高,易知eWBF,n是一個(gè)較大的正數(shù),第wm=0比特被翻轉(zhuǎn)的可能性高。
(2)假定wm=0,m∈A(n)。譯碼過(guò)程中,如果第eWBF,n比特正確,其對(duì)應(yīng)的翻轉(zhuǎn)函數(shù)值eWBF,n值為0。如果第eWBF,n比特錯(cuò)誤,不論有幾個(gè)校驗(yàn)式值(第eWBF,n比特參與的校驗(yàn)式)為1,eWBF,n值均為0,而且在迭代譯碼過(guò)程中,無(wú)論該比特是否翻轉(zhuǎn),其對(duì)應(yīng)的翻轉(zhuǎn)函數(shù)值始終為0。此時(shí),無(wú)法區(qū)分eWBF,n的0值是由哪種情況導(dǎo)致的,若翻轉(zhuǎn)了該比特極有可能導(dǎo)致譯碼出錯(cuò)。本文將發(fā)生在WBF譯碼過(guò)程中,由wm=0造成的譯碼混淆稱(chēng)為“偽零值”現(xiàn)象。
由前述分析可知,WBF算法譯碼過(guò)程中出現(xiàn)的“偽零值”現(xiàn)象使得比特節(jié)點(diǎn)的品質(zhì)因素?zé)o法利用每次迭代的校驗(yàn)信息進(jìn)行正確的更新演化,即zn=(1-sgn(yn))/2取不同值時(shí),若zn=(1-sgn(yn))/2將會(huì)導(dǎo)致zn=(1-sgn(yn))/2的值始終為0,進(jìn)而影響該比特節(jié)點(diǎn)的翻轉(zhuǎn)譯碼,甚至導(dǎo)致整個(gè)碼字的譯碼失敗。因此,本文通過(guò)限定校驗(yàn)可靠度最小值的方式消除“偽零值”現(xiàn)象。改進(jìn)算法具體描述如下:
Step1:k=0;對(duì)于每個(gè)變量節(jié)點(diǎn)計(jì)算初始硬判決值z(mì)n=(1-sgn(yn))/2。利用式3-1計(jì)算每個(gè)校驗(yàn)節(jié)點(diǎn)m的品質(zhì)因素值。
(2)
Step2:計(jì)算伴隨向量重量ηk,如果ηk=0,停止譯碼并且輸出zk。
Step3:k=k+1。如果zk,譯碼失敗并且輸出zk。
(3)
Step5:翻轉(zhuǎn)具有最小品質(zhì)因素的變量節(jié)點(diǎn),然后轉(zhuǎn)到Step2。
本節(jié)對(duì)WBF算法以及本文提出的改進(jìn)加權(quán)比特翻轉(zhuǎn)算法(Improved Weighted Bit-Flipping, IWBF)的仿真性能進(jìn)行比較分析。仿真使用的碼字分別為:EG(273,191)和EG(1023,781)碼,為了方便后續(xù)描述分別簡(jiǎn)記為碼1和碼2。測(cè)試數(shù)據(jù)經(jīng)過(guò)BPSK調(diào)制后經(jīng)由AWGN信道傳輸。譯碼器的最大迭代次數(shù)為100。每個(gè)SNR點(diǎn)觀察到100幀錯(cuò)誤數(shù)據(jù)停止譯碼性能統(tǒng)計(jì)。
圖1和圖2分別給出碼1和碼2,在WBF、WBF(hard)以及IWBF(hard)算法下譯碼性能比較。WBF(hard)和IWBF(hard)算法為定點(diǎn)仿真,整數(shù)部分量化比特固定為5。對(duì)于定點(diǎn)仿真,分?jǐn)?shù)部分精度是影響譯碼性能的關(guān)鍵因素。本文給出算法在3、5和7比特量化精度的性能比較。由圖1可知,WBF譯碼時(shí),碼1的誤碼率小于10-5且未出現(xiàn)錯(cuò)誤平層,IWBF(hard)算法在5和7比特量化精度的情況下獲得與WBF算法浮點(diǎn)仿真相當(dāng)?shù)淖g碼性能,3比特量化精度的情況下IWBF(hard)算法譯碼性能約為10-4與比5和7比特量化相比有將近一個(gè)數(shù)量級(jí)的損失。相同仿真條件下,WBF(hard)在3、5和7比特量化精度場(chǎng)景下,在信噪比為5dB時(shí)的譯碼性能分別為10-2、10-3和10-4。值得注意是,3比特量化精度的情況下IWBF(hard)算法譯碼性能約為10-4,但是算法在5 dB時(shí)并沒(méi)有達(dá)到譯碼性能的極限,從仿真圖可以看出隨著信噪比的增大,算法的譯碼性能仍可以得到進(jìn)一步的改善,而在3、5和7比特量化精度場(chǎng)景下WBF(hard)都在5 dB時(shí)出現(xiàn)較為明顯的錯(cuò)誤平層。碼2利用WBF、WBF(hard)以及IWBF(hard)算法譯碼性能表現(xiàn)相近,其利用本文所提IWBF(hard)算法在5和7比特量化精度的情況下獲得與WBF算法浮點(diǎn)仿真相當(dāng)?shù)淖g碼性能,且3比特量化精度的情況下IWBF(hard)算法譯碼性能在4.5 dB時(shí)約為10-3,并未出現(xiàn)WBF(hard)譯碼時(shí)的錯(cuò)誤平層。圖1和圖2的仿真結(jié)果驗(yàn)證了所提算法的有效性。另外,在具體工程實(shí)現(xiàn)時(shí),對(duì)于碼1和碼2建議使用5比特量化精度實(shí)例化LDPC譯碼器,在硬件開(kāi)銷(xiāo)較小的情況下獲得接近于WBF算法的譯碼性能。
圖1 碼1不同算法譯碼性能比較
圖2 碼2不同算法譯碼性能比較
為解決傳統(tǒng)WBF算法FPGA實(shí)現(xiàn)時(shí)出現(xiàn)的性能惡化現(xiàn)象,本文提出一種改進(jìn)加權(quán)比特翻轉(zhuǎn)算法解決WBF譯碼過(guò)程出現(xiàn)的偽零值現(xiàn)象,從而有效降低LDPC碼字比特翻轉(zhuǎn)譯碼時(shí)的錯(cuò)誤平層。仿真結(jié)果表明,利用本文算法可以有效解決加權(quán)比特翻轉(zhuǎn)算法性能惡化現(xiàn)象。對(duì)于碼1和碼2,使用5比特量化精度實(shí)例化LDPC譯碼器,在硬件開(kāi)銷(xiāo)較小的情況下獲得接近于WBF算法的譯碼性能。