馬秀榮, 司雨鑫, 孔 玲
(1. 天津理工大學(xué) a. 電氣電子工程學(xué)院, b. 光電器件與通信技術(shù)教育部工程研究中心, 天津 300384; 2. 93303部隊(duì) 綜合技術(shù)通信站, 沈陽 110069)
近年來,由于非二元低密度奇偶校驗(yàn)(NB-LDPC)碼具有出色的糾錯(cuò)性能,更適用于高階調(diào)制系統(tǒng)[1-4]等優(yōu)點(diǎn),而受到廣泛關(guān)注.然而,NB-LDPC碼的基礎(chǔ)譯碼算法(如對(duì)數(shù)置信度傳播(LBP)譯碼算法)[5]譯碼復(fù)雜度極高,限制了其在通信系統(tǒng)中的應(yīng)用.
隨著二元LDPC碼在通信系統(tǒng)中的應(yīng)用逐漸成熟,非二元LDPC碼也逐漸受到人們重視,相應(yīng)發(fā)展出了一些更加高效的譯碼算法,這些譯碼算法主要分為兩類,一類是基于文獻(xiàn)[5]的對(duì)數(shù)置信度傳播譯碼算法發(fā)展而來的譯碼算法,如基于網(wǎng)格的高效最小和譯碼算法[6]、基于額外列網(wǎng)格的最小最大譯碼算法[7]、基于網(wǎng)格的基本集合最小最大譯碼算法[8]、基于網(wǎng)格的最小集合最小最大譯碼算法[9]及基于網(wǎng)格優(yōu)化的最小最大譯碼算法[10]等.這些譯碼算法通過對(duì)基礎(chǔ)算法中的某些計(jì)算步驟進(jìn)行近似,以犧牲小部分比特誤碼率為代價(jià),一定程度上降低了譯碼復(fù)雜度.
非二元LDPC碼的第二類譯碼算法則是根據(jù)軟/硬可靠度信息進(jìn)行譯碼,這類譯碼算法的復(fù)雜度要遠(yuǎn)低于第一類譯碼算法,但相應(yīng)作為降低計(jì)算復(fù)雜度的代價(jià),比特誤碼率性能也相對(duì)落后于第一類譯碼算法.其中利用軟信息進(jìn)行譯碼的算法包括冗余比特輔助的迭代軟可靠度譯碼算法[11]、剪裁調(diào)整的迭代軟可靠度譯碼算法[12]等,利用硬信息進(jìn)行譯碼的算法包括迭代硬可靠度(IHRB)譯碼算法[13]、改進(jìn)的迭代硬可靠度(IIHRB)譯碼算法[14]、加權(quán)迭代硬可靠度(WIHRB)譯碼算法[15]等.在這些譯碼算法中,WIHRB譯碼算法的復(fù)雜度適中,同時(shí)比特誤碼率性能較好,是一種比較有前景的譯碼算法.
對(duì)WIHRB譯碼算法進(jìn)一步研究發(fā)現(xiàn),該算法的可靠度更新過程會(huì)忽略一部分正確碼元,導(dǎo)致譯碼結(jié)果出現(xiàn)錯(cuò)誤,造成比特誤碼率性能下降.為解決該問題,通過對(duì)可靠度更新過程進(jìn)行擴(kuò)展,本文設(shè)計(jì)了一種基于擴(kuò)大候選碼元范圍的加權(quán)迭代硬可靠度(IWIHRB)譯碼算法.仿真結(jié)果顯示,在由64個(gè)元素及256個(gè)元素構(gòu)成的伽羅華域中,IWIHRB譯碼算法的比特誤碼率性能增益分別可達(dá)到0.1 dB與0.2 dB,計(jì)算復(fù)雜度增加不超過2%.
WIHRB譯碼算法的步驟如下:
1) 初始化.參數(shù)的初始化表達(dá)式為
(1)
2) 設(shè)置最大迭代次數(shù),開始迭代譯碼.將譯碼算法的最大迭代次數(shù)設(shè)為Imax=15.當(dāng)前迭代次數(shù)用k表示,迭代譯碼開始時(shí),令k=1.
3) 計(jì)算校驗(yàn)和,并檢查是否存在錯(cuò)誤碼字.校驗(yàn)和s(k)的計(jì)算表達(dá)式為
s(k)=Z(k-1)HT
(2)
在第k次迭代過程中,若s(k)=0,則表示第k-1次迭代譯出的碼字序列Z(k-1)沒有錯(cuò)誤碼元,譯碼過程終止,并輸出Z(k-1)作為譯碼結(jié)果;若s(k)≠0,則表示碼字序列Z(k-1)中存在錯(cuò)誤,譯碼過程繼續(xù)執(zhí)行.
4) 計(jì)算外部校驗(yàn)和.外部校驗(yàn)和計(jì)算表達(dá)式為
(3)
5) 更新可靠度信息.可靠度信息更新公式為
(4)
6) 判決碼字.判決碼字的表達(dá)式為
(5)
在WIHRB譯碼算法可靠度更新過程中,初始化元素與外部校驗(yàn)和之間的漢明距分布如圖1所示.
圖1 不同信噪比下初始化元素與之間的漢明距分布
圖2 不同信噪比下正確碼元與之間的漢明距分布
(6)
式中,η為可靠度更新幅度,為固定值,在后續(xù)仿真中取η=0.3.
綜上所述,改進(jìn)后的可靠度更新過程表達(dá)式為
(7)
由于擴(kuò)大范圍加權(quán)迭代硬可靠度(EWIHRB)譯碼算法可靠度更新的步驟與WIHRB譯碼算法有所區(qū)別,因此只需對(duì)比該步驟計(jì)算復(fù)雜度的變化,便可知EWIHRB譯碼算法的復(fù)雜度變化情況.表1列出了WIHRB譯碼算法和EWIHRB譯碼算法單次迭代所需的計(jì)算復(fù)雜度,表中W表示校驗(yàn)矩陣H中非0元素的個(gè)數(shù).
表1 兩種譯碼算法每次迭代所需的計(jì)算復(fù)雜度Tab.1 Computation complexities required by two decoding algorithms for each iteration
根據(jù)上述分析可知,在單次迭代中,EWIHRB譯碼算法僅在整數(shù)加法上所需的運(yùn)算次數(shù)有所增加,其他運(yùn)算的次數(shù)與WIHRB譯碼算法一致.整體上看,EWIHRB譯碼算法的復(fù)雜度比WIHRB算法略有增加.
為測(cè)試EWIHRB譯碼算法的性能,利用MATLAB仿真平臺(tái)(版本2018b)分別對(duì)基于伽羅華域GF(26)的(315,265)碼與基于伽羅華域GF(28)的(1 275,1 025)碼進(jìn)行測(cè)試.以上兩種碼的碼率分別為0.841 2與0.803 9,構(gòu)建校驗(yàn)矩陣時(shí)采用文獻(xiàn)[16]的方法.傳輸時(shí),使用BPSK調(diào)制并通過加性高斯白噪聲信道(AWGN)進(jìn)行傳輸.仿真過程中,除使用WIHRB譯碼算法和EWIHRB譯碼算法外,還增加了IHRB譯碼算法以及IIHRB譯碼算法用于對(duì)比.通常來說,對(duì)于迭代譯碼算法,迭代次數(shù)越多,譯碼性能越好,但相應(yīng)的譯碼時(shí)間也會(huì)極大增加.為降低仿真時(shí)間,將4種譯碼算法的最大迭代次數(shù)設(shè)置為15次.仿真過程中的其他主要參數(shù)設(shè)置如表2所示.
表2 仿真參數(shù)Tab.2 Simulation parameters
本節(jié)對(duì)上述4種譯碼算法的誤碼率性能進(jìn)行對(duì)比分析.圖3為使用伽羅華域GF(26)中的(315,265)NB-LDPC碼時(shí)4種譯碼算法的比特誤碼率性能對(duì)比圖;圖4為使用伽羅華域GF(28)中的(1 275,1 025)NB-LDPC碼時(shí)4種譯碼算法的比特誤碼率仿真圖.
圖3 使用GF(26)中的(315,265)NB-LDPC碼時(shí)4種算法的比特誤碼率性能對(duì)比
圖4 使用GF(28)中的(1 275,1 025)NB-LDPC碼時(shí)4種算法的比特誤碼率性能對(duì)比
從圖3中可以看出,在同一信噪比下,EWIHRB譯碼算法的比特誤碼率最低.與WIHRB譯碼算法相比,大約有0.1 dB的性能增益.且隨著信噪比的增加,EWIHRB譯碼算法的比特誤碼率性能與其他3種算法間的差距逐漸增大.當(dāng)信噪比為5.4 dB時(shí),EWIHRB譯碼算法的比特誤碼率達(dá)到0.001;而其他3種算法在信噪比為5.6 dB時(shí),誤碼率仍未達(dá)到0.001.圖4所示結(jié)果與圖3類似,區(qū)別在于圖4中EWIHRB譯碼算法的誤碼率性能與其他3種算法之間的差距更加明顯.與WIHRB譯碼算法相比,大約有0.2 dB的性能增益.
根據(jù)上述仿真結(jié)果可知,與WIHRB譯碼算法相比,對(duì)GF(26)中的(315,265)NB-LDPC碼進(jìn)行譯碼時(shí),EWIHRB譯碼算法的性能增益約為0.1 dB;而對(duì)GF(28)中的(1 275,1 025)碼進(jìn)行譯碼時(shí),EWIHRB譯碼算法的性能增益約為0.2 dB.
3.2.1 平均迭代次數(shù)對(duì)比
下面對(duì)4種譯碼算法的平均譯碼迭代次數(shù)進(jìn)行對(duì)比分析.圖5、6分別為使用伽羅華域GF(26)中的(315,265)NB-LDPC碼和使用伽羅華域GF(28)中的(1 275,1 025)NB-LDPC碼時(shí),4種譯碼算法的平均迭代次數(shù)對(duì)比圖.
圖5 使用GF(26)中的(315,265)NB-LDPC碼時(shí)4種譯碼算法的平均迭代次數(shù)對(duì)比
圖6 使用GF(28)中的(1 275,1 025)NB-LDPC碼時(shí)4種譯碼算法的平均迭代次數(shù)對(duì)比
從圖5中可以看出,當(dāng)信噪比小于4.5 dB時(shí),4種譯碼算法的平均迭代次數(shù)基本相同.當(dāng)信噪比超過4.5 dB后,WIHRB譯碼算法與EWIHRB譯碼算法所需的平均迭代次數(shù)較為接近,但略高于IHRB和IIHRB譯碼算法.從圖6中可以看出,當(dāng)信噪比小于4.5 dB時(shí),4種譯碼算法的平均迭代次數(shù)基本相同.當(dāng)信噪比超過4.5 dB后,IWIHRB譯碼算法與WIHRB譯碼算法所需的平均迭代次數(shù)相近,但高于IHRB和IIHRB譯碼算法.
根據(jù)圖5、6的仿真結(jié)果可知,EWIHRB與WIHRB譯碼算法的平均迭代次數(shù)基本相同,但略高于IHRB和IIHRB譯碼算法.
3.2.2 單次迭代的復(fù)雜度對(duì)比
根據(jù)文獻(xiàn)[13]與表1可知,在單次迭代中,除整數(shù)比較與整數(shù)加法運(yùn)算外,4種譯碼算法所需的其他運(yùn)算類型與次數(shù)完全相同.因此在對(duì)比4種算法的復(fù)雜度時(shí),只需比較這兩種運(yùn)算的計(jì)算次數(shù).圖7、8分別為不同的伽羅華域維度下,4種譯碼算法的整數(shù)加法與整數(shù)比較的運(yùn)算次數(shù)對(duì)比圖.
圖7 整數(shù)加法運(yùn)算次數(shù)對(duì)比Fig.7 Comparison of integer additive operation number
圖8 整數(shù)比較運(yùn)算次數(shù)對(duì)比Fig.8 Comparison of integer comparative operation number
從圖7中的曲線可以看出,當(dāng)伽羅華域維度3≤r≤7時(shí),EWIHRB譯碼算法所需的整數(shù)加法運(yùn)算次數(shù)是4種算法中最多的.但與其他3種譯碼算法相比,增加的幅度較小.當(dāng)伽羅華域維度r>7時(shí),EWIHRB譯碼算法所需的整數(shù)加法運(yùn)算次數(shù)遠(yuǎn)小于IHRB和IIHRB譯碼算法,但仍大于WIHRB譯碼算法.從圖8中的曲線可以看出,EWIHRB與WIHRB譯碼算法所需的整數(shù)比較運(yùn)算次數(shù)相同.當(dāng)伽羅華域維度r>3后,EWIHRB與WIHRB譯碼算法所需的整數(shù)比較運(yùn)算次數(shù)遠(yuǎn)少于IHRB與IIHRB譯碼算法.
根據(jù)圖7、8的仿真結(jié)果可知,當(dāng)伽羅華域維度r≥3時(shí),與WIHRB譯碼算法相比,EWIHRB譯碼算法的復(fù)雜度更高;而與IHRB和IIHRB譯碼算法相比,當(dāng)3≤r≤7時(shí),雖然EWIHRB譯碼算法所需的整數(shù)加法運(yùn)算次數(shù)略多,但由于所需的整數(shù)比較運(yùn)算次數(shù)減少的幅度大于整數(shù)加法運(yùn)算增加的幅度,所以EWIHRB的復(fù)雜度略低;當(dāng)r>7時(shí),由于EWIHRB譯碼算法所需的整數(shù)加法與整數(shù)比較運(yùn)算次數(shù)均比較低,因此EWIHRB譯碼算法的復(fù)雜度也會(huì)更低一些.4種譯碼算法單次迭代的復(fù)雜度排序?yàn)椋篧IHRB 3.2.3 平均譯碼時(shí)間對(duì)比 由于4種譯碼算法在譯碼過程中所需的運(yùn)算類型完全一致,因此可通過譯碼時(shí)間直觀地反映出4種譯碼算法的整體復(fù)雜度.當(dāng)信噪比分別為3.5 dB和5 dB時(shí),分別對(duì)幀數(shù)為200幀(315,265)及20幀的(1 275,1 025)碼進(jìn)行譯碼,4種譯碼算法每次譯碼所需的平均時(shí)間如表3所示. 表3 平均譯碼時(shí)間Tab.3 Average decoding time s 根據(jù)表3可知,在當(dāng)前仿真條件下,WIHRB與EWIHRB譯碼算法每次譯碼所需的平均時(shí)間皆遠(yuǎn)小于IHRB與IIHRB譯碼算法.而與WIHRB譯碼算法相比,在對(duì)基于GF(26)的(315,265)碼進(jìn)行譯碼時(shí),EWIHRB單次譯碼所需的平均時(shí)間僅比WIHRB譯碼算法增加了1.7%;而在對(duì)基于GF(28)的(1 275,1 025)碼進(jìn)行譯碼時(shí),單次譯碼所需的平均時(shí)間僅增加了約1.1%. 綜合上述仿真結(jié)果可以看出,與WIHRB譯碼算法相比,IWIHRB譯碼算法可在伽羅華域GF(26)與GF(28)中分別取得約為0.1 dB和0.2 dB的性能增益,而整體復(fù)雜度增加不超過2%. 為了進(jìn)一步提高非二元LDPC碼加權(quán)迭代硬可靠度譯碼算法的比特誤碼率性能,通過對(duì)可靠度更新計(jì)算方法進(jìn)行改進(jìn),本文設(shè)計(jì)了一種基于擴(kuò)大候選碼元范圍的加權(quán)迭代硬可靠度譯碼算法.該算法通過擴(kuò)大可靠度更新時(shí)覆蓋的元素范圍,有效降低了譯碼結(jié)果中出現(xiàn)錯(cuò)誤碼元的概率,提高了算法的誤碼率性能.通過使用基于不同伽羅華域構(gòu)建的兩種非二元LDPC碼進(jìn)行仿真對(duì)比,結(jié)果顯示,改進(jìn)后的譯碼算法可以明顯提升比特誤碼率性能,與此同時(shí),譯碼復(fù)雜度增加較少,仍維持在相對(duì)較低的水平,在復(fù)雜度容限較低的通信系統(tǒng)中,使用改進(jìn)后的算法可以有效提高通信質(zhì)量.4 結(jié) 論