李暉,葉銘,童強,程杰,王力杰
(1. 海南大學(xué)信息科學(xué)技術(shù)學(xué)院,海南 ???570228;2. 海南省海洋通信與網(wǎng)絡(luò)工程技術(shù)研究中心,海南 ???570228)
極化碼是 5G通信中的一種控制信道編碼方案[1],也是一種可達二進制輸入離散無記憶信道(BDMC, binary-input discrete memoryless channel)對稱容量的編碼方案[2]。然而,極化碼在串行抵消(SC, successive cancellation)譯碼算法下容易受到差錯傳播的影響,且在中短碼長上的性能并不理想[3]。最初介紹的極化碼是一類非系統(tǒng)線性分組碼,即所謂的非系統(tǒng)極化碼(NSPC, non-systematic polar code)[4]。因為任意的分組碼可轉(zhuǎn)換為系統(tǒng)碼,所以非系統(tǒng)極化碼也能被系統(tǒng)地編碼成系統(tǒng)極化碼(SPC, systematic polar code)[5-6]。非系統(tǒng)極化碼被系統(tǒng)編碼后未必能保持原有的低復(fù)雜度特性;就性能而言,被系統(tǒng)編碼后的系統(tǒng)極化碼也未必能比非系統(tǒng)編碼的非系統(tǒng)極化碼具有優(yōu)勢,對此人們并不清楚。與基于2×2核矩陣的極化碼一樣,結(jié)構(gòu)不同的基于多維核矩陣的極化碼也有系統(tǒng)極化碼和非系統(tǒng)極化碼之分。當(dāng)l>2時,稱l×l核矩陣為多維核矩陣。
為了優(yōu)化極化碼在中短碼長上的性能,本文介紹了系統(tǒng)極化碼和非系統(tǒng)極化碼的編碼方法,這里介紹的系統(tǒng)極化碼的編碼方法是在保證誤幀率(FER, frame error rate)性能不變的情況下保留低復(fù)雜度的特性[4]。鑒于通信系統(tǒng)中大多設(shè)計往往將干擾最有害的高斯白噪聲作為標(biāo)準(zhǔn),本文的仿真實驗是在加性高斯白噪聲(AWGN, additive white Gaussian noise)信道下進行的。仿真結(jié)果表明,系統(tǒng)極化碼相對非系統(tǒng)極化碼有相同的誤幀率性能,但具有更好的誤碼率(BER, bit error rate)性能。這從側(cè)面證明了系統(tǒng)極化碼比非系統(tǒng)極化碼在 SC譯碼算法下對差錯傳播的抵抗性更強,也驗證了Arikan等[3-4,7]的研究成果。因此,可以用這類系統(tǒng)極化碼來代替非系統(tǒng)極化碼,以彌補極化碼在中短碼長上性能的不足。同時,與非系統(tǒng)極化碼相比,系統(tǒng)極化碼獲得了一定的編碼增益,這有利于極化碼在5G通信中的應(yīng)用。
以基于 2×2核矩陣的極化碼為例,令碼長為N=2n,n=1,2,…,信息塊長為K,那么碼率信道W的轉(zhuǎn)移概率由W(y|x)表示。給定一個BDMC的信道W:χ→γ,其中x∈χ,y∈γ,χ={0,1}和γ分別表示輸入和輸出字母表,那么對稱信道容量為
對于任意一個BDMC的信道W,當(dāng)碼長N足夠大時,一部分無噪聲信道的信道容量會趨近于對稱信道容量,而另一部分信道則是完全不可靠的。以好的信道傳輸信息比特,以不可靠的信道傳輸固定比特,則極化碼理論上可達信道容量。對于二進制刪除信道(BEC, binary erasure channel),信道的可靠性通過巴氏(Bhattaharyya)參數(shù)估計[3];對于其他信道,信道的可靠性能夠通過密度進化或高斯近似方法計算[8-9]。事實上,對稱容量越大,信道的可靠性也就越大。集合A是可靠信道的集合,即是集合{1,...,N}的任意一個子集。傳輸固定比特的信道集合由A的補集Ac表示。給定一個碼長N,極化碼的編碼方式為
其中,源碼字表示要傳輸?shù)谋忍?,它包含信息比特uA和固定比特uAc;碼字表示源碼字經(jīng)過編碼后的比特;GN表示N階生成矩陣,定義為
其中,BN表示位反轉(zhuǎn)置換矩陣;表示核矩陣;?n表示n次克羅內(nèi)克積。將碼源字和生成矩陣拆分成兩部分,即和那么式(3)可修改為
為了考慮極化碼各種可能的系統(tǒng)編碼方案,正如式(5)中所規(guī)定的,本文把碼字也拆分成兩部分,即是集合{1,...,N}的任意一個子集。式(5)可修改為[11]
其中,GAB表示生成矩陣GN的子矩陣,包含數(shù)組的元素。這里也可以將集合A和集合B看成指示行數(shù)的指數(shù)集合。對于極化碼的系統(tǒng)編碼,xB發(fā)揮著與uA在非系統(tǒng)編碼中作為信息攜帶者相同的作用,本文可以認為xB是碼字x1N僅包含信息比特的部分,而uAc和之前一樣是固定的。對于一個給定的參數(shù)為(A,uAc)的非系統(tǒng)譯碼器,如文獻[4]中提到的那樣,若式(6)和式(7)在uA和xB的可能取值中建立一個一一對應(yīng)的關(guān)系,那么就存在一個參數(shù)為(B,uAc)的系統(tǒng)譯碼器。經(jīng)過這樣的系統(tǒng)編碼后,極化碼轉(zhuǎn)換成可保留原有低復(fù)雜度特性的系統(tǒng)極化碼。
相似地,當(dāng)集合A和集合B有相同數(shù)目的元素,而GAB又是一個可逆矩陣,參數(shù)為(A,uAc)的非系統(tǒng)極化碼也能夠通過系統(tǒng)編碼轉(zhuǎn)換成參數(shù)為(B,uAc)且可保留原有低復(fù)雜度特性的系統(tǒng)極化碼[4]。在這種情況下,計算式(8)并將得到的uA代入式(7)中,參數(shù)為(B,uAc)的系統(tǒng)譯碼器就能實現(xiàn)的映射。事實上,目前已有不少的系統(tǒng)編碼的簡化方案[5,11]。例如,文獻[10]提及一種保留原有低復(fù)雜度特性的系統(tǒng)極化碼的編碼方法,其核心內(nèi)容是將SC譯碼器作為系統(tǒng)極化碼的編碼器。
非系統(tǒng)極化碼作為一種線性分組碼,可以通過系統(tǒng)編碼的方式轉(zhuǎn)換成系統(tǒng)碼,即系統(tǒng)極化碼。系統(tǒng)極化碼相對于非系統(tǒng)極化碼,不僅在編碼構(gòu)造上有所差異,在譯碼處理上也有所不同[12-13]。經(jīng)過譯碼器判決后,在接收端得到了一組完整的二進制數(shù)y,而固定比特uAc是已知的,這些對于系統(tǒng)極化碼和非系統(tǒng)極化碼是一樣的。譯碼的主要工作就是在已知這 2個參數(shù)的情況下給出源碼字的估計,固定向量可以忽略。但是,對于非系統(tǒng)極化碼而言,譯碼器在產(chǎn)生源碼字的估計和輸出其僅包含信息比特部分uA的估計后就停止工作,誤幀率和誤碼率的統(tǒng)計是通過比較uA和完成的。對于系統(tǒng)極化碼而言,譯碼器在產(chǎn)生后還要計算碼字的估計并輸出其僅包含信息比特部分的估計,誤幀率和誤碼率的統(tǒng)計是通過比較xA和完成的。系統(tǒng)極化碼和非系統(tǒng)極化碼在譯碼處理上的差異如圖1所示。
圖1 系統(tǒng)極化碼和非系統(tǒng)極化碼的譯碼處理
第2節(jié)和第3節(jié)已介紹了系統(tǒng)極化碼和非系統(tǒng)極化碼在編碼構(gòu)造和譯碼處理上的差異,本節(jié)將提供充足的證據(jù)證明系統(tǒng)極化碼比非系統(tǒng)極化碼具有更好的性能。這里進行的所有的仿真實驗是在AWGN信道下對不同碼長和不同碼率的極化碼進行的,調(diào)制方式均為二進制相移鍵控(BPSK, binary phase shift keying)。本文也采用不同的譯碼算法對結(jié)構(gòu)上不同的系統(tǒng)極化碼和非系統(tǒng)極化碼進行仿真分析。
圖 2給出的是在 SC譯碼算法下,當(dāng)碼長N=256,碼率R分別為0.36、0.50、0.84時的SPC和NSPC的誤幀率性能曲線。通過觀察圖2可以發(fā)現(xiàn),SPC和NSPC具有相同的誤幀率性能。而且,碼率越小,極化碼的誤幀率性能越好。
圖2 碼長N=256時,不同碼率的SPC和NSPC在SC譯碼算法下的誤幀率性能曲線
然而,圖2并不能充分地證明SPC和NSPC具有相同的誤幀率性能。為此,本文考慮了不同碼長的極化碼。圖3為當(dāng)碼率R=0.50,碼長N分別為256、512、1 024時SC譯碼所得的誤幀率性能曲線。由圖3可知,仿真結(jié)果再次證明SPC和NSPC的誤幀率性能是一致的。當(dāng)然,在信噪比較高的區(qū)間,碼長越大,極化碼的誤幀率性能越好。
圖3 碼率R=0.50時,不同碼長的SPC和NSPC在SC譯碼算法下的誤幀率性能曲線
圖4為當(dāng)碼率R=0.50時,碼長N=256的SC譯碼和碼長N=512的SCL譯碼所得的NSPC和SPC的誤碼率性能曲線。SCL譯碼器的列表大小設(shè)置為32。在相同的仿真情況下,SPC明顯比NSPC具有更好的誤碼率性能。例如,圖4中SCL譯碼下誤碼率達到10-3時,SPC的信噪比約為1.8 dB,而NSPC的信噪比約為2.2 dB,因而SPC比NSPC獲得了將近0.4 dB的編碼增益。同時也可以看出,碼長對極化碼性能的影響同樣適用于SPC,即碼長越長,SPC的誤碼率性能越好。
圖4 碼率R=0.50時,不同碼長的SPC和NSPC的誤碼率性能曲線
基于3×3核矩陣的SPC和NSPC[14-15]的誤碼率性能的仿真結(jié)果如圖5所示。從圖5中可以看出,對于碼長類型為N=3n形式的極化碼,仿真結(jié)果表明SPC比NSPC具有更好的誤碼率性能。值得注意的是,前文進行仿真實驗的極化碼碼長類型為N=2n形式,而這里仿真的極化碼碼長類型為N=3n形式。換句話說,前者是基于2×2核矩陣的極化碼,后者是基于3×3多維核矩陣的極化碼,這2種極化碼在結(jié)構(gòu)上是不同的。此處碼長N=243,碼率R=0.50,基于復(fù)雜度方面的考慮采用的是SCL譯碼算法[16-17],列表大小設(shè)置為32。極化碼還有其他高性能的譯碼算法,如串行抵消堆棧(SCS, successive cancellation stack)和循環(huán)冗余校驗-串行抵消列表(CRC-SCL,cyclic redundancy check-successive cancellation list)等譯碼算法[18-19]。
圖5 碼長N=243、碼率R=0.50時的SPC和NSPC在SCL譯碼算法下的誤碼率性能曲線
綜上所述,本文從不同碼率、不同碼長和不同譯碼算法以及不同結(jié)構(gòu)的極化碼等方面系統(tǒng)地分析了SPC和NSPC的性能。仿真結(jié)果證明了SPC和NSPC具有相同的誤幀率性能,但前者具有更佳的誤碼率性能。文獻[4-5]論述和證明了SPC相應(yīng)的編碼方法及其具有與NSPC同樣的編碼復(fù)雜度。因此,極化碼可通過系統(tǒng)編碼方案來彌補其在中短碼長上性能的不足,而不必付出編碼復(fù)雜度高的代價。同時,文獻[3]指出基于2×2核矩陣的極化碼易受到差錯傳播的影響,文獻[4]在特定的碼長、碼率和譯碼算法的條件下說明基于2×2核矩陣的SPC比NSPC對差錯傳播具有較強的抵抗性,而文獻[7]在特定碼長、碼率等仿真條件下研究對比了基于2×2核矩陣的SPC和NSPC的性能。但這些文獻并未系統(tǒng)地論證SPC和NSPC的性能差異性以及SPC對差錯傳播的抵抗性。本文較系統(tǒng)地對SPC和NSPC的性能差異性進行了研究,這些仿真結(jié)果從側(cè)面證明了SPC在SC譯碼算法下對差錯傳播的抵抗性比NSPC更強,也佐證了上述文獻的研究成果。此外,文獻[4-5]并未對SPC和NSPC的性能差異性進行詳細的分析。文獻[11]提出了一種基于降維裂解策略的 SPC并行編碼方案,但涉及非系統(tǒng)極化編碼和系統(tǒng)極化編碼方案及其相應(yīng)性能的研究較少,該編碼方案降低了計算復(fù)雜度,但并不能改善極化碼的性能。
SPC和NSPC的性能差異性的機理與極化碼基于信道極化現(xiàn)象的編碼思想有關(guān)。當(dāng)碼長足夠大時,信道極化產(chǎn)生的一部分信道的信道容量會逼近1,而另一部分的信道的信道容量則逼近0,用信道容量大的、幾乎無噪聲的信道傳輸含有信息量的信息比特,又用信道容量小的、充滿噪聲的信道傳輸固定比特,這樣極化碼便在理論上可達信道容量,實現(xiàn)性能的最優(yōu)化。當(dāng)碼長足夠大時,信道兩極分化,因此也需要信息比特和固定比特的兩極分化。NSPC僅僅是將源碼字拆分成信息比特和固定比特2個部分,而SPC在編碼步驟上將源碼字和碼字都拆分成信息比特和固定比特2個部分,使信息比特和固定比特的分化更加明顯。這樣SPC會把更多含有信息量的信息比特分配到信道容量逼近1的信道上,在傳輸?shù)目偞a數(shù)不變的情況下,誤碼的次數(shù)會更少,所以SPC比NSPC具有更好的誤碼率性能。此外,譯碼統(tǒng)計誤碼率時,NSPC比較的是源碼字僅包含信息比特的部分和源碼字僅包含信息比特部分的估計,而SPC比較的是碼字僅包含信息比特的部分及其估計,這樣也會使SPC和NSPC的誤碼率性能有所不同。
SPC比NSPC對差錯傳播具有更強的抵抗性,這是因為SPC將碼字進一步有效分割,信息比特被分配到碼字而不是源碼字,信息比特更多地被分配到可靠信道上,系統(tǒng)編碼中的信息比特能夠直接地通過信道進行觀察。同時,誤幀率一般是指譯碼后有誤的幀數(shù)占總幀數(shù)的比例,因此系統(tǒng)編碼后的極化碼在誤幀率性能上并沒有什么變化。然而,源碼字估計中的任何譯碼錯誤本該在進一步編碼這一步驟中被放大,但是仿真結(jié)果卻不是這種情況。這個問題是未來值得研究的一個課題。本文的仿真實驗是采用SC和SCL譯碼算法進行譯碼的,所得出的結(jié)果還需要得到置信傳播、SC的其他改進和輔助算法等譯碼算法的進一步驗證。
其中,Ad表示碼字重量為d的碼字數(shù)目。為了更好地分析分組碼C的誤碼率性能,式(9)可擴展成碼字輸入輸出質(zhì)量枚舉函數(shù)(IOWEF, input-output weight enumerating function),即
若給定一個二進制(n,k)線性分組碼C,則C的碼字重量枚舉函數(shù)(WEF, weight enumerating function)可定義為
其中,Am,d表示輸入碼字重量為m的信息產(chǎn)生的輸出碼字重量為d。距離譜為線性分組碼C對應(yīng)的WEF和 IOWEF的碼字重量分布。令路徑l∈{0,1,…,L-1}和譯碼層次i∈{0,1,…,N-1},則新的路徑度量定義為[20]
路徑似然的比較等同于路徑度量值的比較,利用基于對數(shù)似然值路徑度量的SCL譯碼算法,計算極化碼距離譜的流程如圖6所示[14]。
圖6 計算極化碼距離譜的流程
距離譜可用來分析分組碼的性能,而極化碼實際上也是一種線性分組碼,所以極化碼的誤碼率和誤幀率性能也能通過距離譜分析。相應(yīng)的距離譜可按圖 6所示的流程獲得。誤幀率Pf{ε}的上界可由聯(lián)合界獲得[21],即
其中,dε表示事件,碼字重量d≥1的碼字比全0碼字更接近向量,函數(shù)這里利用聯(lián)合界可得出誤幀率的上界。同樣地,利用聯(lián)合界,可得誤碼率的上界[22]
其中,K表示信息塊長。具體地,通過圖6所示的步驟完成距離譜的計算,獲得WEF和IOWEF,再將生成的WEF和IOWEF等相關(guān)參數(shù)代入式(12)和式(13),就可以獲得極化碼的誤幀率和誤碼率性能的上界。式(12)和式(13)中小于或等于號的左邊表示極化碼的誤幀率或誤碼率性能的上界,右邊則是對應(yīng)的誤幀率和誤碼率性能的上界,這里的聯(lián)合界需要和相關(guān)的距離譜配合才能得出差錯性能的上界。值得注意的是,這里的性能上界是指極化碼在理論上誤碼率或誤幀率性能所能達到的上限,可用于分析極化碼的性能趨勢,但并不代表具體的性能。
按照圖6中的方法得出生成的WEF,再根據(jù)式(12)就能獲得SPC和NSPC的誤幀率性能上界,如圖7所示。仿真條件為碼率R=0.50,列表L=32,碼長N=128。其中,虛線表示極化碼誤幀率的性能上界,即極化碼理論上所能達到的誤幀率最大值;而實線表示通過仿真分析達到的極化碼誤幀率性能。從圖7中可以看出,NSPC具有和SPC一樣的FER性能,并逐漸逼近其性能上界,NSPC和SPC的誤幀率性能上界幾乎相等,同時SPC的FER性能上界曲線卻有大于1的部分,這正說明了差錯性能上界只是理論上的最大數(shù)值,而不是實際上所能達到的FER性能。仿真得到的誤幀率性能和對應(yīng)的性能上界并沒有沖突,進一步驗證了圖2和圖3仿真結(jié)果的正確性。
根據(jù)圖6計算出的WFE和IOWFE以及式(13),可得出極化碼誤碼率的性能上界。在同樣的上述仿真條件下,得出SPC與NSPC的誤碼率性能上界,如圖8所示。圖8曲線表示極化碼在一定條件下所能達到的最大BER性能,即BER性能上界。和實際情況一樣,SPC比NSPC具有更好的BER性能上界。這里得出的SPC和NSPC的BER性能上界仍然有差異,與圖4和圖5中這兩者的BER性能差異相呼應(yīng)。
圖7 SPC與NSPC在SCL譯碼算法下的誤幀率上界
圖8 SPC與NSPC在SCL譯碼算法下的誤碼率上界
本文在不同碼率、不同碼長、不同碼長類型和不同譯碼算法等仿真條件下,比較詳細地證明了SPC和NSPC具有相同的誤幀率性能,但前者具有更好的誤碼率性能。同時,本文給出了SPC和NSPC的性能差異的機理,也論證了SPC對差錯傳播具有更強的抵抗性,并分析了其原因。此外,利用距離譜分析極化碼理論上的誤碼率和誤幀率性能,進一步驗證了仿真結(jié)果的合理性。在采用相同譯碼算法的情況下,使用系統(tǒng)編碼方案有利于優(yōu)化極化碼的性能以及在5G通信中的應(yīng)用。將NSPC轉(zhuǎn)換成SPC的關(guān)鍵在于尋到合適的指數(shù)集合A和B,使生成矩陣的子矩陣GAB是可逆矩陣。對于多維核矩陣構(gòu)造的極化碼,如碼長類型為N=5n形式的極化碼,系統(tǒng)編碼能否有利于其性能的優(yōu)化,也是未來值得研究的一個方向。