《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > LTE系統(tǒng)Reed-Muller譯碼算法及DSP實(shí)現(xiàn)
LTE系統(tǒng)Reed-Muller譯碼算法及DSP實(shí)現(xiàn)
來源:電子技術(shù)應(yīng)用2012年第5期
彭德義1, 李小文1, 劉 聰2
1.重慶郵電大學(xué) 重慶市移動(dòng)通信技術(shù)重點(diǎn)實(shí)驗(yàn)室,重慶400065; 2. 海南大學(xué) 信息科學(xué)技術(shù)學(xué)院,海南 ???70228
摘要: 基于長期演進(jìn)LTE(Long Term Evolution)無線綜合測(cè)試系統(tǒng),對(duì)各種Reed-Muller譯碼算法性能進(jìn)行仿真比較,為TD-LTE無線綜合測(cè)試系統(tǒng)選擇了一種最優(yōu)的FHT譯碼算法,并在TMS320C64x DSP中進(jìn)行實(shí)現(xiàn)。同時(shí)提出了相關(guān)軟件優(yōu)化方法和技巧。譯碼程序在CCS3.3中的運(yùn)行結(jié)果驗(yàn)證了該算法及優(yōu)化方法和技巧的可行性、有效性。
中圖分類號(hào): TN929.5
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 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

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

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

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

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


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

    表3僅列舉了幾種典型的數(shù)據(jù)長度,且不失一般性,總體性能基本不會(huì)受輸入數(shù)據(jù)長度的約束。通過分析可以看出:PUSCH_100與PUSCH_32相比,處理時(shí)間主要耗費(fèi)在軟信息合并處理上,而PUCCH_20與PUSCH_32相比,由于消掩表為128&times;32的矩陣,在進(jìn)行消掩碼和FHT變換時(shí),處理時(shí)間是后者的4倍,因此處理時(shí)間相對(duì)較長。TMS320C64x芯片的主頻為1GHz,一個(gè)指令周期耗時(shí)1 ns,所以本文提出的譯碼算法DSP實(shí)現(xiàn)可以達(dá)到約兆比特每秒的速率,且誤比特率相當(dāng)?shù)?,滿足LTE綜合測(cè)試系統(tǒng)的性能要求。
    本文從RM編碼理論出發(fā),根據(jù)TD-LTE綜合測(cè)試系統(tǒng)的特點(diǎn),通過Matlab鏈路級(jí)仿真比較,為LTE系統(tǒng)選擇了一種最優(yōu)的FHT譯碼算法,提出了一種簡單有效的RM譯碼實(shí)現(xiàn)算法,特別是運(yùn)用蝶型運(yùn)算對(duì)FHT變換運(yùn)算進(jìn)行了大量簡化,并對(duì)其在TMS320C64xDSP中進(jìn)行實(shí)現(xiàn)。重點(diǎn)描述了FHT變換譯碼算法在DSP中的實(shí)現(xiàn)方法,通過程序在CCS3.3上運(yùn)行仿真,證明本算法在高斯白噪聲信道(AWGN)環(huán)境下具有較低的誤碼率和較高的譯碼運(yùn)行速率,能夠滿足TD-LTE系統(tǒng)的性能需求。由于其實(shí)現(xiàn)的可行性和高效性,該實(shí)現(xiàn)方案已應(yīng)用于TD-LTE無線綜合測(cè)試儀表的開發(fā)當(dāng)中。
參考文獻(xiàn)
[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].田黎育,何佩琨,朱夢(mèng)宇,譯.北京:清華大學(xué)出版社,2006:32-50.
[4] 吳湛擊,吳偉陵.3GPP中的Reed-Muller編譯碼算法[J]. 電子學(xué)報(bào),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)載。