黃譽霆,張梅香,竇 寅,周玲霞
(揚州大學 信息工程學院,江蘇 揚州 225000)
為了滿足第五代通信系統(5G)的增強型移動寬帶、超可靠和低延遲通信以及大規模的機器類型通信的要求[1],極化碼作為一種新興技術,被作為未來的研究重點和方向。
極化碼由Arikan教授提出,它是一種糾錯碼[2],也被劃分為線性分組碼。極化碼通過信道極化現象進行編碼,通過將全部的信道合并和拆分來極化信道以獲得可靠性最高的信道。通過該過程可以證明其在二進制輸入離散無記憶信道(B-DMC)中能夠獲得全部信道容量的同時逼近香農界限。此外,極化碼還可以通過簡單的編碼器和簡單的連續消除(SC)譯碼器來實現極化碼的編碼和譯碼,其譯碼復雜度僅為O(NlbN)。
極化碼具有較高的研究價值和使用意義,但受到其核心矩陣的限制,碼長被限定在N=2n(n=1,2,…),所以為了使極化碼可以實現任意碼長,使極化碼的編碼速率可變,需要對現有極化碼編碼方式進行改進。
第1類方法是通過改變極化碼的核心矩陣來改變極化碼的碼長[3],然而使用該方法得到的極化碼碼長依然被限制為核心矩陣維度的冪次。第2類方法是通過級聯的方式,重新構造編碼方式,例如使用極化碼和LDPC碼進行級聯來得到級聯碼[4-5],然而該方法需要重新研究新的譯碼方式,使得編譯碼的難度大大增加。第3類方法對極化碼編碼后的碼字進行刪余來改變碼長。該方法不改變原始極化碼的編碼和譯碼結構,大大減少了重新研究的成本,也沒有增加復雜度。
盡管第3類方法不改變原有的編碼和譯碼結構,但由于對傳輸碼字的刪余,導致了譯碼的對數似然比(LLR)信息的丟失,使得譯碼性能下降。針對這個問題,文獻[6]提出了通過窮搜的方法來選擇鑿孔位置的方法,保證了極化碼極化效果的最大化,同時使得譯碼性能優于文獻[7]中提出的隨機鑿孔方法,但增加了算法的復雜度,使得難以在實踐中得到應用。文獻[8]通過信道的可靠性來進行鑿孔,但是忽略了鑿孔后剩余信道可靠性的改變。文獻[9]通過重新計算信道可靠性來進行鑿孔,減少了小容量信道所占的比例來提高譯碼性能。文獻[10]提出了一種復雜度較低的鑿孔算法,該算法也會導致極化碼性能降低。文獻[11]提出了一種性能優于Turbo碼的準均勻鑿孔算法(QUP),但是由于該算法的譯碼端依然沒有鑿孔位置的LLR信息,所以會導致譯碼能力的下降,并且這種影響會隨著碼率的增大而增大。文獻[12]提出了一種新的鑿孔方式,即末端位反轉置換縮短極化碼。根據極化碼生成矩陣GN確定鑿孔位置。GN的特征是存在一些列權重和為1的列,刪去了列權重和為1的位同時,刪除該位所對應的行,再次計算列權重。重復上述操作,直到達到所需的代碼長度,可以發現,這些列權重為1的位置都處于末端。盡管該方法解決了QUP算法中LLR信息丟失的問題,使得該算法也能適用于大碼率的極化碼,然而依舊難以達到原始極化碼的性能。
以上方法都是基于非系統極化碼的。同時,極化碼支持系統編碼,原始輸入數據在編碼器輸出中能夠原樣出現[13]。就誤碼率(BER)而言,系統極化碼的性能可能優于原始非系統極化碼[14]。
文獻[15]通過將極化碼的QUP算法應用到系統極化碼,提高了系統極化碼的BER性能。該方法在低碼率情況下,BER性能良好;但在高碼率情況下,BER性能變差。文獻[16]提出將文獻[10]的方法應用到系統碼中,該方法提高了極化碼BER的性能,然而依然低于原始的系統極化碼。本文提出了一種基于反饋位的系統極化碼的縮短方法,通過選取一些特定的位置作為反饋位,將反饋值填入反饋位并再次編碼的方式使得可靠性較差的位置成為鑿孔位并且使得編碼后的LLR信息為譯碼端可知,該方法能進一步提高系統極化碼的BER性能。
隨著極化碼碼長的增加,極化碼可以達到全部信道容量。極化碼依靠信道極化技術進行編碼,按照可靠性將信道分為Ai,Ac,分別放置信息比特和凍結比特。通過在Ai中傳遞信息并凍結Ac中的位,可以獲得更好的結果。碼長為N時,極化碼的編碼方式可以表示為:
(1)

(2)

(3)
當然也可以將編碼過程表示為:
(4)
式中,uAi為傳輸比特中的信息比特;uAc為傳輸比特中的凍結比特;GAi,GAc分別為生成矩陣GN的子矩陣,分別由行集合Ai,Ac組成。

xB=uAiGAiB+uAcGAcB,
(5)
(6)
式中,GAB是G的子矩陣,表示由A的行集合和B的列集合組成的矩陣。
根據式(5)和式(6),可以推出:
(7)
在文獻[17-19]中得到結論:
GAiB=(GAiB)-1,
(8)
所以,
(9)
通過上述公式,可以得到系統極化碼的兩步編碼方案。編碼因子圖如圖1所示。由圖1可以看出,由于系統極化碼在第1次編碼后強制將編碼后相同凍結位的位置碼字歸零,所以在譯碼后需要再次進行編碼以得到最后的結果,并且系統極化碼依然可以使用非系統極化碼所使用的SC譯碼來進行譯碼。

圖1 系統碼編碼因子圖
常規的鑿孔方法通過將不確定的“0”值填入譯碼端來進行譯碼操作,會導致譯碼性能的大幅度下降。文獻[10]通過在發送端和接收端共享固定的鑿孔位,并且通過特定的算法使得鑿孔位的碼字為“0”來讓接收端知道鑿孔位的比特值,因此可以將鑿孔位的LLR設置為無窮大。基于位反轉的極化碼縮短方法的具體步驟如下:

基于位反轉的極化碼縮短方法給定碼長為N,鑿孔后剩余碼長M,信息長度K發送端:初始化Ai=?,Ac=?,設定初始的鑿孔比特位為P={M+1,M+2,...,N}使用極化權重算法來確定極化碼的可靠性排序RN通過比特算法更新鑿孔比特位為P0通過信道可靠性排序RN選擇剩余的凍結位與信息位,隨后進行編碼接收端:將鑿孔位對應的比特位填入與“0”相對的無窮大,進行譯碼
位反轉的縮短方法的編碼因子圖如圖2所示,展示(6,4)縮短碼。當極化碼碼長N=8,M=6,K=4時,進行位反轉縮短算法的過程如下。

圖2 位反轉的縮短方法的編碼因子圖
在發送端首先設定初始的鑿孔比特位P={7,8},隨后通過極化權重算法來確定其可靠性排序,RN={1,2,3,5,4,6,7,8},然后通過位反轉計算方法得到反轉后的鑿孔比特位P0={4,8},將信息位{3,5,6,7}、凍結位{1,2}和鑿孔比特位{4,8}填入,進行編碼。在接收端通過在鑿孔比特位填入與“0”對應的無窮大LLR信息來進行譯碼。
常規的縮短算法雖然已經解決了刪余位置LLR信息缺失的問題,但是造成了可靠性較高信道的大量缺失。為了解決這個問題,提出了一種針對系統極化碼的基于反饋值的縮短方式,通過填入反饋值的方式使一些不能作為鑿孔比特位的位置變得可以鑿孔。
(10)

與常規縮短算法不同的是本文需要將反饋值填入定義的反饋位中,所以定義Bp={p+N/4,p+2N/4,p+3N/4,p∈P}為最優信道位,即可以從其中挑選反饋位的位置。
下面給出基于反饋值的系統極化碼縮短方式的具體步驟:

基于反饋值的系統極化碼縮短方式給定碼長為N,鑿孔后剩余碼長M,信息長度K(K為初始信息長度加上反饋長度),反饋值長度N-M發送端:初始化Ai=?,Ac=?,設定初始的鑿孔比特位為P={1,2,...,N-M}使用極化權重算法來確定極化碼的可靠性排序RN,并且選擇前K+N-M個可靠性最高的信道更新Ai檢查P的最優信道位在Ai中是否存在,如果不是全部存在,則更新P為P={s+1,s+2,....,s+N-M|s+N-M≤N/4},其中s為頂部的不存在Ai中的比特位的數量選定{max(δp)|δp∈Bp∩Ai,p∈P}作為反饋位將信息u填入Ai中除最優信道位的信道,其余位置填入“0”,進行第一次系統碼編碼計算反饋值u'=x'F n2[s+1,s+2,...,s+N-M]將反饋值填入反饋位進行系統碼第二次編碼接收端:將與“0”相對應的無窮大LLR信息作為譯碼信息進行譯碼得到譯碼結果后將信息位的譯碼信息填入,其余位填入“0”,進行再次編碼以得到原始信息u
基于反饋值的縮短方法的編碼因子圖如圖3所示,再編碼因子圖如圖4所示,展示(6,4)縮短碼。

圖3 基于反饋值的縮短方法的編碼因子圖

圖4 再編碼因子圖
當極化碼碼長N=8,M=6,K=4(此時K的信息長度為初始信息長度加上反饋值的長度),N-M=2時,進行基于反饋位的縮短算法過程如下。
在發送端首先設定初始的鑿孔比特位P={1,2},隨后通過極化權重算法來確定其可靠性排序,RN={1,2,3,5,4,6,7,8},然后選定可靠性最高的信道Ai={4,6,7,8},并判定P的最優信道{7,8}存在于Ai中,將{7,8}作為反饋位;開始進行系統碼第一次編碼,計算反饋值u′為{0,1};最后填入反饋值,并將除信息位的其余比特位置“0”,進行系統碼第二次編碼。在接收端將鑿孔位的LLR信息更新與“0”相對應的無窮大,進行譯碼,得到信息位的譯碼信息{1,0},隨后進行再次編碼以得到原始的傳輸信息。
通過仿真研究來驗證提出方法的有效性。為了比較提出方案與原始系統極化碼以及非系統極化碼的BER與誤幀率(FER)的性能,提出了4種方案。一種是無縮短的非系統極化碼,一種是無縮短的系統極化碼,另外則是文獻[16]中基于位反轉置換的縮短系統極化碼方案與提出的基于反饋值的縮短系統極化碼。對于未鑿孔的非系統極化碼和系統極化碼,碼長皆為256,而傳輸的信息長度為了與縮短方案保持一致,設置為50和100,此時碼率分別為50/256和100/256。而對于縮短系統極化碼,碼長與未鑿孔極化碼相似為256。由于反饋值的參與會導致碼率的改變,此時位反轉縮短極化碼的碼率為50/200,100/200,而提出的方法的碼率則為106/200,156/200。發送端調制方法為二進制相移鍵控,信道模型則是二進制輸入的加性高斯白噪聲通道,信道估計算法則為華為提出的極化權重算法,而譯碼方法則選擇連續刪除算法,最大的模擬幀數為106。
不同信息數下非系統極化碼和系統極化碼的BER性能和FER性能如圖5和圖6所示。

圖5 不同信息數下系統碼與非系統碼BER比較

圖6 不同信息數下系統碼與非系統碼FER比較
由圖5可以看出,在相同碼率下,系統碼的BER均優于非系統碼的BER,當碼率為100/256,系統碼的BER相比于非系統碼有0.3 dB的提升,當碼率為50/256時,系統碼的BER有0.25 dB的提升。
由圖6可以看出,在不同的碼率下,系統碼與非系統碼的FER相似。
不同信息數下文獻[14]、文獻[16]與本文所提出方法的BER性能比較如圖7和圖8所示。

圖7 3種方法的BER比較(實際傳輸信息長度為100 bit)

圖8 3種方法的BER比較(實際傳輸信息長度為50 bit)
由圖7和圖8可以看出,文獻[16]提出的縮短方法性能均低于原始的系統極化碼,當實際傳輸的信息長度為100 bit時,本文提出方法與原始的系統極化碼相比有1.5 dB的增益。當實際傳輸的信息長度為50 bit時,本文提出方法與原始的系統極化碼相比有2.5 dB的增益。
傳輸信息長度為100 bit時3種方法的FER性能比較如圖9所示。

圖9 3種方法的FER比較(實際傳輸信息長度為100 bit)
由圖9可以看出,當實際傳輸的信息長度為100 bit時,提出的方法與原始的系統極化碼相比FER有1.5 dB的增益。
本文提出了帶有反饋值的系統極化碼縮短算法的選擇,將帶有反饋值的縮短算法應用到系統極化碼中。通過對極化碼進行刪余,解決了極化碼碼長不能改變的問題,并且改變了極化碼的編碼率,提高了性能。仿真結果表明,在系統極化碼的方式比原始極化碼可以獲得更高的性能,而在傳輸信息相同的情況下,在低碼率與低刪余數下,基于反饋位的縮短極化碼的性能也優于傳統的系統極化碼。