趙 琦 杜玉嬌
(北京航空航天大學(xué) 電子信息工程學(xué)院,北京100191)
Turbo碼由于其優(yōu)越的性能,已被空間數(shù)據(jù)系統(tǒng)咨詢委員會(huì)(CCSDS,Consultative Committee for Space Data System)組織列為深空通信和衛(wèi)星通信的標(biāo)準(zhǔn)之一,CCSDS規(guī)范定義的Turbo碼支持5種信息幀長(zhǎng)度,分別是1 784,3 568,7 136,8920,16384 bit,其中,前 4 種均為 223 bit的整倍數(shù),主要用于和CCSDS所定義的RS(255,223)編碼保持格式上的統(tǒng)一,最后一種長(zhǎng)度16384 bit用于支持高速的數(shù)據(jù)傳輸[1].
對(duì)于規(guī)范所支持的223 bit整倍數(shù)的幀長(zhǎng),已有現(xiàn)成的商用IP Core以及大量的研究成果[2].但是,實(shí)際的應(yīng)用環(huán)境對(duì)編碼幀長(zhǎng)需要有更靈活的選擇.比較典型的取值是將信息數(shù)據(jù)幀的長(zhǎng)度確定為255bit的整數(shù)倍(而不是223),這樣,比較容易獲得一個(gè)完整數(shù)據(jù)幀長(zhǎng)為2的N次方的長(zhǎng)度(例如:4倍 255 bit再加 4 bit同步字節(jié)即1024 bit).本文所要實(shí)現(xiàn)的Turbo碼編譯碼器,根據(jù)特殊應(yīng)用的要求,對(duì)其支持的信息數(shù)據(jù)幀長(zhǎng)度進(jìn)行了擴(kuò)展,不但需要支持規(guī)范所確定的4種幀長(zhǎng),同時(shí)包括16384 bit范圍內(nèi)的其他幀長(zhǎng).
CCSDS規(guī)范中,對(duì)遙測(cè)信道編碼器中使用的Turbo碼進(jìn)行了定義.Turbo碼的一般參數(shù)如下[3].
碼型(code type):Systematic Parallel concatenated turbo code;
分量編碼器個(gè)數(shù):2組;
分量編碼:遞歸卷積碼;
分量編碼狀態(tài):16個(gè);
平均碼率:r=1/2,1/3,1/4,或1/6(可選);
信息幀長(zhǎng)度:k=1 784,3 568,7 136,8 920,16384 bit.
另外,交織器參數(shù)是Turbo碼非常重要的一項(xiàng)參數(shù),為了達(dá)到兼容標(biāo)準(zhǔn)參數(shù)的目的,本文基本參照CCSDS規(guī)范中的算法進(jìn)行交織計(jì)算.
MAP方法是衡量接收序列中,單個(gè)符號(hào)判決的最佳估計(jì),目的是使譯碼輸出比特錯(cuò)誤概率最?。?].MAP譯碼算法的一個(gè)主要特點(diǎn)就是實(shí)現(xiàn)了迭代譯碼.由于有外部信息的參與,信噪比一定時(shí),誤碼率會(huì)隨著譯碼迭代次數(shù)增加而減小.循環(huán)次數(shù)達(dá)到一定數(shù)目時(shí),譯碼性能不再有特別明顯的提高,此時(shí),可以停止迭代計(jì)算,整理輸出譯碼結(jié)果[5-6].
log-MAP算法是MAP算法的對(duì)數(shù)化形式,將MAP算法中的變量都轉(zhuǎn)換為對(duì)數(shù)形式,從而把乘法運(yùn)算轉(zhuǎn)換為加法運(yùn)算[7].同時(shí)譯碼器的輸入輸出相應(yīng)地修正為對(duì)數(shù)似然比形式,再對(duì)算法進(jìn)行必要的修改就得到了log-MAP算法.
SW-MAP算法與MAP算法的主要區(qū)別是將數(shù)據(jù)幀分成多個(gè)數(shù)據(jù)塊,譯碼針對(duì)長(zhǎng)度為D(小于數(shù)據(jù)幀長(zhǎng)度)的數(shù)據(jù)塊進(jìn)行,在接收到D個(gè)信道符號(hào)后開(kāi)始譯碼[8-9].
MAP算法的實(shí)現(xiàn)具有一定的復(fù)雜性,另外兩種算法則是在其基礎(chǔ)之上進(jìn)行改進(jìn)而來(lái),MAP算法基本框架圖如圖1所示.
本文中 Turbo碼編譯碼算法 MAP,log-MAP和SW-MAP算法均用C++實(shí)現(xiàn),并且程序以動(dòng)態(tài)鏈接庫(kù)的形式存在,然后編寫(xiě)Python測(cè)試程序,改變相應(yīng)的參數(shù),通過(guò)仿真測(cè)試各項(xiàng)譯碼性能.仿真環(huán)境框圖如圖2所示.
圖1 算法實(shí)現(xiàn)框圖Fig.1 Block diagram of algorithm
圖2 仿真環(huán)境框圖Fig.2 Block diagram of simulation
測(cè)試過(guò)程中能改變的相關(guān)參數(shù)主要包括:碼率、信息幀長(zhǎng)度、信噪比、仿真起始點(diǎn)、仿真步長(zhǎng)、最大半迭代次數(shù)、出錯(cuò)幀數(shù)、SW-MAP算法中的窗格大小.
測(cè)試的最終結(jié)果是要繪制出特定參數(shù)和算法下的信噪比(SNR,Signal Noise Ratio)與誤碼率(BER,Bit Error Rate)的關(guān)系曲線圖.
本文所設(shè)計(jì)的編譯碼器主要特點(diǎn)之一就是具有通用性,除CCSDS標(biāo)準(zhǔn)參數(shù)外,還要覆蓋非標(biāo)準(zhǔn)參數(shù).就整個(gè)實(shí)現(xiàn)過(guò)程而言,編譯碼器的各項(xiàng)參數(shù)及性質(zhì)都不存在明顯的跳躍性和突變,因此仿真前可以根據(jù)實(shí)際情況和經(jīng)驗(yàn)做出評(píng)估,對(duì)于碼長(zhǎng)相近的標(biāo)準(zhǔn)與非標(biāo)準(zhǔn)參數(shù),此款編譯碼器所表現(xiàn)出來(lái)的譯碼性能應(yīng)該非常接近.
采用 MAP 算法,對(duì) 1 784,2 040,8 920,8160 bit的幀長(zhǎng)進(jìn)行編譯碼仿真,r=1/2,迭代次數(shù)為20次.仿真結(jié)果如圖3所示.
圖3 通用性檢測(cè)MAP算法仿真圖Fig.3 Commonality test result in MAP algorithm
仿真時(shí),選取了兩組長(zhǎng)度相近的標(biāo)準(zhǔn)和非標(biāo)準(zhǔn)參數(shù)的信息序列,分別為1 784(223×8)bit和2040(255×8)bit,8 920(223×5×8)bit和 8 160(255×4×8)bit.同時(shí),保持其他各項(xiàng)參數(shù)如碼率、迭代次數(shù)等一致.
以文獻(xiàn)[10-11]中對(duì)標(biāo)準(zhǔn)參數(shù)進(jìn)行的仿真結(jié)果作為參考,可以證實(shí),上述仿真中符合CCSDS標(biāo)準(zhǔn)參數(shù)的序列長(zhǎng)度(即 k=1 784 bit和 k=8920 bit)的譯碼結(jié)果是符合實(shí)際情況的,具有一定參考價(jià)值.而從上述仿真數(shù)據(jù)可以看出,非標(biāo)準(zhǔn)參數(shù)的信息序列和與其長(zhǎng)度相近的標(biāo)準(zhǔn)信息序列的譯碼性能非常接近.由此可以從一定程度上說(shuō)明,本文所設(shè)計(jì)的編譯碼器具有通用性,不僅能夠覆蓋標(biāo)準(zhǔn)參數(shù),也能實(shí)現(xiàn)非標(biāo)準(zhǔn)參數(shù)的譯碼.
本文選用 MAP,SW-MAP,log-MAP算法對(duì)4080 bit幀長(zhǎng)進(jìn)行仿真測(cè)試,r=1/3,迭代次數(shù)為20次.仿真結(jié)果如圖4所示.
圖4 不同算法仿真比較圖Fig.4 Comparison of different algorithms
可以明顯看出,3種算法中,MAP算法的譯碼性能較好,log-MAP算法與MAP算法的性能非常接近,而SW-MAP算法則略差.尤其是當(dāng)信噪比升高時(shí),3種算法的差異性表現(xiàn)得愈加明顯.MAP算法的復(fù)雜度最高,是最原始最準(zhǔn)確的譯碼算法.而log-MAP算法則是通過(guò)對(duì)數(shù)運(yùn)算實(shí)現(xiàn)將乘法轉(zhuǎn)換為加法,為硬件實(shí)現(xiàn)做準(zhǔn)備,其軟件仿真性能與MAP算法非常接近[12].SW-MAP算法特點(diǎn)在于以犧牲部分譯碼性能來(lái)?yè)Q取減少延時(shí)[13].在一次迭代中,MAP算法整體遞歸,對(duì)于其中兩個(gè)重要的中間變量——前向遞推聯(lián)合條件概率α和后向遞推聯(lián)合條件概率β,只需設(shè)定一次初始值;而SW-MAP算法分塊遞歸,每個(gè)分塊都無(wú)法再利用前一個(gè)塊的結(jié)果,需重新設(shè)定初始值,因而形成累積誤差,從而導(dǎo)致SW-MAP譯碼性能的降低.
在實(shí)際應(yīng)用中,應(yīng)根據(jù)需求選擇合理的譯碼算法,既能保證譯碼性能達(dá)到相應(yīng)標(biāo)準(zhǔn),又要使得算法復(fù)雜性在能接受的范圍之內(nèi).
1)不同信息序列長(zhǎng)度對(duì)Turbo碼譯碼性能的影響.
企業(yè)要對(duì)其財(cái)會(huì)內(nèi)部監(jiān)督管理規(guī)章制度以及企業(yè)的用人制度進(jìn)行嚴(yán)格落實(shí),并且要提升企業(yè)的執(zhí)行力度[2]。作為企業(yè)發(fā)展中直接的負(fù)責(zé)人以及管理人員要加強(qiáng)其對(duì)企業(yè)內(nèi)部財(cái)務(wù)控制的認(rèn)識(shí)程度,因?yàn)槠渲庇^認(rèn)知直接影響著企業(yè)財(cái)會(huì)內(nèi)部監(jiān)督管理的實(shí)際工作落實(shí)。為此,想要做好企業(yè)內(nèi)部監(jiān)督管理機(jī)制工作,就要對(duì)內(nèi)控工作充分重視,并且要相應(yīng)地落實(shí)好監(jiān)督管理機(jī)制中各項(xiàng)工作原則,規(guī)范工作步驟,才能對(duì)企業(yè)的內(nèi)部財(cái)會(huì)監(jiān)督管理進(jìn)行不斷完善,對(duì)企業(yè)的管理水平進(jìn)行相應(yīng)提高。
信息序列長(zhǎng)度是影響Turbo碼的誤碼率在10-6~10-2之間性能的關(guān)鍵因素.本文選用MAP算法,對(duì)2040,4080,6120,8160bit的幀長(zhǎng)進(jìn)行仿真,r=1/3,迭代次數(shù)為20次.仿真結(jié)果如圖5所示.
圖5 不同幀長(zhǎng)比較圖(MAP算法)Fig.5 Comparison of different frame sizes in MAP algorithm
可以看出,在一定范圍內(nèi),信息序列長(zhǎng)度越長(zhǎng),誤碼率越低.并且,當(dāng)信噪比較低時(shí),信息序列長(zhǎng)度對(duì)誤碼率影響不是很大,但是當(dāng)信噪比逐漸增大時(shí),增加信息序列長(zhǎng)度就能很明顯地提高譯碼性能.
在發(fā)送端,其偽隨機(jī)性是由交織器以及并行級(jí)聯(lián)方式來(lái)實(shí)現(xiàn)的.在接收端,各譯碼器輸出的外信息之所以能被互相利用進(jìn)行多次迭代來(lái)增強(qiáng)糾錯(cuò)能力,還得歸功于交織和解交織器的置亂作用[14].在CCSDS參數(shù)中,交織塊的長(zhǎng)度取決于信息序列長(zhǎng),因此,信息序列越長(zhǎng),則交織的偽隨機(jī)性越充分,外信息的交換越能發(fā)揮作用,從而提高譯碼性能.
2)碼率對(duì)Turbo碼譯碼性能的影響.
選用不同的碼率,通常會(huì)對(duì)譯碼性能造成很大影響.本文選用MAP算法,對(duì)2 040 bit幀長(zhǎng)進(jìn)行1/2,1/3,1/4,1/6 4 種碼率的編譯碼仿真,迭代次數(shù)為20次.仿真結(jié)果如圖6所示.
仿真過(guò)程中,保證信息序列長(zhǎng)度、算法、迭代次數(shù)等其他參數(shù)全部相同,選用1/2,1/3,1/4,1/6共4種碼率.從上述一組仿真結(jié)果可以得到結(jié)論:在其他條件相同的情況下,碼率越小,即編碼長(zhǎng)度越長(zhǎng),Turbo碼譯碼性能越好,而且這種差異性表現(xiàn)得非常明顯.
Shannon編碼定理指出:如果采用足夠長(zhǎng)的隨機(jī)編碼,就能逼近Shannon信道容量.這個(gè)仿真結(jié)果正好是符合香農(nóng)編碼定理的,當(dāng)然編碼長(zhǎng)度的增加也會(huì)增大譯碼的復(fù)雜性,因此也應(yīng)當(dāng)根據(jù)實(shí)際情況,合理地選擇碼率,既保證譯碼性能,又使得計(jì)算復(fù)雜度在可接受的范圍內(nèi)[15].
圖6 不同碼率比較圖(MAP算法)Fig.6 Comparison of different bitrates in MAP algorithm
3)不同迭代次數(shù)對(duì) Turbo碼譯碼性能的影響.
Turbo碼通過(guò)迭代譯碼來(lái)提高譯碼性能,因此譯碼次數(shù)是決定Turbo碼譯碼性能的關(guān)鍵性因素之一.通過(guò)仿真來(lái)考察迭代次數(shù)對(duì)Turbo碼譯碼性能的影響.
本文選用MAP算法,對(duì)4080 bit幀長(zhǎng)進(jìn)行仿真,r=1/3,迭代次數(shù) n 分別設(shè)置為 5,10,15,20次.仿真結(jié)果如圖7所示.
圖7 不同迭代次數(shù)仿真圖Fig.7 Comparison of different iterations in MAP algorithm
從圖7的仿真結(jié)果可以看出,在一定范圍內(nèi),隨著迭代次數(shù)的增加,Turbo碼誤碼率不斷下降,性能趨于更優(yōu);并且,信噪比越高,這種影響越明顯.在BER≥10-2時(shí),迭代次數(shù)對(duì)譯碼誤碼率影響比較小;在10-6≤BER≤10-2時(shí),迭代次數(shù)增加,使得外信息多次交換,得到充分利用,從而顯著改善譯碼性能.但是,當(dāng)?shù)螖?shù)增加到一定數(shù)目時(shí),對(duì)于譯碼性能的提高已經(jīng)沒(méi)有特別明顯的促進(jìn)作用了,繼續(xù)進(jìn)行迭代所帶來(lái)的增益是非常小的,反而會(huì)增加譯碼計(jì)算復(fù)雜度[16].因此,在譯碼時(shí)不能盲目地加大迭代次數(shù),而應(yīng)該根據(jù)實(shí)際需求選擇合理的參數(shù).
綜上,可以得出如下結(jié)論:
1)所實(shí)現(xiàn)的Turbo碼譯碼器,具備通用性,對(duì)于CCSDS非標(biāo)準(zhǔn)參數(shù)也能實(shí)現(xiàn)正常編譯碼.
2)Turbo碼3種較為典型的譯碼算法中,log-MAP算法僅僅只是對(duì)數(shù)據(jù)做了對(duì)數(shù)處理,因此譯碼特性與MAP算法相近,而SW-MAP算法由于涉及多處分段設(shè)定初始值,因而引起誤差,譯碼特性略差.
3)參數(shù)的設(shè)置對(duì)于譯碼性能有著重要的影響.在一定范圍內(nèi),幀長(zhǎng)越長(zhǎng),碼率越低,迭代次數(shù)越高,則Turbo碼譯碼性能越好.
有關(guān)Turbo碼更多的性質(zhì)和功用,還需進(jìn)一步深入的探討.
References)
[1] Berrou C,Glavieux A.Near optimum error correcting coding and decoding:Turbo-codes[J].Communications,IEEE Transactions on,1996,44(10):1261-1271
[2] Divsalar D,Pollara F.Turbo codes for deep-space communications[R].TDA Progress Report 42-121,1995,42:66-77
[3] Studer C,Benkeser C,Belfanti S,et al.Design and implementation of a parallel turbo-decoder ASIC for 3GPP-LTE[J].IEEE Journal of Solid-State Circuits,2011,46(1):8-17
[4] CCSDS 101.0-B-6Telemetry channel coding[S]
[5] Vucetic B,Yuan J.Turbo codes:principles and applications[M].Dordrecht:Kluwer Academic Publishers,2000:12-14
[6] Bahl L R,Cocke J,Jelinek F,et al.Optimal decoding of linear codes for minimizing symbol error rate[J].IEEE Transactions on Information Theory,1974,IT-20(2):284-287
[7]劉東華,梁光明.Turbo碼設(shè)計(jì)與應(yīng)用[M].北京:電子工業(yè)出版社,2011:24-27 Liu Donghua,Liang Guangming.Turbo design and application[M].Beijing:Publishing House of Electronics Industry,2011:24-27(in Chinese)
[8]王新梅,肖國(guó)鎮(zhèn).糾錯(cuò)碼——原理與方法(修訂版)[M].西安:西安電子科技大學(xué)出版社,2002:12-15 Wang Xinmei,Xiao Guozhen.Error correction code:principle and method(revised edition)[M].Xi'an:Xidian University Press,2002:12-15(in Chinese)
[9] Halunga S V,Vizireanu N,F(xiàn)ratu O.Imperfect cross-correlation and amplitude balance effects on conventional multiuser decoder with turbo encoding[J].Digital Signal Processing:A Review Journal,2010,20(1):191-200
[10] Hanzo L L,Liew T H,Yeap B L,et al.Turbo coding,Turbo equalisation and space-time coding:EXIT-chart-aided nearcapacity designs for wireless channels[M].New Jersey:John Wiley & Sons,2011:11-12
[11]李濤護(hù),李建東,周旭.CCSDS標(biāo)準(zhǔn)的Turbo譯碼器的硬件設(shè)計(jì)[J].無(wú)線電工程,2006,35(11):59-61 Li Taohu,Li Jiandong,Zhou Xu.Implementation and simulation of CCSDS Turbo-codes decoder in hardware[J].Radio Engineering,2006,35(11):59-61(in Chinese)
[12] Douillard C,Jezequel M,Berrou C,et al.Iterative correction of intersymbol interference:Turbo-equalization[J].European Transactions on Telecommunications,1995,6(5):507-511
[13] EI Gamal H,Hammons A R Jr.Analyzing the turbo decoder using the Gaussian approximation[J].IEEE Transactions on Information Theory,2001,47(2):671-686
[14] Sun J,Takeshita O Y.Interleavers for turbo codes using permutation polynomials over integer rings[J].IEEE Transactions on Information Theory,2005,51(1):101-119
[15] Lottici V,Luise M.Embedding carrier phase recovery into iterative decoding of turbo-coded linear modulations[J].Communications,IEEE Transactions on,2004,52(4):661-669
[16] Pyndiah R M.Near-optimum decoding of product codes:block turbo codes[J].IEEE Transactions on Communications,1998,46(8):1003-1010