王 寧, 陳名松, 杜曉萍
(桂林電子科技大學(xué)科技大學(xué),廣西 桂林 541004)
Turbo碼,又稱并行級聯(lián)卷積碼,最早由法國不列顛通信大學(xué)的教授C.Berrou等人在1993的國際通信會議上提出。Turbo是一種非常優(yōu)秀的編碼方案,它幾乎滿足了無差錯傳輸?shù)娜齻€基本條件,從而獲得了接近香農(nóng)極限的性能[1]。它將卷積碼并行級聯(lián),用短碼構(gòu)造出長碼,利用隨機交織器實現(xiàn)了隨機編碼,通過在兩個軟入軟出(SISO)譯碼器之間進行多次迭代實現(xiàn)了最大似然譯碼。它的性能遠(yuǎn)遠(yuǎn)超過了其他的編碼方式,對當(dāng)今的編碼理論和研究方法產(chǎn)生了深遠(yuǎn)的影響[2]。
由于 Turbo碼性能受到多個參數(shù)的影響,且傳輸時延較大[3]。在實際應(yīng)用中,應(yīng)該根據(jù)具體的系統(tǒng)需求選擇相應(yīng)的參數(shù),否則會浪費有限的系統(tǒng)資源。因此,有必要對 Turbo碼的譯碼算法、迭代次數(shù)等幾種重要參數(shù)做深入研究,并基于Matlab對其軟件仿真,總結(jié)出設(shè)置參數(shù)的原則,為系統(tǒng)的實際設(shè)計提供參考。
一般Turbo碼編碼器由兩個循環(huán)系統(tǒng)卷積編碼器(RSC編碼器)和交織器并行級聯(lián)構(gòu)成,原理如圖1所示[4]。編碼器1、編碼器2又稱為分量碼編碼器,通常2個分量編碼器具有完全相同的結(jié)構(gòu)。交織器實際上是一個映射函數(shù),其作用是將輸入信息序列中的比特位置進行重置,從而使兩個分量編碼器輸出的信息盡量不相關(guān)。編碼器1、編碼器2輸出編碼的校驗序列后,通過刪余器刪除一些校驗位,與未編碼的輸入信息序列經(jīng)過復(fù)接器復(fù)用,輸出得到Turbo碼的編碼輸出序列。
圖1 Turbo碼編碼器原理
Turbo碼選用RSC編碼器的主要原因是循環(huán)編碼器能很好地降低誤碼率。交織器是影響Turbo碼性能的另一個關(guān)鍵因素。通常采用的交織器有分組交織器和偽隨機交織器。
香農(nóng)定理指出,最優(yōu)的譯碼算法是概率譯碼算法,即最大后驗概率算法(MAP)。MAP算法性能最佳,但是復(fù)雜度也最高。為了降低復(fù)雜度,后來又有了Log-MAP、MAX-Log-MAP及SOVA(軟輸入軟輸出算法)等算法。
圖2 Turbo碼譯碼器原理
無論采用以上提到的哪種算法,Turbo碼譯碼器的總體結(jié)構(gòu)都是大致相同的,如圖表2中所示。譯碼器由2個獨立的分量譯碼器竄行級聯(lián)組成,如果編碼時2個編碼器是相同的,這里的譯碼器就必須相同。交織器也與編碼器中的相同,它與解交織器必須配套使用。每個分量譯碼器都有3路輸入信息:①信息碼或經(jīng)過交織的;②校驗碼或;③外信息 L1e(xk)或L2e(xk)。譯碼器1對編碼器1進行最佳譯碼,產(chǎn)生關(guān)于信息序列中每一比特的外信息 L1e(xk),將其交織后產(chǎn)生的 L2e()送給譯碼器2。譯碼器2接收三路輸入,對編碼器2進行最佳譯碼,譯碼的結(jié)果經(jīng)過解交織作為外信息再送給譯碼器 1,這樣就形成了反復(fù)迭代。每一次迭代都會減少一定的誤碼,經(jīng)過一定的迭代次數(shù)后,2個譯碼器的外信息趨于穩(wěn)定,就可以得到最佳譯碼信息[5]。
Turbo碼的性能受多個因素影響,如分量碼、迭代次數(shù)、幀長、碼率等等。合理設(shè)置參數(shù)可以有效減少Turbo碼的延時,降低實現(xiàn)Turbo碼需要的硬件資源,從而提高整個系統(tǒng)的性能?,F(xiàn)通過Matlab軟件,對這些因素仿真,對結(jié)果進行分析,總結(jié)出如何設(shè)置各個參數(shù),從而設(shè)計出最佳的編碼方案。
以下仿真均在高斯噪聲信道上采用 BPSK調(diào)制。仿真流程圖如圖3。
圖3 仿真流程
此處的仿真參數(shù):采用刪余技術(shù)后碼率為1/2,信息序列長度為1024,5次迭代,隨機交織器,Log-MAP譯碼算法,分量碼編碼多項式為:g1= [ 111; 101 ],g2= [1101; 1111],g3= [11111; 10001]。仿真結(jié)果如圖4。
圖4 不同分量碼的性能比較
從圖4可以得出的結(jié)論是:當(dāng)信噪比較小時,約束長度小的Turbo碼性能與約束長度大的相差不大;但是隨著信噪比的增加,約束長度大的 Turbo碼的性能開始優(yōu)于約束長度小的Turbo碼,而且優(yōu)勢越來越明顯。在信噪比2 dB以后,約束長度為4的(13,15)碼與約束長度為5的(31,17)碼的性能差異已經(jīng)很小,而前者又優(yōu)于約束度為3的(7,5)碼。由于約束長度越長,編譯碼的難度越大。因此綜合考慮,約束長度4的分量碼是最佳的選擇。
Turbo碼譯碼時以幀為單元,因此幀長對Turbo的性能影響也很重要。以下對不同幀長的Turbo碼進行仿真,分量碼為[13,15],迭代次數(shù)為5,隨機交織器,Log-MAP譯碼算法。
從仿真結(jié)果圖5來看,相同信噪比的情況下,Turbo碼的誤碼率隨著幀長的增加而降低。因此對于Turbo碼的性能而言,希望幀長越長越好,盡管幀長的增加不會增加單位比特譯碼的復(fù)雜度,但是幀長決定了系統(tǒng)傳輸?shù)臅r間延遲和譯碼存儲空間,所以幀長的選擇必須折中考慮。一般的對于實時通信要求嚴(yán)格的語音系統(tǒng),幀長為500 bit左右;對于實時通信要求不高而信道條件又差的系統(tǒng),幀長采用2000 bit以上,如視頻或衛(wèi)星通信系統(tǒng)[6]。
圖5 幀長對Turbo碼性能的影響
Turbo碼取得優(yōu)異性能的原因就在于采用了迭代譯碼,因此Turbo碼的性能很大程度上受迭代次數(shù)的影響。以下通過對不同幀長的Turbo碼不同迭代次數(shù)分別仿真,仿真參數(shù):1/2碼率,幀長分別為1024和2048,分量碼[13,15],Log-MAP算法,隨機交織。結(jié)果如圖6、圖7。
圖6 1024幀長時迭代次數(shù)對Turbo碼性能的影響
從仿真結(jié)果可以得出:Turbo碼的誤碼率隨著迭代次數(shù)的增加而降低。隨著信噪比的增加,增加迭代次數(shù)會使誤比特率急劇降低,但當(dāng)達(dá)到一定迭代次數(shù)后,再增加迭代次數(shù)也不能明顯的改善誤碼率。這是因為隨著迭代次數(shù)的增加,2個分量譯碼器之間的外信息被充分的利用,對信息比特的估計更接近最大似然比,判決輸出的正確性就越高。但當(dāng)?shù)竭_(dá)一定迭代次數(shù)后,原先相關(guān)性不大的校驗信息之間的相關(guān)性越來越大,這樣可以利用的信息就越來越少,因此編碼增益越來越小[7]。當(dāng)?shù)螖?shù)達(dá)到飽和值后,再增加次數(shù)也很難改善性能,卻給整個系統(tǒng)帶來巨大的計算量和延時。另外可以看出,幀長長的 Turbo碼需要較少的迭代次數(shù)就能達(dá)到飽和值。因此,選擇迭代次數(shù)時,應(yīng)根據(jù)實際幀長的情況,通常幀長1000以下的迭代次數(shù)可以選擇7次左右,幀長1000以上的選擇5次左右。
圖7 2048幀長時迭代次數(shù)對Turbo碼性能的影響
以下分別對 1/2和1/3碼率的Turbo碼進行仿真,仿真參數(shù):分量碼多項式為[13,15],幀長為1024,采用Log-MAP譯碼算法,迭代5次,隨機交織。仿真結(jié)果如圖8所示。
圖8 不同碼率對Turbo碼性能的影響
由仿真的結(jié)果可知:1/3碼率的Turbo碼性能要比1/2碼率優(yōu)良。因為1/2碼率的Turbo碼經(jīng)過刪余,刪余的過程中可能把有用的信息刪除掉,所以譯碼性能就相對越差。但是碼率越低,傳輸?shù)臄?shù)據(jù)量就越大,占用的帶寬就越大。實際通信中有時更看中功率和帶寬效益,采用碼率高的Turbo碼可以提高信道的利用率。因此應(yīng)根據(jù)具體需求選擇碼率。
MAP算法能直接計算信息比特的后驗概率,是Turbo譯碼的最佳算法,但是在實際應(yīng)用中卻難以實現(xiàn),主要原因是運算量太大。以下分別對Log-MAP算法和SOVA算法[8]的Turbo碼進行仿真,仿真參數(shù):分量碼多項式為[07,05],碼率1/2,幀長為1024,迭代5次,隨機交織。具體仿真數(shù)據(jù)如圖9所示。
圖9 不同譯碼算法對Turbo碼性能的影響
由仿真結(jié)果可以看出:Log-MAP算法的性能要明顯優(yōu)于SOVA算法。它在性能上等效于MAP算法,但是變乘法運算為加法運算,從而大大降低了算法的復(fù)雜性,使其更具有實用性。SOVA算法最簡單,但性能很差。Log-MAP算法的復(fù)雜度大約是SOVA的兩倍左右,應(yīng)用過程中完全可以接受。因此Log-MAP算法是Turbo譯碼的最佳算法。
因為Turbo碼的性能受多個參數(shù)的影響,所以對這些參數(shù)進行了詳細(xì)的仿真,利用仿真的結(jié)果證明了分量碼、迭代次數(shù)、幀長、碼率、算法等對Turbo性能的影響,為Turbo碼在實際系統(tǒng)的設(shè)計提供有價值的參考。
[1]呂鋒.信息理論與編碼[M].北京:人民郵電出版社,2004.
[2]劉東華.Turbo碼原理與應(yīng)用技術(shù)[M].北京:電子工業(yè)出版社,2000.
[3]邢莉,王忠,李興國,等.基于Matlab的Turbo碼仿真研究[J].現(xiàn)代電子技術(shù),2009(03):19-21.
[4]王輝,王中訓(xùn).基于OFMD的改進Turbo碼圖像傳輸系統(tǒng)應(yīng)用[J].通信技術(shù),2009,42(01):105-106.
[5]西瑞克斯(北京)通信設(shè)備有限公司.無線通信的MATLAB和FPGA實現(xiàn)[M].北京:人民郵電出版社,2009.
[6]伍萍.優(yōu)化衛(wèi)星通信技術(shù)研究[J].通信技術(shù),2010,43(06):51-53.
[7]汪漢新,陳少平,朱翠濤.Turbo碼的迭代譯碼方法的優(yōu)化設(shè)計[J].計算機工程與應(yīng)用,2007,43(03): 99-101.
[8]邵華,董辰輝.Matlab/Simulink通信系統(tǒng)建模與仿真實例精講[M].北京:電子工業(yè)出版社,2009.