楊 亮,胡家亻全,馬鵬飛
(1.空軍駐黑龍江地區軍事代表室,黑龍江哈爾濱150046;2.中國電子科技集團公司第五十四研究所,河北石家莊050081)
1993年,法國學者C.Berrou等[1]首次提出一種功能強大的信道編譯碼方案,即Turbo碼。它巧妙地將卷積碼和交織器結合起來,不僅在一定程度上實現了隨機編碼,同時采用軟輸入軟輸出迭代譯碼來逼近最大似然譯碼。仿真結果表明:采用長度為65 536的隨機交織器,迭代 18次,在Eb/N0為0.7 dB時,1/2碼率的Turbo碼在AWGN信道下的誤比特率可達10-5,獲得了逼近香農限的性能。
Turbo碼的優異性能主要得益于以下3個方面:分量碼采用遞歸系統卷積(RSC)碼、引入交織器和采用軟輸入軟輸出的迭代譯碼方式。交織器的引入改善了碼字的距離譜特性,使編碼輸出的碼字中重量很重或很輕的碼字數量減少,從而使碼字距離譜窄化,更接近高斯分布。因此,交織器在Turbo碼中占有很重要的地位。交織器可分為確定性交織器和隨機性交織器兩大類,常用的確定性交織器包括分組交織器、循環移位交織器、分組螺旋交織器和雙射變換交織器等;常用的隨機性交織器包括偽隨機交織器、S隨機交織器和S改進交織器等。
由2個RSC編碼器并行級聯構成的Turbo碼編碼結構圖[2]如圖1所示。

圖1 Turbo碼編碼結構
2個分量編碼器通過交織器相連,信息比特分為3路:第1路直接進入復用器;第2路通過分量編碼器1進行編碼,第3路經過交織器交織后再通過分量碼編碼器2進行編碼,2個編碼器編碼輸出后經過刪余器成為校驗比特,它與信息比特經過復用器(即并串轉換)操作后一起構成Turbo碼碼字,然后送入信道進行傳輸。
Turbo碼譯碼結構是由2個分量譯碼器并行級聯組成,每個譯碼器處理接收到的輸入序列,第1個譯碼器利用接收到的與第1個編碼器相關的信息進行譯碼,然后把產生的“軟信息”送給第2個譯碼器。第2個譯碼器使用第1個譯碼器送來的信息和接收到的與第2個編碼器相關的信道信息進行譯碼,因此它比第1個譯碼器有更多的關于輸入信息序列的信息。將第2個譯碼器產生的“外信息”作為先驗信息再送給第1個譯碼器,重新對接收到的信道信息進行譯碼,同樣由于有了更多的關于輸入信息序列的信息,可以使譯碼過程更精確。隨著迭代次數的增加,估計值越來越準確。經過一定的迭代次數后,估計值的準確程度趨于收斂,因此可以在迭代了一定次數后,對“軟信息”進行硬判決(符號判決),得到最終的譯碼輸出。相應的Turbo碼譯碼結構[2]如圖2所示。

圖2 Turbo碼譯碼結構
交織器是一個單輸入單輸出設備,它的輸出與輸入符號序列具有相同的字符集,只是各符號在輸入輸出序列中的排列順序不同。交織器不僅具有將突發錯誤轉化為隨機錯誤以便糾錯的能力,還能使導致第1個編碼器輸出為低重碼字的輸入序列經過交織后在第2個編碼器輸出為高重碼字,從而提高整個編碼后的碼重,以提高Turbo碼的性能。交織器的設計,應滿足以下準則[2]:
①最大程度地置亂原始信息比特排列順序,避免置換前相距較近的信息比特在置換后仍相距較近,特別要避免置換前相鄰的數據在置換后仍然相鄰;
②盡可能避免與同一信息位相關的2個分量碼編碼器中的校驗位在復用時均被刪除;
③對于非歸零編碼器,設計交織器時要盡量避免出現“尾效應”情況;
④應滿足使碼字間的自由距離使碼字間的自由距離dmin應盡可能大,重量為dmin的碼字數盡可能少,以改善Turbo碼在高信噪比下的性能;
⑤Turbo碼是以幀為單位進行編譯碼的,在設計交織器時,應考慮具體應用背景下的譯碼延時,選擇相應的幀大小。
偽隨機交織器是指交織映射隨機生成的交織器。C.Berrou等在最先提出的Turbo碼中使用的就是偽隨機交織器。
交織長度為N的偽隨機交織器設計步驟如下:
①從集合S={1,2,…,N}中隨機選擇一個整數i1,將選擇的i1記為I(i),同時將i1從集合S中刪除,得到新的集合記為S1;
②在第k步時,從集合Sk-1={i∈S,i≠i1,i2,…,iN-K+1}中隨機選擇一個整數ik,將選擇的ik記為I(k),同時將ik從集合Sk-1中刪除,得到新的集合記為Sk;
③當k=N時,得到I(N),SN=φ,交織結束,這N個數就是交織結果。
S隨機交織器又稱半隨機交織器,較好地考慮了漢明重特性和隨機特性。它在偽隨機交織序列產生的條件上加入了一些限制,即當原始序列中2個元素之間的距離小于某個值S1時,經過交織后這兩個元素之間的距離必須要大于某個給定值S。具體描述如下:
對于任意給定的|i-j|≤S1,i,j∈S,均要滿足|I(i)-I(j)|≥S,其中i、j為原始序列中元素位置,I(i)、I(j)為對應元素交織后的位置。當Turbo碼的2個分量碼完全相同時,取S1=S。
交織長度為N的S隨機交織器設計步驟如下:
①選取一個正整數S,S應盡量大,但必須保證S≤N/2,否則很難保證交織器能順利生成;
②隨機產生一個在[1,N]之間的整數I(i),把I(i)與前面所產生的S個整數相比,若當前的數I(i)與前面S個整數中的任何一個相距都不在±S范圍之內,則保留;否則重新產生隨機數I(i),直到滿足上述條件為止;
③重復步驟②,直到交織序列的N個位置均被填滿,此時這N個數就是交織結果。
由S隨機交織器定義知,兩數擴散距離為:

重新定義兩數擴散距離:

交織長度為N的S改進型交織器設計步驟如下:
①設定一個目標擴散距離Sgoal,一般取Sgoal=
②隨機產生一個在[1,N]之間的任意實數I(i),若S(i)小于設定的目標擴散距離Sgoal,則舍棄I(i),重新產生直到滿足條件為止。需要注意的是,在計算S′(i,j)時,j的取值范圍為[i-Sgoal+1,i-1];
③重復步驟②,直到交織序列的N個位置均被填滿;
④將交織序列中的N個實數進行排序,所得的排序位置就是交織結果。
該交織器與S隨機交織器有以下不同點:
①使用新的擴散距離定義;
②新定義中使用實數,而不是整數;
③交織結果通過排序這些實數獲得。
偽隨機交織器具有較強的隨機性,交織時間短,交織時通過隨機選取不同的整數生成,但通常不能一次生成性能較好的交織序列,需要多次試驗取其中性能較好的序列。
S隨機交織器有效避免了交織前相距較近的信息比特在交織后仍相距較近,因此其性能一般較偽隨機交織器好。由于該交織序列的產生是利用搜索整數的算法實現,存在一個固有的缺點:算法的搜索時間隨S的增大而增加且不能保證對于每一個都能找到所需的交織序列,當N較大時,該算法會耗費巨大的時間。
S改進型交織器不僅具有S隨機交織器的優點且該算法搜索的是實數,相對于S隨機交織器而言,完成交織的時間大為縮短,且對于每個Sgoal都能順利完成交織。盡管最終交織結果并不能完全滿足設定的目標擴散距離,但絕大部分的擴散距離都滿足或接近要求。例如,對于N=1 024,如果Sgoal=38,會發現最終幾乎所有的擴散距離至少是37,這比S隨機交織器的擴散距離22要大得多,因此它的性能比S隨機交織器又有進一步的提高。
使用3種隨機性交織器時Turbo碼的誤比特率曲線如圖3所示。仿真參數為:交織長度N=256,生成矩陣g=[7,5],碼率1/3,譯碼采用 Log-Map算法,迭代8次。

圖3 3種交織器的誤比特率曲線
圖3中S隨機交織器S=11,S改進型交織器Sgoal=19。從圖中可以看出S改進型交織器的性能最優,S隨機交織器次之,偽隨機交織器性能最差。隨著交織長度N的增加,S改進型交織器的優異性能將更加明顯。
不同幀長條件下3種交織器各自完成交織所需的時間如表1所示,其中,仿真平臺為Matlab。

表1 3種交織器交織時間
Turbo碼從提出到現在已有近20年的時間。這期間,各國學者對Turbo碼進行了各方面深入的研究,提出了各種不同性能的交織器。交織器作為Turbo碼的一個重要組成部分,對Turbo碼的譯碼性能起著至關重要的作用。這3種隨機性交織器雖然結構簡單、能適應于不同幀長,但存在每次交織結果不一致的缺點,實際使用時需將預先生成的性能較好的交織序列存儲于查找表中。由于Turbo碼已成為第三代移動通信系統的信道編碼標準之一,因此后續交織器的研究應集中于設計性能優良,具有代數結構,資源耗費少且適用于不同幀長的交織器。
[1]BERROUC,GLAVIEUXA,THITIMAJSHIMAP.Near Shannon Limit Error-correcting Coding and Decoding Turbocodes[C].Switzerland:Proc.IEEE ICC'93,Geneva,1993:1064-1070.
[2]劉東華.Turbo碼原理與應用技術[M].北京:電子工業出版社,2004.
[3]潘莉穎.深空通信中Turbo碼編碼器的研究[D].哈爾濱:哈爾濱工業大學碩士學位論文,2005:30-35.
[4]趙旦峰,董玉華,肖瑛.基于S交織算法的改進的交織器[J].現代電子技術,2003,20(5):12-15.