任憲文 張 琰
1.海裝上海局駐南京地區(qū)第四軍事代表室;2.南京熊貓漢達(dá)科技有限公司
Turbo碼于1993年被提出,對(duì)信道編碼產(chǎn)生了革命性的意義,使信道編碼理論研究進(jìn)入了新的階段。Turbo碼憑借優(yōu)異的譯碼性能,在各個(gè)領(lǐng)域中得到了廣泛應(yīng)用。Turbo碼在速率較低的3G和4G移動(dòng)通信中得到了很好的實(shí)踐,但是受限于其譯碼算法固有的串行性,在譯碼時(shí)延和吞吐量等方面有較大的劣勢(shì),越來越難以滿足未來通信發(fā)展的需求。因此,進(jìn)一步研究Turbo碼的并行譯碼算法、提高譯碼效率、降低譯碼時(shí)延,有重要的現(xiàn)實(shí)意義和工程價(jià)值。
Turbo碼 全 并 行 譯 碼(Fully-Parallel Turbo Decoding,F(xiàn)PTD)算法的提出,將整個(gè)碼塊的每個(gè)子塊大小分割成了1 bit,獲得了最大的并行度,并采用奇偶交織的操作,實(shí)現(xiàn)了Turbo碼的完全并行譯碼。長(zhǎng)期演進(jìn)技術(shù)(Long Term Evolution,LTE)系統(tǒng)中,使用二次項(xiàng)置換多項(xiàng)式(Quadratic Permutation Polynomials,QPP)交織器,實(shí)現(xiàn)了Turbo碼的分塊并行譯碼。FPTD算法使用QPP交織器能夠完美適用于LTE系統(tǒng),大幅減少了Turbo碼的譯碼時(shí)延,提高了吞吐量。但QPP交織器是固定的,不會(huì)隨碼率變化而自動(dòng)適配,因而極大限制了FPTD算法的性能。
隨著Turbo碼并行譯碼技術(shù)的不斷發(fā)展,構(gòu)造相應(yīng)的并行交織器一直是Turbo譯碼領(lǐng)域研究的重點(diǎn)。2016年,一些公司和研究機(jī)構(gòu)提出了“Turbo碼2.0”,即“增強(qiáng)型”Turbo碼,其采用更長(zhǎng)的碼長(zhǎng)和更低的碼率,設(shè)計(jì)了新的打孔方式和并行交織器,獲得了較好的譯碼性能。對(duì)于并行交織器的設(shè)計(jì),“增強(qiáng)型”Turbo碼采用的是近似正則置換(Almost Regular Permutation,ARP)交織器,并能跟隨碼率進(jìn)行相應(yīng)變化,可以有效應(yīng)對(duì)突發(fā)干擾,實(shí)現(xiàn)較高的并行度。
為進(jìn)一步提高FPTD算法的性能,對(duì)ARP交織器的性能進(jìn)行具體分析,并將其應(yīng)用于FPTD算法中,可以進(jìn)一步提升FPTD算法的譯碼性能。本文先簡(jiǎn)要介紹了Turbo碼的FPTD算法,再詳細(xì)描述“增強(qiáng)型”Turbo碼的ARP交織器的定義和最大無爭(zhēng)用性,并進(jìn)行了性能仿真和對(duì)比分析。
經(jīng)典的Turbo編碼器由兩個(gè)分量編碼器并行級(jí)聯(lián)而成,因而又被稱為帶交織的并行級(jí)聯(lián)卷積碼(Parallel Concatenated Convolutional Code,PCCC)。PCCC編碼結(jié)構(gòu)主要由兩個(gè)分量編碼器、內(nèi)部交織器以及刪余和復(fù)用結(jié)構(gòu)組成。LTE系統(tǒng)中Turbo碼的分量編碼器采用的編碼結(jié)構(gòu)如圖1所示。
圖1 LTE中的Turbo碼分量編碼器
相對(duì)于常規(guī)的Turbo碼,LTE的Turbo碼各個(gè)分量編碼器使用各自的尾比特來進(jìn)行狀態(tài)終結(jié),即圖1中的虛線部分,在編碼之后利用開關(guān)使寄存器歸零。狀態(tài)分量編碼器的傳輸函數(shù)為:
FPTD算法的基本譯碼架構(gòu)如圖2所示。與LTE Turbo碼的分塊譯碼架構(gòu)相比,全并行譯碼架構(gòu)相當(dāng)于把每個(gè)子塊的大小減小到1,分別對(duì)應(yīng)一個(gè)譯碼單元并進(jìn)行譯碼,將碼塊分為上下兩路。
圖2 全并行譯碼架構(gòu)
編碼交織器采用QPP交織器,作為確定型交織器,其采用兩個(gè)二次多項(xiàng)式進(jìn)行交織和解交織運(yùn)算。對(duì)于碼長(zhǎng)為K的碼塊中第i個(gè)比特,交織后的順序變?yōu)椋?/p>
其中,f1和f為交織參數(shù),均小于K。交織地址可以采用遞歸來計(jì)算,無需乘法或者取模運(yùn)算。較為簡(jiǎn)單地生成多項(xiàng)式使其復(fù)雜度低,易于實(shí)現(xiàn)。QPP交織器可以實(shí)現(xiàn)并行譯碼的無沖突交織,大大增強(qiáng)譯碼器的并行處理能力,給LTE中Turbo碼提供更高的譯碼速率。
為進(jìn)一步減小譯碼時(shí)延,F(xiàn)PTD算法充分利用了QPP交織器的奇偶特性。譯碼時(shí),將整個(gè)數(shù)據(jù)分為兩組,上路奇數(shù)位置和下路偶數(shù)位置的數(shù)據(jù)為一組(圖2中白色譯碼塊);上路偶數(shù)位置和下路奇數(shù)位置的數(shù)據(jù)為另一組(圖2中陰影譯碼塊)。一次迭代過程就分為了兩個(gè)半次迭代過程,在上半次迭代過程中,第一組白色譯碼塊進(jìn)行計(jì)算,并交換外信息和傳遞狀態(tài)度量值到陰影塊;下半次迭代過程中,第二組陰影譯碼塊進(jìn)行計(jì)算,并交換外信息和傳遞狀態(tài)度量值到白色塊,每次操作上下兩路都有50%的碼字進(jìn)行譯碼。按照這種操作,在一次迭代過程中,所有碼字完成譯碼只需要2個(gè)時(shí)鐘周期,并且實(shí)現(xiàn)了完全并行的操作。傳統(tǒng)的Log-MAP算法在一次迭代過程中完成所有碼字的譯碼,需要的時(shí)鐘周期與碼塊長(zhǎng)度有關(guān),碼長(zhǎng)越長(zhǎng),譯碼時(shí)鐘周期越長(zhǎng),譯碼本質(zhì)上仍是串行操作。
2016年,Orange公司提出“增強(qiáng)型Turbo碼”,采用ARP交織器。LTE的QPP交織器是固定的,不會(huì)隨碼率變化;而提出的ARP交織器能根據(jù)不同的碼率進(jìn)行設(shè)計(jì),可以更有效地進(jìn)行交織。其基本交織公式為:
其中,S是大小為Q的集合,P,S (0),S (1)… S(Q?1)取決于碼長(zhǎng)為K的大小和編碼的碼率。
ARP交織器具有最大無爭(zhēng)用性。假定qQ可以被K整除,對(duì)于任意窗長(zhǎng)度W為qQ的碼塊而言,都不會(huì)產(chǎn)生內(nèi)存爭(zhēng)用問題??梢郧蟮茫?/p>
其中,WqQ= ,內(nèi)存器個(gè)數(shù)為KqQ,對(duì)于每個(gè)碼塊第i個(gè)位置,未交織碼塊地址為:
式中,交織后的地址分別被分配到K/qQ個(gè)不同的內(nèi)存器中,不會(huì)出現(xiàn)內(nèi)存爭(zhēng)用的現(xiàn)象。
若碼塊的長(zhǎng)度K=8 000,打孔掩碼的長(zhǎng)度Q=16,則交織器允許的并行度為{2,4,5,10,20,25,50,100,125,250,500}。
對(duì)于P,Q,S(0),S(1)…S(Q?1)的選擇步驟:(1)P的選擇,P值選擇與規(guī)則交織器(ππ(i) =P×imodK)中方式一樣,確保更大的最小距離。(2)Q的選擇,對(duì)于長(zhǎng)度Q的打孔方式中,數(shù)據(jù)的位置按照被保護(hù)的等級(jí)來排序,按照排序順序需求確定Q值。(3)S(0),S(1)…S(Q?1),確保打孔模式下具有較高保護(hù)級(jí)別的數(shù)據(jù)位置和較低保護(hù)級(jí)別的數(shù)據(jù)位置能夠產(chǎn)生關(guān)聯(lián),選取相關(guān)數(shù)值。
設(shè)計(jì)參數(shù)時(shí),只保留具有最大的最小距離和強(qiáng)關(guān)聯(lián)圍長(zhǎng)的交織器,并計(jì)算其最小漢明距離。碼長(zhǎng)K=1 504時(shí),在不同編碼碼率條件下的參數(shù)取值如表1所示。
表1 ARP交織器在K=1 504時(shí)的交織參數(shù)
ARP和QPP交織器都是奇偶交織器,即輸入位置為奇數(shù)的比特?cái)?shù)據(jù),交織后的輸出位置仍為奇數(shù)。和傳統(tǒng)交織器相比,其可以提供更大的最小距離。兩種交織器在LTE系統(tǒng)競(jìng)爭(zhēng)中,QPP交織器最后被選用,主要原因是在最大無爭(zhēng)用條件下,QPP交織器適用于更多的并行度,具有完全代數(shù)的表示方式,同時(shí)需要更少的交織參數(shù)的存儲(chǔ)。ARP交織器具備的優(yōu)勢(shì):(1)具有更好的最小距離;(2)其解交織器同樣是ARP交織器,而QPP的解交織器不一定是QPP。
為了更清晰地對(duì)比,以碼長(zhǎng)K=1 504為例,給出QPP交織器和ARP交織器交織前后的位置關(guān)系(見圖3—4),其中,橫軸為交織前的位置,縱軸為交織后的位置,此時(shí),ARP交織器采用2/3碼率條件下的參數(shù)。可以看出,QPP交織器和ARP交織器交織前后位置都均勻分布,交織性能較好。
圖3 QPP交織器前后位置關(guān)系圖
圖4 ARP交織器前后位置 關(guān)系圖
在AWGN信道、BPSK調(diào)制下進(jìn)行Matlab仿真。為了便于對(duì)比,均采用LTE標(biāo)準(zhǔn)下的2/3碼率的Turbo碼(15/13)8,仿真碼長(zhǎng)K=1 504。此時(shí),ARP交織器的交織公式為π(i)=[651?i+S(imod8)]modK,集合S的取值為{0,89,528,8 52,1501,1396,688,490}。為了實(shí)現(xiàn)2/3碼率,編碼后系統(tǒng)比特和校驗(yàn)比特分別按照01111110/11000001進(jìn)行打孔操作,其中,0表示比特被刪余,1表示比特被保留。
譯碼性能對(duì)比如圖5所示,其中,BER表示誤碼率,Eb/N0為信噪比,仿真次數(shù)分別為10次、12次。仿真結(jié)果表明,在LTE標(biāo)準(zhǔn)2/3碼率的情況下,采用特定的打孔方式,使用ARP交織器的FPTD算法性能好于使用QPP交織器的FPTD算法。迭代次數(shù)為10次、BER=10-5時(shí),使用ARP交織器的FPTD算法性能比使用QPP交織器的FPTD算法要好約0.1 dB;迭代次數(shù)為12次、BER=10-5時(shí),使用ARP交織器的FPTD算法性能比使用QPP交織器的FPTD算法要好0.2 dB左右。ARP交織器的應(yīng)用,使得FPTD算法在性能上獲得了提升。
圖5 譯碼性能對(duì)比
本文首次將ARP交織器應(yīng)用于Turbo碼FPTD算法中,將ARP交織器與打孔方式進(jìn)行聯(lián)合設(shè)計(jì),對(duì)FPTD算法的譯碼性能進(jìn)行研究討論。與QPP交織器進(jìn)行仿真對(duì)比發(fā)現(xiàn),使用ARP交織器的FPTD算法的譯碼性能獲得了提升,能更好地適應(yīng)不同的碼率條件。但是,在將ARP交織器應(yīng)用于FPTD算法時(shí),需要將交織器與打孔方式進(jìn)行聯(lián)合設(shè)計(jì),增加了設(shè)計(jì)難度和計(jì)算量,這一點(diǎn)需要研究改進(jìn)。