任憲文 張 琰
1.海裝上海局駐南京地區第四軍事代表室;2.南京熊貓漢達科技有限公司
Turbo碼于1993年被提出,對信道編碼產生了革命性的意義,使信道編碼理論研究進入了新的階段。Turbo碼憑借優異的譯碼性能,在各個領域中得到了廣泛應用。Turbo碼在速率較低的3G和4G移動通信中得到了很好的實踐,但是受限于其譯碼算法固有的串行性,在譯碼時延和吞吐量等方面有較大的劣勢,越來越難以滿足未來通信發展的需求。因此,進一步研究Turbo碼的并行譯碼算法、提高譯碼效率、降低譯碼時延,有重要的現實意義和工程價值。
Turbo碼 全 并 行 譯 碼(Fully-Parallel Turbo Decoding,FPTD)算法的提出,將整個碼塊的每個子塊大小分割成了1 bit,獲得了最大的并行度,并采用奇偶交織的操作,實現了Turbo碼的完全并行譯碼。長期演進技術(Long Term Evolution,LTE)系統中,使用二次項置換多項式(Quadratic Permutation Polynomials,QPP)交織器,實現了Turbo碼的分塊并行譯碼。FPTD算法使用QPP交織器能夠完美適用于LTE系統,大幅減少了Turbo碼的譯碼時延,提高了吞吐量。但QPP交織器是固定的,不會隨碼率變化而自動適配,因而極大限制了FPTD算法的性能。
隨著Turbo碼并行譯碼技術的不斷發展,構造相應的并行交織器一直是Turbo譯碼領域研究的重點。2016年,一些公司和研究機構提出了“Turbo碼2.0”,即“增強型”Turbo碼,其采用更長的碼長和更低的碼率,設計了新的打孔方式和并行交織器,獲得了較好的譯碼性能。對于并行交織器的設計,“增強型”Turbo碼采用的是近似正則置換(Almost Regular Permutation,ARP)交織器,并能跟隨碼率進行相應變化,可以有效應對突發干擾,實現較高的并行度。
為進一步提高FPTD算法的性能,對ARP交織器的性能進行具體分析,并將其應用于FPTD算法中,可以進一步提升FPTD算法的譯碼性能。本文先簡要介紹了Turbo碼的FPTD算法,再詳細描述“增強型”Turbo碼的ARP交織器的定義和最大無爭用性,并進行了性能仿真和對比分析。
經典的Turbo編碼器由兩個分量編碼器并行級聯而成,因而又被稱為帶交織的并行級聯卷積碼(Parallel Concatenated Convolutional Code,PCCC)。PCCC編碼結構主要由兩個分量編碼器、內部交織器以及刪余和復用結構組成。LTE系統中Turbo碼的分量編碼器采用的編碼結構如圖1所示。

圖1 LTE中的Turbo碼分量編碼器
相對于常規的Turbo碼,LTE的Turbo碼各個分量編碼器使用各自的尾比特來進行狀態終結,即圖1中的虛線部分,在編碼之后利用開關使寄存器歸零。狀態分量編碼器的傳輸函數為:

FPTD算法的基本譯碼架構如圖2所示。與LTE Turbo碼的分塊譯碼架構相比,全并行譯碼架構相當于把每個子塊的大小減小到1,分別對應一個譯碼單元并進行譯碼,將碼塊分為上下兩路。

圖2 全并行譯碼架構
編碼交織器采用QPP交織器,作為確定型交織器,其采用兩個二次多項式進行交織和解交織運算。對于碼長為K的碼塊中第i個比特,交織后的順序變為:

其中,f1和f為交織參數,均小于K。交織地址可以采用遞歸來計算,無需乘法或者取模運算。較為簡單地生成多項式使其復雜度低,易于實現。QPP交織器可以實現并行譯碼的無沖突交織,大大增強譯碼器的并行處理能力,給LTE中Turbo碼提供更高的譯碼速率。
為進一步減小譯碼時延,FPTD算法充分利用了QPP交織器的奇偶特性。譯碼時,將整個數據分為兩組,上路奇數位置和下路偶數位置的數據為一組(圖2中白色譯碼塊);上路偶數位置和下路奇數位置的數據為另一組(圖2中陰影譯碼塊)。一次迭代過程就分為了兩個半次迭代過程,在上半次迭代過程中,第一組白色譯碼塊進行計算,并交換外信息和傳遞狀態度量值到陰影塊;下半次迭代過程中,第二組陰影譯碼塊進行計算,并交換外信息和傳遞狀態度量值到白色塊,每次操作上下兩路都有50%的碼字進行譯碼。按照這種操作,在一次迭代過程中,所有碼字完成譯碼只需要2個時鐘周期,并且實現了完全并行的操作。傳統的Log-MAP算法在一次迭代過程中完成所有碼字的譯碼,需要的時鐘周期與碼塊長度有關,碼長越長,譯碼時鐘周期越長,譯碼本質上仍是串行操作。
2016年,Orange公司提出“增強型Turbo碼”,采用ARP交織器。LTE的QPP交織器是固定的,不會隨碼率變化;而提出的ARP交織器能根據不同的碼率進行設計,可以更有效地進行交織。其基本交織公式為:

其中,S是大小為Q的集合,P,S (0),S (1)… S(Q?1)取決于碼長為K的大小和編碼的碼率。
ARP交織器具有最大無爭用性。假定qQ可以被K整除,對于任意窗長度W為qQ的碼塊而言,都不會產生內存爭用問題。可以求得:

其中,WqQ= ,內存器個數為KqQ,對于每個碼塊第i個位置,未交織碼塊地址為:

式中,交織后的地址分別被分配到K/qQ個不同的內存器中,不會出現內存爭用的現象。
若碼塊的長度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值選擇與規則交織器(ππ(i) =P×imodK)中方式一樣,確保更大的最小距離。(2)Q的選擇,對于長度Q的打孔方式中,數據的位置按照被保護的等級來排序,按照排序順序需求確定Q值。(3)S(0),S(1)…S(Q?1),確保打孔模式下具有較高保護級別的數據位置和較低保護級別的數據位置能夠產生關聯,選取相關數值。
設計參數時,只保留具有最大的最小距離和強關聯圍長的交織器,并計算其最小漢明距離。碼長K=1 504時,在不同編碼碼率條件下的參數取值如表1所示。

表1 ARP交織器在K=1 504時的交織參數
ARP和QPP交織器都是奇偶交織器,即輸入位置為奇數的比特數據,交織后的輸出位置仍為奇數。和傳統交織器相比,其可以提供更大的最小距離。兩種交織器在LTE系統競爭中,QPP交織器最后被選用,主要原因是在最大無爭用條件下,QPP交織器適用于更多的并行度,具有完全代數的表示方式,同時需要更少的交織參數的存儲。ARP交織器具備的優勢:(1)具有更好的最小距離;(2)其解交織器同樣是ARP交織器,而QPP的解交織器不一定是QPP。
為了更清晰地對比,以碼長K=1 504為例,給出QPP交織器和ARP交織器交織前后的位置關系(見圖3—4),其中,橫軸為交織前的位置,縱軸為交織后的位置,此時,ARP交織器采用2/3碼率條件下的參數。可以看出,QPP交織器和ARP交織器交織前后位置都均勻分布,交織性能較好。

圖3 QPP交織器前后位置關系圖

圖4 ARP交織器前后位置 關系圖
在AWGN信道、BPSK調制下進行Matlab仿真。為了便于對比,均采用LTE標準下的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}。為了實現2/3碼率,編碼后系統比特和校驗比特分別按照01111110/11000001進行打孔操作,其中,0表示比特被刪余,1表示比特被保留。
譯碼性能對比如圖5所示,其中,BER表示誤碼率,Eb/N0為信噪比,仿真次數分別為10次、12次。仿真結果表明,在LTE標準2/3碼率的情況下,采用特定的打孔方式,使用ARP交織器的FPTD算法性能好于使用QPP交織器的FPTD算法。迭代次數為10次、BER=10-5時,使用ARP交織器的FPTD算法性能比使用QPP交織器的FPTD算法要好約0.1 dB;迭代次數為12次、BER=10-5時,使用ARP交織器的FPTD算法性能比使用QPP交織器的FPTD算法要好0.2 dB左右。ARP交織器的應用,使得FPTD算法在性能上獲得了提升。

圖5 譯碼性能對比
本文首次將ARP交織器應用于Turbo碼FPTD算法中,將ARP交織器與打孔方式進行聯合設計,對FPTD算法的譯碼性能進行研究討論。與QPP交織器進行仿真對比發現,使用ARP交織器的FPTD算法的譯碼性能獲得了提升,能更好地適應不同的碼率條件。但是,在將ARP交織器應用于FPTD算法時,需要將交織器與打孔方式進行聯合設計,增加了設計難度和計算量,這一點需要研究改進。