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