(西安烽火電子科技有限責任公司,西安 710075)
隨著通信系統(tǒng)的迅猛發(fā)展以及互聯(lián)網(wǎng)在國民生活中的普及,人們對通信的需求正在發(fā)生變化,從最初的語音通話逐漸向綜合業(yè)務(wù)方向發(fā)展,如視頻點播、互動直播等多媒體業(yè)務(wù),同時參與者的通信需求、通信時間、通信位置均變得越來越隨機。在這種隨機的情況下,為了實現(xiàn)可靠通信,發(fā)送方需要根據(jù)其與接收方之間的實際通信環(huán)境與業(yè)務(wù)需求實時改變數(shù)據(jù)傳輸速率。為解決這一問題,可以在信息發(fā)送端進行不同碼率的信息編碼。例如第3代(3G)與第4代(4G)移動通信中均采用了碼率為1/3、1/2和2/3等信道編碼方案。當實際的通信環(huán)境較好、信道質(zhì)量較高時,發(fā)生錯誤的概率較低,可以在信息比特后添加少量校驗位(高碼率編碼)來克服傳輸過程中可能出現(xiàn)的少量錯誤;反之,就要在信息比特后添加大量校驗位(低碼率編碼),因為此時信息比特經(jīng)信道傳輸會以較大的概率發(fā)生錯誤。
在實際應(yīng)用中,碼率類型越多有效性就越高[1]。然而,眾多的碼率類型無疑增加了收發(fā)兩端的編譯碼復雜度,同時降低了系統(tǒng)整體的可靠性。因此一般的做法是制定幾種常用碼率,當需要其他碼率時,通過一些方法(如打孔、添加已知序列等)在常用碼率的基礎(chǔ)上進行變化得到。在編譯碼領(lǐng)域?qū)⒛軌蚩焖凫`活地改變編譯碼參數(shù)的策略稱為參數(shù)捷變編譯碼技術(shù),此項技術(shù)使得編譯碼器能夠隨通信環(huán)境的變化而快速、靈活地改變自身的編碼(碼長、碼率)參數(shù),在最大化利用信道資源的情況下盡可能地提高有效性與可靠性。
極化碼(Polar Code)[2]由土耳其的Arikan教授于2008年首次提出,是一種基于信道極化現(xiàn)象構(gòu)造的碼,且是目前唯一可理論證明能夠達到二元輸入離散無記憶信道(Binary-input Discrete Memory-less Channel,B-DMC)容量的信道編碼方案。文獻[3]指出,當采用串行抵消列表(Successive Cancellation List,SCL)譯碼算法時,極化碼的整體性能在某些應(yīng)用場景下取得了和當前最先進的信道編碼技術(shù)如低密度奇偶校驗(Low Density Parity Check,LDPC)碼[4]、Turbo碼[5]相同甚至更優(yōu)的性能。在2016年11月結(jié)束的第5代(5G)移動通信控制信道短碼方案討論中,中國主推的極化碼方案毫無懸念地從美國主推的LDPC碼、法國主推的Turbo碼兩大競爭對手中脫穎而出,成為5G控制信道編碼方案。然而,由于極化碼的極化特性限制了其碼字長度為2的冪次,從而限制了極化碼在工程上的應(yīng)用。
針對上述弊端,本文給出了基于極化碼的參數(shù)捷變編譯碼技術(shù),在不改變編譯碼器硬件結(jié)構(gòu)與程序的情況下僅通過讀取配置文件就能夠?qū)崟r、快速地改變編譯碼參數(shù),以適應(yīng)各種通信環(huán)境與用戶需求,具有簡單、快速、易實現(xiàn)等優(yōu)點。
信道具有極化特性,類似于社會學中的馬修(Matthew)現(xiàn)象。Matthew現(xiàn)象是指“The rich get richer and the poor get poorer(富者越富,窮者越窮)”。體現(xiàn)在信道上是經(jīng)過某種組合后各個子信道具有不同的信道容量,好的信道會越來越好,趨近于無噪聲信道,差的信道會越來越差,無法傳輸任何信息。因此好的信道適用于傳輸用戶信息,在接收端能夠以較大概率恢復。
圖1 碼長為8的極化碼Trellis圖Fig.1 Trellis of polar code with code length 8
將圖1的編碼規(guī)則改寫為矩陣形式有
(x0,x1,x2,…,x7)×F8×Π8=(c0,c1,c2,…,c7)。
(1)
編碼時只需要將待編碼比特x0,x1,x2,…,xn-1置于Trellis圖左邊,按照Trellis上的邏輯運算規(guī)則從左向右逐級進行計算,即可得到極化碼字c0,c1,c2,…,cn-1。從信道的極化特性來看,圖1所示的Trellis中8條子信道具有不同的信道容量,例如x7對應(yīng)的7號子信道的信道容量最大,x0對應(yīng)的0號子信道的信道容量最小。因此,在編碼時需要將待傳送的信息放置在信道容量較大的信道上。
由于每個子信道是具有不同的信道容量,可以依據(jù)信道容量從大到小對個子信道進行排序,將前k條子信道作為加載信息(Information)比特的信道,其余的n-k條子信道作為加載固定(Frozen)比特的信道。因此在編碼前將待編碼比特x0,x1,x2,…,x7劃分為信息比特和固定比特。編碼時將固定比特設(shè)置為收發(fā)端事先約定好的比特(如0 bit),依據(jù)Trellis圖中的邏輯順序逐級計算從而得到極化碼。
需要說明的是,承載信息比特和固定比特的信道選取不是一成不變的,它與信道模型緊密相關(guān),不同類型的信道所選取出的信息信道也是不同的。嚴格來說,即便都是加性白色高斯噪聲(Additive White Gaussian Noise,AWGN)信道,如果傳輸信道的信噪比(Signal-to-Noise Ratio,SNR)不同,那么加載信息比特和固定比特的信道也不同。對于常用的AWGN信道,可利用密度進化(Density Evolution,DE)理論[7]對信道進行選取。
前面介紹的為非系統(tǒng)極化碼,即有用信息在碼字中是不能直接觀測的,而實際的通信系統(tǒng)中經(jīng)常用到的是系統(tǒng)碼,即有用信息在生成的碼字中能夠直接觀測的。系統(tǒng)極化碼的編碼主要思想如下:將Trellis圖右邊的輸出比特位分為兩部分,一部分為系統(tǒng)信息(A),一部分為系統(tǒng)校驗(B);相應(yīng)的在Trellis圖左邊的輸入比特為也分為兩部分,一部分為信息比特,一部分為固定比特,如圖2所示。
圖2 系統(tǒng)極化碼生成過程Fig.2 Systematic polar code
系統(tǒng)極化碼的編碼目的就是在已知系統(tǒng)信息和固定比特的情況下,導出信息比特和系統(tǒng)校驗,其本質(zhì)為求解線性方程組。需要指出的是,Trellis圖右邊承載系統(tǒng)信息和系統(tǒng)校驗的子信道的選取是信息比特和固定比特子信道序號的函數(shù),即A和B的選取是和Information、Frozen緊密相關(guān)的。若分配給信息、固定比特的序號改變,則系統(tǒng)信息和系統(tǒng)校驗的序號選取也跟隨著產(chǎn)生變化。
令(x0,x1,x2,…,xn-1)×Fn=(q0,q1,q2,…,qn-1),由公式(1)可知
(q0,q1,q2,…,qn-1)×Πn=(c0,c1,c2,…,cn-1)。
(2)
若(x0,x1,x2,…,xn-1)中信息比特序號與(q0,q1,q2,…,qn-1)中序號選取的完全相同,則系統(tǒng)極化碼對應(yīng)的線性方程組有唯一解。假設(shè)第i條子信道的容量經(jīng)排序(由大到小)后的序號為j=D(i),則有i=D-1(j)。其中,函數(shù)D(·)表示密度進化(DE)過程,函數(shù)D-1(·)表示函數(shù)D(·)的反函數(shù)。例如,圖2 所示的Trellis在AWGN環(huán)境下子信道容量大小順序與子信道序號關(guān)系如表1所示。
表1 碼長為8的極化碼子信道容量與序號關(guān)系Tab.1 The relationship between capacity and index of sub-channel with polar code length 8
從表1可知,第7條子信道對應(yīng)的信道容量最大,第6條子信道對應(yīng)的信道容量次之。編碼時可以按照容量由大到小的順序選取前k條子信道加載信息比特。例如有3個待編碼的比特,則選取前3個信道容量較大的信道,即第7=D-1(0)、6=D-1(1)、5=D-1(2)號信道加載的x7、x6、x5為信息比特,則相應(yīng)的選取q7、q6、q5為系統(tǒng)信息,即Trellis圖中的c3、c5、c7應(yīng)為承載系統(tǒng)信息的比特位。因為
(3)
捷變編碼技術(shù)中需要處理的主要涉及碼率、碼長兩個重要參數(shù),因此便捷編碼技術(shù)需要解決的問題有構(gòu)造碼長不變、系統(tǒng)信息長度可變的碼字和構(gòu)造系統(tǒng)信息長度不變、碼長可變的碼字。
利用密度進化理論對各個子信道的信道容量進行大小排序,并生成配置文件。利用信息比特與系統(tǒng)信息之間的關(guān)系生成系統(tǒng)極化碼,具體的算法如下:
Step1 生成配置文件F。
Step1.1 新建空白配置文件F,給出碼長為n(n=2m)的Trellis圖。
Step1.2 利用DE理論對各個子信道的信道容量進行由大到小排序,第i子信道容量由大到小排序后的序號為j=D(i)(0≤i Step1.3 令j=0, (1)在配置文件F中追加信道容量排在第j位的子信道序號i=D-1(j); (2)j=j+1; (3)若j Step2 系統(tǒng)信息的子信道選取。 Step2.2 構(gòu)造集合Q={q0,q1,…,qi,…,qk-1},其中,qi=1,若i∈L;否則qi=0。 Step3 生成系統(tǒng)極化碼。 Step3.3 令I(lǐng)=0,進行以下迭代過程: (1)按照Trellis上的邏輯運算規(guī)則從左向右逐級進行計算; (2)按照Trellis上的邏輯運算規(guī)則從右至左逐級進行計算; 系統(tǒng)信息比特個數(shù)為k,基碼碼長為n,則生成碼字長度為l(k≤l≤n)的極化碼算法(參數(shù)捷變的極化編碼算法)如下: Step1 生成碼長為n(n=2m)的極化碼的配置文件F。 Step4 在長度為n(n=2m)的極化碼中隨機選取n-l個序號,并將對應(yīng)的比特進行打孔,得到長度為l的極化碼字。 極化譯碼器采用列表(List)譯碼算法[8]進行譯碼。List譯碼是指將可能的碼字進行列表,基于表中的碼字進行擴展,并利用某種取舍準則從擴展后的列表中拋棄一些不可能的碼字,剩余的M個碼字組成的列表作為下一次擴展的基列表。極化譯碼是從第0 bit開始逐比特進行判決/擴展,直到碼字的最后1 bit為止。需要說明的是,當M=1即幸存列表中僅有一個幸存碼字時,SCL譯碼算法退化為串行抵消(Successive Cancellation,SC)譯碼算法。 一般地,在通信系統(tǒng)中會利用循環(huán)冗余校驗(Cyclic Redundancy Check,CRC)來提高系統(tǒng)的可靠度,也即信息比特序列是符合CRC校驗的。極化譯碼器同樣可以利用CRC來提升譯碼性能,此時譯碼器的輸出準則改為選取置信度最大且能通過CRC校驗的碼字作為譯碼器輸出,這種算法即為循環(huán)冗余輔助的串行抵消列表(CRC Aided SCL,CA-SCL)譯碼算法。 置信度增量計算是極化譯碼的重要過程,是基于Trellis圖從右向左進行,信息度量為對數(shù)似然比LLR(x),它是基于接收值y判斷比特取0的概率與比特取1的概率之比: (4) 從極化碼的Trellis圖上來看,譯碼器處理的最小單元為一個蝶形,置信度增量計算包括硬信息交換和軟信息交換過程,如圖3和圖4所示。 圖3 蝶形單元硬信息交換Fig.3 Hard information exchange 圖4 蝶形單元軟信息交換Fig.4 Soft information exchange (1)硬信息交換 將幸存碼字放置在Trellis的左邊,按照Tannr圖上的邏輯運算規(guī)則從左向右逐級進行計算。 (5) (6) (2)軟信息交換 (7) (8) 將計算得到的輸出依Trellis的連接傳送至前一級,而后對每一個蝶形單元執(zhí)行信息交換過程。當計算到第0級時,對目標比特進行判決,例如對第i比特進行判決,有 (9) 式中: 第i比特對應(yīng)的置信度增量計算規(guī)則如下: 以下仿真中的信道均為AWGN信道,調(diào)制方式為二進制相移鍵控(Binary Phase Shift Key,BPSK)。 信息位長度512 bit,極化碼字長度1 024 bit,極化譯碼算法采用SC譯碼算法,仿真結(jié)果如圖5所示。從圖5中可以看到系統(tǒng)極化碼與非系統(tǒng)極化碼兩者的誤幀率(Frame Error Ratio,FER)幾乎相同,而誤碼率(Bit Error Ratio,BER)不同,系統(tǒng)碼的誤碼率明顯優(yōu)于非系統(tǒng)碼的誤碼率。例如,當BER=10-5時,系統(tǒng)碼需要的信噪比約為3.2 dB,而非系統(tǒng)碼需要的信噪比約為3.5 dB,兩者之間有0.3 dB的性能差異。由于系統(tǒng)碼的性能優(yōu)于非系統(tǒng)碼,因此以下仿真均采用極化系統(tǒng)碼進行。 圖5 系統(tǒng)碼與非系統(tǒng)碼的性能比較Fig.5 Comparison between systematic and non-systematic polar codes 信息位長度512 bit,極化碼字長度1 024 bit,CRC生成多項式g(x)=x12+x11+x3+x2+x+1,為了簡單起見將其記作(512+12CRC,1 024)。同時為了便于比較,也給出了寬帶無線接入空中接口標準(IEEE 802.16e)中所采用的碼率為0.50的LDPC碼字性能。其中,LDPC碼校驗基矩陣維數(shù)12×24,選取擴展因子43,從而得到LDPC碼字(516,1 032)。譯碼采用和積譯碼算法[9](Sum Product Algorithm,SPA),迭代次數(shù)50次,仿真結(jié)果如圖6所示。 圖6 CA-SCL譯碼算法在不同參數(shù)下的性能Fig.6 The performances of CA-SCL decoding algorithm with different parameters 從圖中可以看到: (1)幸存碼字個數(shù)越多,CA-SCL譯碼算法的性能越好。例如當BER=10-6時,在M=1的情況下所需信噪比為3.6 dB;在M=64的情況下所需信噪比為2.0 dB,兩種情況下存在1.6 dB的性能差異。 (2)當M=4時,極化碼的性能基本與LDPC碼相同;當M>4時極化碼的性能明顯優(yōu)于LDPC碼。例如當BER=10-6、M=64時,極化碼相比于LDPC碼可獲得約0.55 dB的增益。 使用基碼長度為512的極化碼進行參數(shù)捷變,分別實現(xiàn)碼率為0.75的(412+12CRC,512)和碼率為0.50的(256+12CRC,512)極化碼以及碼率為0.33的(150+12CRC,450)縮短極化碼,譯碼算法采用CA-SCL算法,幸存碼字個數(shù)M=16。為了便于比較,同時給出了編碼參數(shù)近似相同的LDPC碼,分別是碼率0.749的大數(shù)邏輯可譯LDPC碼(961,721)[10-11]、IEEE 802.16e標準所采用的碼率0.50的(264,528)LDPC碼和IEEE 802.16e標準所采用的碼率0.33的(150,450)LDPC碼,仿真結(jié)果如圖7和圖8所示。 圖7 碼率為0.75和0.50極化碼與LDPC碼性能比較Fig.7 Performances comparison between polar and LDPC codes with code rates 0.75 and 0.50 圖8 碼率為0.33極化碼與LDPC碼性能比較Fig.8 Performance comparison between polar and LDPC code with codes rate 0.33 從仿真圖形中可以看到,當編碼參數(shù)近似相同時極化碼和縮短極化碼的性能明顯好于LDPC碼。例如在BER=10-5時,碼率為0.75、0.50和0.33的極化碼分別優(yōu)于LDPC碼0.3 dB、0.6 dB和1.3 dB。這里需要指出的是,3個不同參數(shù)的LDPC碼對應(yīng)3個不同的校驗矩陣,若一個通信系統(tǒng)要使用不同碼率的碼字,則需要由硬件分別編寫3個LDPC的編譯碼程序。然而對于極化碼來說,3個不同參數(shù)的碼字均由1個基碼通過參數(shù)捷變得到,收/發(fā)兩端分別使用1套編/譯碼器即可完成3個不同參數(shù)碼字的編譯碼,大大降低了系統(tǒng)的復雜度,這為極化碼在實際的應(yīng)用帶來了便捷。 本文從Trellis的角度對極化碼進行了描述,詳細分析了極化系統(tǒng)碼與非系統(tǒng)碼生成過程,介紹了SC、SCL和CA-SCL譯碼算法,基于鑿孔與密度進化理論提出了編碼參數(shù)捷變技術(shù),能夠在不改變編譯碼器硬件結(jié)構(gòu)與程序的情況下實時、快速地改變編譯碼參數(shù),不同參數(shù)的碼字均由1個基碼通過參數(shù)捷變得到,收/發(fā)兩端分別使用1套編/譯碼器即可。仿真結(jié)果表明,在高、中、低很寬的碼率范圍且編碼參數(shù)近似相同的情況下,極化碼的性能要優(yōu)于低密度奇偶校驗碼。本文提出的極化編譯碼參數(shù)捷變技術(shù)可為極化碼在實際通信系統(tǒng)中的應(yīng)用提供相關(guān)的理論參考,更為今后該方面課題的研究提供了借鑒。4.2 系統(tǒng)信息長度不變、碼長可變的碼字
5 極化碼的譯碼算法
5.1 譯碼原理與流程
5.2 置信度增量
6 性能仿真分析
6.1 極化系統(tǒng)碼與非系統(tǒng)碼之間的性能差異
6.2 CA-SCL譯碼算法的性能
6.3 參數(shù)捷變的極化碼性能
7 結(jié)束語