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