趙 琦 杜玉嬌
(北京航空航天大學 電子信息工程學院,北京100191)
Turbo碼由于其優越的性能,已被空間數據系統咨詢委員會(CCSDS,Consultative Committee for Space Data System)組織列為深空通信和衛星通信的標準之一,CCSDS規范定義的Turbo碼支持5種信息幀長度,分別是1 784,3 568,7 136,8920,16384 bit,其中,前 4 種均為 223 bit的整倍數,主要用于和CCSDS所定義的RS(255,223)編碼保持格式上的統一,最后一種長度16384 bit用于支持高速的數據傳輸[1].
對于規范所支持的223 bit整倍數的幀長,已有現成的商用IP Core以及大量的研究成果[2].但是,實際的應用環境對編碼幀長需要有更靈活的選擇.比較典型的取值是將信息數據幀的長度確定為255bit的整數倍(而不是223),這樣,比較容易獲得一個完整數據幀長為2的N次方的長度(例如:4倍 255 bit再加 4 bit同步字節即1024 bit).本文所要實現的Turbo碼編譯碼器,根據特殊應用的要求,對其支持的信息數據幀長度進行了擴展,不但需要支持規范所確定的4種幀長,同時包括16384 bit范圍內的其他幀長.
CCSDS規范中,對遙測信道編碼器中使用的Turbo碼進行了定義.Turbo碼的一般參數如下[3].
碼型(code type):Systematic Parallel concatenated turbo code;
分量編碼器個數:2組;
分量編碼:遞歸卷積碼;
分量編碼狀態:16個;
平均碼率:r=1/2,1/3,1/4,或1/6(可選);
信息幀長度:k=1 784,3 568,7 136,8 920,16384 bit.
另外,交織器參數是Turbo碼非常重要的一項參數,為了達到兼容標準參數的目的,本文基本參照CCSDS規范中的算法進行交織計算.
MAP方法是衡量接收序列中,單個符號判決的最佳估計,目的是使譯碼輸出比特錯誤概率最小[4].MAP譯碼算法的一個主要特點就是實現了迭代譯碼.由于有外部信息的參與,信噪比一定時,誤碼率會隨著譯碼迭代次數增加而減小.循環次數達到一定數目時,譯碼性能不再有特別明顯的提高,此時,可以停止迭代計算,整理輸出譯碼結果[5-6].
log-MAP算法是MAP算法的對數化形式,將MAP算法中的變量都轉換為對數形式,從而把乘法運算轉換為加法運算[7].同時譯碼器的輸入輸出相應地修正為對數似然比形式,再對算法進行必要的修改就得到了log-MAP算法.
SW-MAP算法與MAP算法的主要區別是將數據幀分成多個數據塊,譯碼針對長度為D(小于數據幀長度)的數據塊進行,在接收到D個信道符號后開始譯碼[8-9].
MAP算法的實現具有一定的復雜性,另外兩種算法則是在其基礎之上進行改進而來,MAP算法基本框架圖如圖1所示.
本文中 Turbo碼編譯碼算法 MAP,log-MAP和SW-MAP算法均用C++實現,并且程序以動態鏈接庫的形式存在,然后編寫Python測試程序,改變相應的參數,通過仿真測試各項譯碼性能.仿真環境框圖如圖2所示.

圖1 算法實現框圖Fig.1 Block diagram of algorithm

圖2 仿真環境框圖Fig.2 Block diagram of simulation
測試過程中能改變的相關參數主要包括:碼率、信息幀長度、信噪比、仿真起始點、仿真步長、最大半迭代次數、出錯幀數、SW-MAP算法中的窗格大小.
測試的最終結果是要繪制出特定參數和算法下的信噪比(SNR,Signal Noise Ratio)與誤碼率(BER,Bit Error Rate)的關系曲線圖.
本文所設計的編譯碼器主要特點之一就是具有通用性,除CCSDS標準參數外,還要覆蓋非標準參數.就整個實現過程而言,編譯碼器的各項參數及性質都不存在明顯的跳躍性和突變,因此仿真前可以根據實際情況和經驗做出評估,對于碼長相近的標準與非標準參數,此款編譯碼器所表現出來的譯碼性能應該非常接近.
采用 MAP 算法,對 1 784,2 040,8 920,8160 bit的幀長進行編譯碼仿真,r=1/2,迭代次數為20次.仿真結果如圖3所示.

圖3 通用性檢測MAP算法仿真圖Fig.3 Commonality test result in MAP algorithm
仿真時,選取了兩組長度相近的標準和非標準參數的信息序列,分別為1 784(223×8)bit和2040(255×8)bit,8 920(223×5×8)bit和 8 160(255×4×8)bit.同時,保持其他各項參數如碼率、迭代次數等一致.
以文獻[10-11]中對標準參數進行的仿真結果作為參考,可以證實,上述仿真中符合CCSDS標準參數的序列長度(即 k=1 784 bit和 k=8920 bit)的譯碼結果是符合實際情況的,具有一定參考價值.而從上述仿真數據可以看出,非標準參數的信息序列和與其長度相近的標準信息序列的譯碼性能非常接近.由此可以從一定程度上說明,本文所設計的編譯碼器具有通用性,不僅能夠覆蓋標準參數,也能實現非標準參數的譯碼.
本文選用 MAP,SW-MAP,log-MAP算法對4080 bit幀長進行仿真測試,r=1/3,迭代次數為20次.仿真結果如圖4所示.

圖4 不同算法仿真比較圖Fig.4 Comparison of different algorithms
可以明顯看出,3種算法中,MAP算法的譯碼性能較好,log-MAP算法與MAP算法的性能非常接近,而SW-MAP算法則略差.尤其是當信噪比升高時,3種算法的差異性表現得愈加明顯.MAP算法的復雜度最高,是最原始最準確的譯碼算法.而log-MAP算法則是通過對數運算實現將乘法轉換為加法,為硬件實現做準備,其軟件仿真性能與MAP算法非常接近[12].SW-MAP算法特點在于以犧牲部分譯碼性能來換取減少延時[13].在一次迭代中,MAP算法整體遞歸,對于其中兩個重要的中間變量——前向遞推聯合條件概率α和后向遞推聯合條件概率β,只需設定一次初始值;而SW-MAP算法分塊遞歸,每個分塊都無法再利用前一個塊的結果,需重新設定初始值,因而形成累積誤差,從而導致SW-MAP譯碼性能的降低.
在實際應用中,應根據需求選擇合理的譯碼算法,既能保證譯碼性能達到相應標準,又要使得算法復雜性在能接受的范圍之內.
1)不同信息序列長度對Turbo碼譯碼性能的影響.
企業要對其財會內部監督管理規章制度以及企業的用人制度進行嚴格落實,并且要提升企業的執行力度[2]。作為企業發展中直接的負責人以及管理人員要加強其對企業內部財務控制的認識程度,因為其直觀認知直接影響著企業財會內部監督管理的實際工作落實。為此,想要做好企業內部監督管理機制工作,就要對內控工作充分重視,并且要相應地落實好監督管理機制中各項工作原則,規范工作步驟,才能對企業的內部財會監督管理進行不斷完善,對企業的管理水平進行相應提高。
信息序列長度是影響Turbo碼的誤碼率在10-6~10-2之間性能的關鍵因素.本文選用MAP算法,對2040,4080,6120,8160bit的幀長進行仿真,r=1/3,迭代次數為20次.仿真結果如圖5所示.

圖5 不同幀長比較圖(MAP算法)Fig.5 Comparison of different frame sizes in MAP algorithm
可以看出,在一定范圍內,信息序列長度越長,誤碼率越低.并且,當信噪比較低時,信息序列長度對誤碼率影響不是很大,但是當信噪比逐漸增大時,增加信息序列長度就能很明顯地提高譯碼性能.
在發送端,其偽隨機性是由交織器以及并行級聯方式來實現的.在接收端,各譯碼器輸出的外信息之所以能被互相利用進行多次迭代來增強糾錯能力,還得歸功于交織和解交織器的置亂作用[14].在CCSDS參數中,交織塊的長度取決于信息序列長,因此,信息序列越長,則交織的偽隨機性越充分,外信息的交換越能發揮作用,從而提高譯碼性能.
2)碼率對Turbo碼譯碼性能的影響.
選用不同的碼率,通常會對譯碼性能造成很大影響.本文選用MAP算法,對2 040 bit幀長進行1/2,1/3,1/4,1/6 4 種碼率的編譯碼仿真,迭代次數為20次.仿真結果如圖6所示.
仿真過程中,保證信息序列長度、算法、迭代次數等其他參數全部相同,選用1/2,1/3,1/4,1/6共4種碼率.從上述一組仿真結果可以得到結論:在其他條件相同的情況下,碼率越小,即編碼長度越長,Turbo碼譯碼性能越好,而且這種差異性表現得非常明顯.
Shannon編碼定理指出:如果采用足夠長的隨機編碼,就能逼近Shannon信道容量.這個仿真結果正好是符合香農編碼定理的,當然編碼長度的增加也會增大譯碼的復雜性,因此也應當根據實際情況,合理地選擇碼率,既保證譯碼性能,又使得計算復雜度在可接受的范圍內[15].

圖6 不同碼率比較圖(MAP算法)Fig.6 Comparison of different bitrates in MAP algorithm
3)不同迭代次數對 Turbo碼譯碼性能的影響.
Turbo碼通過迭代譯碼來提高譯碼性能,因此譯碼次數是決定Turbo碼譯碼性能的關鍵性因素之一.通過仿真來考察迭代次數對Turbo碼譯碼性能的影響.
本文選用MAP算法,對4080 bit幀長進行仿真,r=1/3,迭代次數 n 分別設置為 5,10,15,20次.仿真結果如圖7所示.

圖7 不同迭代次數仿真圖Fig.7 Comparison of different iterations in MAP algorithm
從圖7的仿真結果可以看出,在一定范圍內,隨著迭代次數的增加,Turbo碼誤碼率不斷下降,性能趨于更優;并且,信噪比越高,這種影響越明顯.在BER≥10-2時,迭代次數對譯碼誤碼率影響比較小;在10-6≤BER≤10-2時,迭代次數增加,使得外信息多次交換,得到充分利用,從而顯著改善譯碼性能.但是,當迭代次數增加到一定數目時,對于譯碼性能的提高已經沒有特別明顯的促進作用了,繼續進行迭代所帶來的增益是非常小的,反而會增加譯碼計算復雜度[16].因此,在譯碼時不能盲目地加大迭代次數,而應該根據實際需求選擇合理的參數.
綜上,可以得出如下結論:
1)所實現的Turbo碼譯碼器,具備通用性,對于CCSDS非標準參數也能實現正常編譯碼.
2)Turbo碼3種較為典型的譯碼算法中,log-MAP算法僅僅只是對數據做了對數處理,因此譯碼特性與MAP算法相近,而SW-MAP算法由于涉及多處分段設定初始值,因而引起誤差,譯碼特性略差.
3)參數的設置對于譯碼性能有著重要的影響.在一定范圍內,幀長越長,碼率越低,迭代次數越高,則Turbo碼譯碼性能越好.
有關Turbo碼更多的性質和功用,還需進一步深入的探討.
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碼設計與應用[M].北京:電子工業出版社,2011:24-27 Liu Donghua,Liang Guangming.Turbo design and application[M].Beijing:Publishing House of Electronics Industry,2011:24-27(in Chinese)
[8]王新梅,肖國鎮.糾錯碼——原理與方法(修訂版)[M].西安:西安電子科技大學出版社,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,Fratu 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]李濤護,李建東,周旭.CCSDS標準的Turbo譯碼器的硬件設計[J].無線電工程,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