楊 亮,胡家亻全,馬鵬飛
(1.空軍駐黑龍江地區(qū)軍事代表室,黑龍江哈爾濱150046;2.中國電子科技集團公司第五十四研究所,河北石家莊050081)
1993年,法國學(xué)者C.Berrou等[1]首次提出一種功能強大的信道編譯碼方案,即Turbo碼。它巧妙地將卷積碼和交織器結(jié)合起來,不僅在一定程度上實現(xiàn)了隨機編碼,同時采用軟輸入軟輸出迭代譯碼來逼近最大似然譯碼。仿真結(jié)果表明:采用長度為65 536的隨機交織器,迭代 18次,在Eb/N0為0.7 dB時,1/2碼率的Turbo碼在AWGN信道下的誤比特率可達10-5,獲得了逼近香農(nóng)限的性能。
Turbo碼的優(yōu)異性能主要得益于以下3個方面:分量碼采用遞歸系統(tǒng)卷積(RSC)碼、引入交織器和采用軟輸入軟輸出的迭代譯碼方式。交織器的引入改善了碼字的距離譜特性,使編碼輸出的碼字中重量很重或很輕的碼字數(shù)量減少,從而使碼字距離譜窄化,更接近高斯分布。因此,交織器在Turbo碼中占有很重要的地位。交織器可分為確定性交織器和隨機性交織器兩大類,常用的確定性交織器包括分組交織器、循環(huán)移位交織器、分組螺旋交織器和雙射變換交織器等;常用的隨機性交織器包括偽隨機交織器、S隨機交織器和S改進交織器等。
由2個RSC編碼器并行級聯(lián)構(gòu)成的Turbo碼編碼結(jié)構(gòu)圖[2]如圖1所示。
圖1 Turbo碼編碼結(jié)構(gòu)
2個分量編碼器通過交織器相連,信息比特分為3路:第1路直接進入復(fù)用器;第2路通過分量編碼器1進行編碼,第3路經(jīng)過交織器交織后再通過分量碼編碼器2進行編碼,2個編碼器編碼輸出后經(jīng)過刪余器成為校驗比特,它與信息比特經(jīng)過復(fù)用器(即并串轉(zhuǎn)換)操作后一起構(gòu)成Turbo碼碼字,然后送入信道進行傳輸。
Turbo碼譯碼結(jié)構(gòu)是由2個分量譯碼器并行級聯(lián)組成,每個譯碼器處理接收到的輸入序列,第1個譯碼器利用接收到的與第1個編碼器相關(guān)的信息進行譯碼,然后把產(chǎn)生的“軟信息”送給第2個譯碼器。第2個譯碼器使用第1個譯碼器送來的信息和接收到的與第2個編碼器相關(guān)的信道信息進行譯碼,因此它比第1個譯碼器有更多的關(guān)于輸入信息序列的信息。將第2個譯碼器產(chǎn)生的“外信息”作為先驗信息再送給第1個譯碼器,重新對接收到的信道信息進行譯碼,同樣由于有了更多的關(guān)于輸入信息序列的信息,可以使譯碼過程更精確。隨著迭代次數(shù)的增加,估計值越來越準(zhǔn)確。經(jīng)過一定的迭代次數(shù)后,估計值的準(zhǔn)確程度趨于收斂,因此可以在迭代了一定次數(shù)后,對“軟信息”進行硬判決(符號判決),得到最終的譯碼輸出。相應(yīng)的Turbo碼譯碼結(jié)構(gòu)[2]如圖2所示。
圖2 Turbo碼譯碼結(jié)構(gòu)
交織器是一個單輸入單輸出設(shè)備,它的輸出與輸入符號序列具有相同的字符集,只是各符號在輸入輸出序列中的排列順序不同。交織器不僅具有將突發(fā)錯誤轉(zhuǎn)化為隨機錯誤以便糾錯的能力,還能使導(dǎo)致第1個編碼器輸出為低重碼字的輸入序列經(jīng)過交織后在第2個編碼器輸出為高重碼字,從而提高整個編碼后的碼重,以提高Turbo碼的性能。交織器的設(shè)計,應(yīng)滿足以下準(zhǔn)則[2]:
①最大程度地置亂原始信息比特排列順序,避免置換前相距較近的信息比特在置換后仍相距較近,特別要避免置換前相鄰的數(shù)據(jù)在置換后仍然相鄰;
②盡可能避免與同一信息位相關(guān)的2個分量碼編碼器中的校驗位在復(fù)用時均被刪除;
③對于非歸零編碼器,設(shè)計交織器時要盡量避免出現(xiàn)“尾效應(yīng)”情況;
④應(yīng)滿足使碼字間的自由距離使碼字間的自由距離dmin應(yīng)盡可能大,重量為dmin的碼字數(shù)盡可能少,以改善Turbo碼在高信噪比下的性能;
⑤Turbo碼是以幀為單位進行編譯碼的,在設(shè)計交織器時,應(yīng)考慮具體應(yīng)用背景下的譯碼延時,選擇相應(yīng)的幀大小。
偽隨機交織器是指交織映射隨機生成的交織器。C.Berrou等在最先提出的Turbo碼中使用的就是偽隨機交織器。
交織長度為N的偽隨機交織器設(shè)計步驟如下:
①從集合S={1,2,…,N}中隨機選擇一個整數(shù)i1,將選擇的i1記為I(i),同時將i1從集合S中刪除,得到新的集合記為S1;
②在第k步時,從集合Sk-1={i∈S,i≠i1,i2,…,iN-K+1}中隨機選擇一個整數(shù)ik,將選擇的ik記為I(k),同時將ik從集合Sk-1中刪除,得到新的集合記為Sk;
③當(dāng)k=N時,得到I(N),SN=φ,交織結(jié)束,這N個數(shù)就是交織結(jié)果。
S隨機交織器又稱半隨機交織器,較好地考慮了漢明重特性和隨機特性。它在偽隨機交織序列產(chǎn)生的條件上加入了一些限制,即當(dāng)原始序列中2個元素之間的距離小于某個值S1時,經(jīng)過交織后這兩個元素之間的距離必須要大于某個給定值S。具體描述如下:
對于任意給定的|i-j|≤S1,i,j∈S,均要滿足|I(i)-I(j)|≥S,其中i、j為原始序列中元素位置,I(i)、I(j)為對應(yīng)元素交織后的位置。當(dāng)Turbo碼的2個分量碼完全相同時,取S1=S。
交織長度為N的S隨機交織器設(shè)計步驟如下:
①選取一個正整數(shù)S,S應(yīng)盡量大,但必須保證S≤N/2,否則很難保證交織器能順利生成;
②隨機產(chǎn)生一個在[1,N]之間的整數(shù)I(i),把I(i)與前面所產(chǎn)生的S個整數(shù)相比,若當(dāng)前的數(shù)I(i)與前面S個整數(shù)中的任何一個相距都不在±S范圍之內(nèi),則保留;否則重新產(chǎn)生隨機數(shù)I(i),直到滿足上述條件為止;
③重復(fù)步驟②,直到交織序列的N個位置均被填滿,此時這N個數(shù)就是交織結(jié)果。
由S隨機交織器定義知,兩數(shù)擴散距離為:
重新定義兩數(shù)擴散距離:
交織長度為N的S改進型交織器設(shè)計步驟如下:
①設(shè)定一個目標(biāo)擴散距離Sgoal,一般取Sgoal=
②隨機產(chǎn)生一個在[1,N]之間的任意實數(shù)I(i),若S(i)小于設(shè)定的目標(biāo)擴散距離Sgoal,則舍棄I(i),重新產(chǎn)生直到滿足條件為止。需要注意的是,在計算S′(i,j)時,j的取值范圍為[i-Sgoal+1,i-1];
③重復(fù)步驟②,直到交織序列的N個位置均被填滿;
④將交織序列中的N個實數(shù)進行排序,所得的排序位置就是交織結(jié)果。
該交織器與S隨機交織器有以下不同點:
①使用新的擴散距離定義;
②新定義中使用實數(shù),而不是整數(shù);
③交織結(jié)果通過排序這些實數(shù)獲得。
偽隨機交織器具有較強的隨機性,交織時間短,交織時通過隨機選取不同的整數(shù)生成,但通常不能一次生成性能較好的交織序列,需要多次試驗取其中性能較好的序列。
S隨機交織器有效避免了交織前相距較近的信息比特在交織后仍相距較近,因此其性能一般較偽隨機交織器好。由于該交織序列的產(chǎn)生是利用搜索整數(shù)的算法實現(xiàn),存在一個固有的缺點:算法的搜索時間隨S的增大而增加且不能保證對于每一個都能找到所需的交織序列,當(dāng)N較大時,該算法會耗費巨大的時間。
S改進型交織器不僅具有S隨機交織器的優(yōu)點且該算法搜索的是實數(shù),相對于S隨機交織器而言,完成交織的時間大為縮短,且對于每個Sgoal都能順利完成交織。盡管最終交織結(jié)果并不能完全滿足設(shè)定的目標(biāo)擴散距離,但絕大部分的擴散距離都滿足或接近要求。例如,對于N=1 024,如果Sgoal=38,會發(fā)現(xiàn)最終幾乎所有的擴散距離至少是37,這比S隨機交織器的擴散距離22要大得多,因此它的性能比S隨機交織器又有進一步的提高。
使用3種隨機性交織器時Turbo碼的誤比特率曲線如圖3所示。仿真參數(shù)為:交織長度N=256,生成矩陣g=[7,5],碼率1/3,譯碼采用 Log-Map算法,迭代8次。
圖3 3種交織器的誤比特率曲線
圖3中S隨機交織器S=11,S改進型交織器Sgoal=19。從圖中可以看出S改進型交織器的性能最優(yōu),S隨機交織器次之,偽隨機交織器性能最差。隨著交織長度N的增加,S改進型交織器的優(yōu)異性能將更加明顯。
不同幀長條件下3種交織器各自完成交織所需的時間如表1所示,其中,仿真平臺為Matlab。
表1 3種交織器交織時間
Turbo碼從提出到現(xiàn)在已有近20年的時間。這期間,各國學(xué)者對Turbo碼進行了各方面深入的研究,提出了各種不同性能的交織器。交織器作為Turbo碼的一個重要組成部分,對Turbo碼的譯碼性能起著至關(guān)重要的作用。這3種隨機性交織器雖然結(jié)構(gòu)簡單、能適應(yīng)于不同幀長,但存在每次交織結(jié)果不一致的缺點,實際使用時需將預(yù)先生成的性能較好的交織序列存儲于查找表中。由于Turbo碼已成為第三代移動通信系統(tǒng)的信道編碼標(biāo)準(zhǔn)之一,因此后續(xù)交織器的研究應(yīng)集中于設(shè)計性能優(yōu)良,具有代數(shù)結(jié)構(gòu),資源耗費少且適用于不同幀長的交織器。
[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碼原理與應(yīng)用技術(shù)[M].北京:電子工業(yè)出版社,2004.
[3]潘莉穎.深空通信中Turbo碼編碼器的研究[D].哈爾濱:哈爾濱工業(yè)大學(xué)碩士學(xué)位論文,2005:30-35.
[4]趙旦峰,董玉華,肖瑛.基于S交織算法的改進的交織器[J].現(xiàn)代電子技術(shù),2003,20(5):12-15.