《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技术 > 设计应用 > LTE系统Reed-Muller译码算法及DSP实现
LTE系统Reed-Muller译码算法及DSP实现
来源:电子技术应用2012年第5期
彭德义1, 李小文1, 刘 聪2
1.重庆邮电大学 重庆市移动通信技术重点实验室,重庆400065; 2. 海南大学 信息科学技术学院,海南 海口570228
摘要: 基于长期演进LTE(Long Term Evolution)无线综合测试系统,对各种Reed-Muller译码算法性能进行仿真比较,为TD-LTE无线综合测试系统选择了一种最优的FHT译码算法,并在TMS320C64x DSP中进行实现。同时提出了相关软件优化方法和技巧。译码程序在CCS3.3中的运行结果验证了该算法及优化方法和技巧的可行性、有效性。
中圖分類號: TN929.5
文獻標識碼: A
文章編號: 0258-7998(2012)05-0098-03
Simulation and DSP realization of Reed-Muller decode algorithm in LTE system
Peng Deyi1, Li Xiaowen1, Liu Cong2
1. Key Laborary of Mobile Communication Technology of Chongqing,Chongqing University of Posts and Telecommunications,Chongqing 400065, China; 2. College of Communication Science Technology,Hainan University, Haikou 570228, China
Abstract: Based on the LTE (Long Term Evolution) wireless test system, this paper compared a variety of Reed-Muller decode algorithms through simulation and choosed the most suitable FHT decode algorithm for the TD-LTE wireless test system, and realized the algorithm in the TMS320C64x DSP. It proposed some specific strategies and techniques to optimize the program simultanietly.The running results of the decoding program in CCS3.3 verify that the algorithm and optimization methods and techniques are feasible and effective.
Key words : LTE; Reed-Muller decode; FHT transformation; DSP realization

    在長期演進(LTE)系統(tǒng)中,上行控制信息(UCI)包括信道質(zhì)量指示信息CQI/PMI和混合自動請求重傳應(yīng)答信息HARQ-ACK等,輸入編碼器的比特數(shù)目較少。同時為了保證一定的數(shù)據(jù)傳輸可靠性,在很大程度上依賴于有效的信道編碼方法。Reed-Muller是一種能夠糾正多個差錯的線性分組碼[1]。這種碼的構(gòu)造比較簡單,結(jié)構(gòu)特性也相當豐富,在實際工程中得到廣泛的應(yīng)用,特別是應(yīng)用于編碼比特較少的情況。但是與經(jīng)典的RM碼相比,3GPP LTE協(xié)議[2]中采用的是一種基于RM碼的超碼編碼方式,編碼矩陣還采用了更復(fù)雜的交織技術(shù),同時也增加了更多的掩碼序列,這使得接收端的譯碼實現(xiàn)難度大大的增加,因此需要研究出一種有效的譯碼算法。

    數(shù)字信號處理芯片DSP,以其數(shù)字器件特有的穩(wěn)定性、可重復(fù)性、可大規(guī)模集成、特別是可編程性和易于實現(xiàn)自適應(yīng)處理等特點,給數(shù)字信號處理的發(fā)展帶來巨大機遇,并且使得信號處理手段更加靈活,功能更加復(fù)雜,應(yīng)用范圍也擴展到移動通信的各個領(lǐng)域。近年來DSP芯片功能越來越強大,特別是TI公司推出的DSP芯片TMS320C64x,片內(nèi)擁有8個并行處理單元,體系結(jié)構(gòu)采用甚長指令字(VLIW)結(jié)構(gòu),最高時鐘頻率可以達到300 MHz[3]。在這些強大的功能支持下,使得信號處理研究的重點在很大程度上可以放在軟件算法上,所以在TD-LTE綜合測試儀表系統(tǒng)中采用了這款芯片。本文重點研究了RM譯碼算法在TMS320C64x芯片上的軟件實現(xiàn)。
1 LTE系統(tǒng)中Reed-Muller編碼
    在TD-LTE上行發(fā)送端,即UE端,當輸入序列長度在編碼器范圍內(nèi)時,需要對上行控制信息UCI(包括HARQ-ACK和CQI)進行RM編碼。由于承載UCI的信道包括PUSCH和PUCCH,故在這兩個信道處理過程中采用不同的RM編碼生成矩陣,在PUSCH上進行(32,11)編碼過程,而在PUCCH上進行(20,13)編碼過程[2]。3GPP TS36.212協(xié)議上的編碼矩陣是由交織之后的Walsh碼和基本的掩碼序列組成。其中(32,11)編碼矩陣是由一階Reed-Muller碼和5個基本的掩碼序列進行行交織而得到的,而(20,13)編碼矩陣是由一階Reed-Muller碼和7個基本的掩碼序列進行行交織后對后12行進行打孔而得到的。具體的編碼公式為:
    
式(1)中On表示輸入比特;Mi,n表示(32,11)或(20,13)編碼表;bi表示編碼輸出比特,O表示輸入編碼器比特長度。
    編碼入口參數(shù):TxPUSCHCQIDataIn,TxQ_cqi,TxPUSCH
CQIDataout,其中編碼矩陣M在CCS3.3中直接存儲_PUSCHRMM和_PUCCHRMM。
2 RM譯碼算法的仿真與選擇
    Reed-Muller碼是一種線性分組碼,可以利用冗余比特對接收比特進行檢錯和糾錯。對于線性分組碼,盡管碼的生成可以高效地實現(xiàn),但一般線性分組碼的譯碼問題卻一直難以解決。為此,參考文獻[4]提出一種全搜索算法,其實質(zhì)是一種最大似然ML算法,基本思想是:在接收端將所有的碼字都進行編碼,然后將編碼后的所有碼字與接收到的碼字進行比較,找出最相似的碼字作為譯碼結(jié)果,具體方法為對于(32,11)或(20,13)RM譯碼,將2 048或8 192組長度為11或13的比特序列進行與發(fā)送端相同的編碼,得到2 048或8 192組長度為32或20的比特序列, 然后將接收到的比特序列分別減去這2 048或8 192組比特序列并統(tǒng)計非0元素的個數(shù),即求相關(guān)值。這種算法存在兩方面的問題:一是需要對所有可能的編碼序列進行編碼,運算量過大;二是要對每一組碼字序列開辟存儲空間,占用過多的內(nèi)存空間。
    通過研究可知參考文獻[5]和參考文獻[6]提出的基于軟判決FHT譯碼算法,將接收到的碼字進行簡單的雙極性化處理:若大于0則判為1,否則判為-1。這是因為哈達碼矩陣是由1與-1組成的,這樣處理便于后面的FHT。然而在TD-LTE無線綜合測試系統(tǒng)中,eNodeB端進行解調(diào)解擾處理后的數(shù)據(jù)為軟信息,所以本文主要對輸入的軟信息進行RM譯碼處理。
    圖1為在加性高斯白噪聲信道AWGN(Additive White Gaussian Noise)下對全搜索算法和軟判決FHT算法分別在PUSCH和PUCCH信道中的誤比特率進行仿真比較。仿真結(jié)果表明:在同等情況下,基于快速哈達碼變換的軟判決算法的性能要比全搜索算法性能高2~3 dB,并且前者的運算效率也遠大于后者。同時可以看出,在PUSCH信道中進行的(32,11)RM譯碼相對于在PUCCH信道中進行的(20,13)RM譯碼有高達4 dB的編碼增益,這是因為(20,13)RM編碼矩陣是由(32,11)的編碼矩陣進行打孔并增加兩列掩碼序列得到的,根據(jù)參考文獻[7],編碼矩陣的打孔和增加掩碼序列都將損失一定的編碼增益,該仿真結(jié)果驗證了理論的正確性。

3 RM譯碼算法的DSP實現(xiàn)
3.1硬件簡介

    TMS320C6000是最初主要為移動通信基站的信號處理而推出的超級處理芯片,200 MHz時鐘的C64x完成2 048點定點FFT的時間只需要66 ?滋s,比傳統(tǒng)DSPs要快一個數(shù)量級,因此在測試儀表的開發(fā)領(lǐng)域有廣闊的應(yīng)用前景。C64x系列DSP最主要的特點是在體系結(jié)構(gòu)上采用了VelocoTI甚長指令集VLIW(Very Long Instruction Word)。在VLIW體系結(jié)構(gòu)的DSP中,是由一個超長的機器指令字來驅(qū)動內(nèi)部的多個功能單元。由于每條指令的字段之間是相互獨立的,故可以單周期發(fā)射多條指令,從而實現(xiàn)更高的指令級并行效率。CPU采用哈佛結(jié)構(gòu),程序總線與數(shù)據(jù)總線分開,取指令與執(zhí)行指令可并行運行。程序總線寬度為256 bit,每一次取指令操作都是取8條指令,稱為一個取指包。C64x系列DSP芯片的大容量、高運算能力等這一些優(yōu)點使其毫無疑問地在無線基站、終端等場合下得到廣泛的應(yīng)用,特別是運算精度能滿足綜合測試儀表的開發(fā)條件。
3.2 RM譯碼算法處理流程
   基于快速哈達碼FHT變換的RM譯碼是利用編碼表的組成原理,求Hadamard矩陣與接收碼字的相關(guān)值,從而根據(jù)相關(guān)值特性進行判決譯碼。UE通過PUSCH或PUCCH傳輸上行控制信息UCI,在網(wǎng)絡(luò)端進行解調(diào)、解擾及解信道交織(僅在PUSCH)后得到的是軟信息(16 bit位置表示1 bit軟信息)。其具體處理過程如圖2所示。由圖2可以看出RM譯碼實現(xiàn)過程主要包括五個部分:雙極性化、解交織、消掩碼、Hadamard變換以及譯碼判決。基于此,本文提出的一種實現(xiàn)方案輸入輸出變量及調(diào)用格式如表1所示。

 

 

    調(diào)用格式:Turbo_Code(int*,int,int*,int,int),其中RxDecode_UCI_DataIn表示輸入序列的首地址;RxRMInLen表示輸入序列長度;Rx Decode_UCI_DataOut表示譯碼輸出序列首地址;RxO_UCI表示譯碼輸出序列長度;ChannelFlag用來區(qū)分信道,其中ChannelFlag=0表示PUSCH,ChannelFlag=1表示PUCCH。
3.3 RM譯碼算法程序?qū)崿F(xiàn)
    接收端工程中,根據(jù)Channel Flag判定是調(diào)用PUSCH譯碼過程還是PUCCH譯碼過程,原因是PUSCH譯碼輸入碼字長度為32,而PUCCH譯碼輸入碼字長度為20,所以在PUCCH譯碼條件下首先在輸入碼字后面添加12 bit的占位符,即添加12個半字的0,這是為了在進行FHT變換時保證是2的整階乘次方。此外,需要預(yù)先開辟的存儲空間如表2所示。


3.3.1 軟合并、雙極性化及解交織過程
    在PUSCH信道條件下,當輸入軟信息長度大于32時,需要對每32個軟信息進行軟信息合并。具體過程為以起始的32 bit軟信息作為基準,地址偏移32×2=64(因為輸入序列是以每個軟信息占16 bit位置而存儲的)取下一個32 bit的軟信息,將前32 bit的軟信息與當前32 bit的軟信息進行加權(quán)平均之后存儲在_SoftCombineData,作為下一個32 bit軟信息合并的基準值。如此循環(huán)整字數(shù)次,對于整32 bit的剩余比特進行單獨處理如下:將剩余比特與前32 bit的軟信息進行加權(quán)平均,然后存儲在_SoftCombineData,循環(huán)剩余比特數(shù)次。
    將接收的軟信息根據(jù)其符號位進行雙極性化[8], 以便于后面的FHT變換操作。然后按照下列交織表進行解交織處理。
    <31,0,20,1,2,21,3,4,22,5,6,23,7,8,9,24,19,25,10,11,12,13,26,27,14,15,28,16,17,18,29,30>
3.3.2 消掩碼處理
    將解交織之后的序列_RxRMtemp0或_RxRMtemp1分別與消掩表的每一行進行內(nèi)積操作,具體過程如下,每次取消掩表的32 bit數(shù)據(jù),根據(jù)這32 bit數(shù)據(jù)來決定解交織之后序列的符號,從而內(nèi)循環(huán)32次,然后取消掩表的下一行,如此循環(huán)32次或者128次。
3.3.3 FHT變換
    本文通過研究分析Hadamard矩陣的性質(zhì),將消掩碼處理之后的32個或128個長度為32 bit的矩陣與32階Hadamard矩陣相乘,轉(zhuǎn)化為5級蝶形運算,從而大大減小了處理的運算復(fù)雜度??梢赃@樣計算:每一級進行加法和減法各16次,從而得到總的運算量為16&times;2&times;5=160次。
3.3.4 譯碼判決
      在進行FHT變換后的1 024(32&times;32)或者4 096(128&times;32)個軟信息比特中,找出絕對值最大值,并且記錄其在矩陣中的行序號和列序號。由于編碼矩陣中M0為全1序列,它對相關(guān)值矩陣的影響是改變矩陣中所有值的符號,因此根據(jù)絕對值最大數(shù)的實際符號來譯第1 bit,即:正號時,譯為0;負號時,譯為1。由于在發(fā)送端進行編碼時第2~6 bit與Reed-Muller碼相乘,故絕對值最大值列序號對應(yīng)的二進制形式即為第2~6 bit。由于在發(fā)送端進行編碼時第7~11 bit與掩碼相乘,故絕對值最大值行序號對應(yīng)的二進制形式即為第7~11 bit。
4 性能分析
     在進行DSP軟件設(shè)計時,需要對程序進行優(yōu)化,盡量減少或者消除程序中的&ldquo;NOP&rdquo;指令,特別是循環(huán)體內(nèi)的&ldquo;NOP&rdquo;指令。通過在CCS3.3上進行程序的仿真運行,在理想信道環(huán)境下,統(tǒng)計得到各種條件下的譯碼仿真執(zhí)行結(jié)果,如表3所示。

    表3僅列舉了幾種典型的數(shù)據(jù)長度,且不失一般性,總體性能基本不會受輸入數(shù)據(jù)長度的約束。通過分析可以看出:PUSCH_100與PUSCH_32相比,處理時間主要耗費在軟信息合并處理上,而PUCCH_20與PUSCH_32相比,由于消掩表為128&times;32的矩陣,在進行消掩碼和FHT變換時,處理時間是后者的4倍,因此處理時間相對較長。TMS320C64x芯片的主頻為1GHz,一個指令周期耗時1 ns,所以本文提出的譯碼算法DSP實現(xiàn)可以達到約兆比特每秒的速率,且誤比特率相當?shù)停瑵M足LTE綜合測試系統(tǒng)的性能要求。
    本文從RM編碼理論出發(fā),根據(jù)TD-LTE綜合測試系統(tǒng)的特點,通過Matlab鏈路級仿真比較,為LTE系統(tǒng)選擇了一種最優(yōu)的FHT譯碼算法,提出了一種簡單有效的RM譯碼實現(xiàn)算法,特別是運用蝶型運算對FHT變換運算進行了大量簡化,并對其在TMS320C64xDSP中進行實現(xiàn)。重點描述了FHT變換譯碼算法在DSP中的實現(xiàn)方法,通過程序在CCS3.3上運行仿真,證明本算法在高斯白噪聲信道(AWGN)環(huán)境下具有較低的誤碼率和較高的譯碼運行速率,能夠滿足TD-LTE系統(tǒng)的性能需求。由于其實現(xiàn)的可行性和高效性,該實現(xiàn)方案已應(yīng)用于TD-LTE無線綜合測試儀表的開發(fā)當中。
參考文獻
[1] FREUDENBERGER J(著).編碼理論&mdash;&mdash;算法、結(jié)構(gòu)和應(yīng)用[M].北京:人民郵電出版社,2009:42-48.
[2] 3GPP TS 36.212 v9.0.0 evolved universal terrestrial radio access(E-UTRA) multiplexing and channel coding (Release 9)[S]. 2009-12.
[3] Texas Instruments Incorporated.TMS320C6000系列DSP編程工具與指南[M].田黎育,何佩琨,朱夢宇,譯.北京:清華大學(xué)出版社,2006:32-50.
[4] 吳湛擊,吳偉陵.3GPP中的Reed-Muller編譯碼算法[J]. 電子學(xué)報,2005,33(1):147-149.
[5] BRUNASHEV M V, DUMER I. Error exponents for two soft-decicision decoding algorithms of reed-muller code[J]. IEEE Transactions on Iformation Theory,2009,55(9):4108-4118.
[6] DUMER I. Soft-decision decoding of reed-muller codes:a simplified algorithm[J]. IEEE Transactions on Information Theory, 2006,52(3):956-963.
[7] JONES A E, WILKINSON T A.Performance of reed-muller codes and a maximum-likelyhood decoding algorithm for OFDM[J]. IEEE Transaction On  Communication, 1999,47(7):949-952.
[8] Prokis John G(著).數(shù)字通信(第五版)[M].張力軍,張宗橙, 鄭寶玉,等(譯)北京:電子工業(yè)出版社,2005:340-371.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。