彭德義 ,李小文,劉 聰
(1.重慶郵電大學 重慶市移動通信技術重點實驗室,重慶400065;2.海南大學 信息科學技術學院,海南 ???570228)
在長期演進(LTE)系統(tǒng)中,上行控制信息(UCI)包括信道質量指示信息CQI/PMI和混合自動請求重傳應答信息HARQ-ACK等,輸入編碼器的比特數(shù)目較少。同時為了保證一定的數(shù)據(jù)傳輸可靠性,在很大程度上依賴于有效的信道編碼方法。Reed-Muller是一種能夠糾正多個差錯的線性分組碼[1]。這種碼的構造比較簡單,結構特性也相當豐富,在實際工程中得到廣泛的應用,特別是應用于編碼比特較少的情況。但是與經(jīng)典的RM碼相比,3GPP LTE協(xié)議[2]中采用的是一種基于RM碼的超碼編碼方式,編碼矩陣還采用了更復雜的交織技術,同時也增加了更多的掩碼序列,這使得接收端的譯碼實現(xiàn)難度大大的增加,因此需要研究出一種有效的譯碼算法。
數(shù)字信號處理芯片DSP,以其數(shù)字器件特有的穩(wěn)定性、可重復性、可大規(guī)模集成、特別是可編程性和易于實現(xiàn)自適應處理等特點,給數(shù)字信號處理的發(fā)展帶來巨大機遇,并且使得信號處理手段更加靈活,功能更加復雜,應用范圍也擴展到移動通信的各個領域。近年來DSP芯片功能越來越強大,特別是TI公司推出的DSP芯片TMS320C64x,片內擁有8個并行處理單元,體系結構采用甚長指令字(VLIW)結構,最高時鐘頻率可以達到300 MHz[3]。在這些強大的功能支持下,使得信號處理研究的重點在很大程度上可以放在軟件算法上,所以在TD-LTE綜合測試儀表系統(tǒng)中采用了這款芯片。本文重點研究了RM譯碼算法在TMS320C64x芯片上的軟件實現(xiàn)。
在TD-LTE上行發(fā)送端,即UE端,當輸入序列長度在編碼器范圍內時,需要對上行控制信息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。
Reed-Muller碼是一種線性分組碼,可以利用冗余比特對接收比特進行檢錯和糾錯。對于線性分組碼,盡管碼的生成可以高效地實現(xiàn),但一般線性分組碼的譯碼問題卻一直難以解決。為此,參考文獻[4]提出一種全搜索算法,其實質是一種最大似然ML算法,基本思想是:在接收端將所有的碼字都進行編碼,然后將編碼后的所有碼字與接收到的碼字進行比較,找出最相似的碼字作為譯碼結果,具體方法為對于(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ù),即求相關值。這種算法存在兩方面的問題:一是需要對所有可能的編碼序列進行編碼,運算量過大;二是要對每一組碼字序列開辟存儲空間,占用過多的內存空間。
通過研究可知參考文獻[5]和參考文獻[6]提出的基于軟判決FHT譯碼算法,將接收到的碼字進行簡單的雙極性化處理:若大于0則判為1,否則判為-1。這是因為哈達碼矩陣是由1與-1組成的,這樣處理便于后面的FHT。然而在TD-LTE無線綜合測試系統(tǒng)中,eNodeB端進行解調解擾處理后的數(shù)據(jù)為軟信息,所以本文主要對輸入的軟信息進行RM譯碼處理。
圖1為在加性高斯白噪聲信道AWGN(Additive White Gaussian Noise)下對全搜索算法和軟判決FHT算法分別在PUSCH和PUCCH信道中的誤比特率進行仿真比較。仿真結果表明:在同等情況下,基于快速哈達碼變換的軟判決算法的性能要比全搜索算法性能高2~3 dB,并且前者的運算效率也遠大于后者。同時可以看出,在PUSCH信道中進行的(32,11)RM譯碼相對于在PUCCH信道中進行的 (20,13)RM譯碼有高達4 dB的編碼增益,這是因為(20,13)RM編碼矩陣是由(32,11)的編碼矩陣進行打孔并增加兩列掩碼序列得到的,根據(jù)參考文獻[7],編碼矩陣的打孔和增加掩碼序列都將損失一定的編碼增益,該仿真結果驗證了理論的正確性。
TMS320C6000是最初主要為移動通信基站的信號處理而推出的超級處理芯片,200 MHz時鐘的C64x完成2 048點定點 FFT的時間只需要 66 μs,比傳統(tǒng) DSPs要快一個數(shù)量級,因此在測試儀表的開發(fā)領域有廣闊的應用前景。C64x系列DSP最主要的特點是在體系結構上采用了VelocoTI甚長指令集VLIW(Very Long Instruction Word)。在VLIW體系結構的DSP中,是由一個超長的機器指令字來驅動內部的多個功能單元。由于每條指令的字段之間是相互獨立的,故可以單周期發(fā)射多條指令,從而實現(xiàn)更高的指令級并行效率。CPU采用哈佛結構,程序總線與數(shù)據(jù)總線分開,取指令與執(zhí)行指令可并行運行。程序總線寬度為256 bit,每一次取指令操作都是取8條指令,稱為一個取指包。C64x系列DSP芯片的大容量、高運算能力等這一些優(yōu)點使其毫無疑問地在無線基站、終端等場合下得到廣泛的應用,特別是運算精度能滿足綜合測試儀表的開發(fā)條件。
基于快速哈達碼FHT變換的RM譯碼是利用編碼表的組成原理,求Hadamard矩陣與接收碼字的相關值,從而根據(jù)相關值特性進行判決譯碼。UE通過PUSCH或PUCCH傳輸上行控制信息UCI,在網(wǎng)絡端進行解調、解擾及解信道交織(僅在PUSCH)后得到的是軟信息(16 bit位置表示1 bit軟信息)。其具體處理過程如圖2所示。由圖2可以看出RM譯碼實現(xiàn)過程主要包括五個部分:雙極性化、解交織、消掩碼、Hadamard變換以及譯碼判決?;诖?,本文提出的一種實現(xiàn)方案輸入輸出變量及調用格式如表1所示。
圖2 FHT譯碼算法處理流程
調用格式: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。
接收端工程中,根據(jù)Channel Flag判定是調用PUSCH譯碼過程還是PUCCH譯碼過程,原因是PUSCH譯碼輸入碼字長度為32,而PUCCH譯碼輸入碼字長度為20,所以在PUCCH譯碼條件下首先在輸入碼字后面添加12 bit的占位符,即添加12個半字的 0,這是為了在進行FHT變換時保證是2的整階乘次方。此外,需要預先開辟的存儲空間如表2所示。
表1 輸入輸出參數(shù)
表2 預先開辟的存儲空間
3.3.1 軟合并、雙極性化及解交織過程
在PUSCH信道條件下,當輸入軟信息長度大于32時,需要對每32個軟信息進行軟信息合并。具體過程為以起始的 32 bit軟信息作為基準,地址偏移 32×2=64(因為輸入序列是以每個軟信息占16 bit位置而存儲的)取下一個32 bit的軟信息,將前32 bit的軟信息與當前32 bit的軟信息進行加權平均之后存儲在_SoftCombineData,作為下一個32 bit軟信息合并的基準值。如此循環(huán)整字數(shù)次,對于整32 bit的剩余比特進行單獨處理如下:將剩余比特與前32 bit的軟信息進行加權平均,然后存儲在_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分別與消掩表的每一行進行內積操作,具體過程如下,每次取消掩表的32 bit數(shù)據(jù),根據(jù)這32 bit數(shù)據(jù)來決定解交織之后序列的符號,從而內循環(huán)32決 次,然后取消掩表的下一行,如此循環(huán)32次或者128次。
3.3.3 FHT變換
本文通過研究分析Hadamard矩陣的性質,將消掩碼處理之后的32個或128個長度為32 bit的矩陣與32階Hadamard矩陣相乘,轉化為5級蝶形運算,從而大大減小了處理的運算復雜度。可以這樣計算:每一級進行加法和減法各16次,從而得到總的運算量為16×2×5=160次。
3.3.4 譯碼判決
在進行 FHT變換后的 1 024(32×32)或者 4 096(128×32)個軟信息比特中,找出絕對值最大值,并且記錄其在矩陣中的行序號和列序號。由于編碼矩陣中M0為全1序列,它對相關值矩陣的影響是改變矩陣中所有值的符號,因此根據(jù)絕對值最大數(shù)的實際符號來譯第1 bit,即:正號時,譯為0;負號時,譯為 1。由于在發(fā)送端進行編碼時第 2~6 bit與 Reed-Muller碼相乘,故絕對值最大值列序號對應的二進制形式即為第2~6 bit。由于在發(fā)送端進行編碼時第7~11 bit與掩碼相乘,故絕對值最大值行序號對應的二進制形式即為第 7~11 bit。
在進行DSP軟件設計時,需要對程序進行優(yōu)化,盡量減少或者消除程序中的“NOP”指令,特別是循環(huán)體內的“NOP”指令。通過在CCS3.3上進行程序的仿真運行,在理想信道環(huán)境下,統(tǒng)計得到各種條件下的譯碼仿真執(zhí)行結果,如表3所示。
表3 不同數(shù)據(jù)長度的RM譯碼速率
表3僅列舉了幾種典型的數(shù)據(jù)長度,且不失一般性,總體性能基本不會受輸入數(shù)據(jù)長度的約束。通過分析可以看出:PUSCH_100與PUSCH_32相比,處理時間主要耗費在軟信息合并處理上,而PUCCH_20與PUSCH_32相比,由于消掩表為128×32的矩陣,在進行消掩碼和FHT變換時,處理時間是后者的4倍,因此處理時間相對較長。TMS320C64x芯片的主頻為1GHz,一個指令周期耗時1 ns,所以本文提出的譯碼算法DSP實現(xiàn)可以達到約兆比特每秒的速率,且誤比特率相當?shù)?,滿足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)方案已應用于TD-LTE無線綜合測試儀表的開發(fā)當中。
[1]FREUDENBERGER J(著).編碼理論——算法、結構和應用[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].田黎育,何佩琨,朱夢宇,譯.北京:清華大學出版社,2006:32-50.
[4]吳湛擊,吳偉陵.3GPP中的Reed-Muller編譯碼算法[J].電子學報,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.