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