文獻(xiàn)標(biāo)識碼: A
文章編號: 0258-7998(2011)05-0060-04
ZEHAVI提出比特交織編碼調(diào)制BICM(Bit Interleaver coding Modulation)思想[1],即在編碼和調(diào)制之間引入交織。BICM通過犧牲一些歐式距離來提高漢明距離,使其在衰落信道下具有高度的魯棒性。交織的原理是打亂原始數(shù)據(jù)序列,使數(shù)據(jù)的相關(guān)性減弱,盡力分散突發(fā)錯誤,在譯碼時大大降低數(shù)據(jù)突發(fā)錯誤的影響。
3GPP LTE中物理上行鏈路共享信道PUSCH(Physi-
cal Uplink Shared Channel)上承載的信息包含預(yù)編碼矩陣指示PMI(Precoding Matrix Index)、秩指示RI(Rand Index)、CQI信道質(zhì)量指示(channel quality indicator)和混合自動重傳請求應(yīng)答HARQ-ACK(hybrid automatic repeat request acknowledgement)以及數(shù)據(jù)信息。為降低數(shù)據(jù)突發(fā)錯誤率,在幾路信息各自編碼后和調(diào)制間,引入了信道交織[2]。PUSCH信道交織采用的是分組交織,但與傳統(tǒng)的分組交織有較大差異。本文從DSP實際角度出發(fā),針對PUSCH信道交織與解交織,提出了一種簡單的實現(xiàn)方案。
1 PUSCH信道交織
進(jìn)入PUSCH信道交織是三路信息,為降低譯碼的錯誤率,在進(jìn)行信道交織前,先將三路信息進(jìn)行復(fù)用" title="數(shù)據(jù)復(fù)用">數(shù)據(jù)復(fù)用,然后再進(jìn)行PUSCH信道交織。在用DSP具體實現(xiàn)時,把數(shù)據(jù)復(fù)用和信道交織放在一個模塊實現(xiàn)。
1.1 三路編碼后的數(shù)據(jù)復(fù)用
通過對上述公式的計算和理解,從節(jié)省程序代碼段和cycle數(shù)考慮,提出了一種簡單的實現(xiàn)方案,在放置RI時每行只需放置4列,每行放置的位置相同,在實現(xiàn)時,只需把原RI所占列的表1修改為表2,即可實現(xiàn)上述代碼。
(4)在交織表中放置CQI和數(shù)據(jù)信息:首先放置CQI信息,然后放置數(shù)據(jù)信息,在放置CQI和數(shù)據(jù)信息時,程序中必須考慮不能覆蓋RI的信息,具體見下節(jié)信道交織的DSP實現(xiàn)。
(6)交織表按列輸出即可實現(xiàn)交織。
2 信道交織與解交織算法的DSP實現(xiàn)
本系統(tǒng)選用TMS320C6455作為DSP芯片,該芯片是TI公司基于第三代先進(jìn)Velovi TI超長指令字VLIW(Very Long Instruction Word)結(jié)構(gòu)的高性能定點DSP[3]。其最高主頻達(dá)到了1.2 GHz,每個周期可以并行執(zhí)行8條指令,處理速度最大可至8 000 MIPS,實現(xiàn)高速運(yùn)算。TMS320C6455片內(nèi)采用L1/L2兩級存儲器結(jié)構(gòu),L1包含相互獨(dú)立的32 KB的程序Cache(L1P)和32 KB的數(shù)據(jù)Cache(L1D),L2為2 MB的尋址空間,其片內(nèi)存儲器容量是其他C64系列的二倍。
2.1 信道交織的DSP實現(xiàn)
在實現(xiàn)信道交織時,輸入的三路信息:RI、CQI/PMI和數(shù)據(jù)復(fù)用后的信息,HARQ經(jīng)過編碼后直接到信道交織模塊,數(shù)據(jù)復(fù)用放到信道交織模塊實現(xiàn)。圖1給出PUSCH信道交織的程序?qū)崿F(xiàn)流程。信道交織是比特進(jìn)行交織,為便于尋址處理,需要把每個比特字節(jié)化。
三路信息實現(xiàn)比特字節(jié)化,利用TMS320C6455每個周期最多可并行執(zhí)行8條指令,為節(jié)省Cycle,在比特字節(jié)化的循環(huán)體里,每次分別取出4 B的數(shù)據(jù),在程序中利用A組寄存器和B組寄存器交替使用的方式,達(dá)到每個周期可以并行執(zhí)行6條指令。利用B指令和LDB指令后的延遲“NOP”指令,使程序進(jìn)行極大的優(yōu)化。
在交織表中放置RI信息,根據(jù)對協(xié)議的理解,提出了一種簡單的實現(xiàn)方案。在放置RI信息過程中,采用三層循環(huán)實現(xiàn):第一層為Qm行小向量是否填滿,第二層為該大行的4列是否填滿,第三層為大行數(shù)依次遞減,是否所有的RI已經(jīng)放在交織表中。
在交織表中放置CQI信息,在放置時不能覆蓋RI的信息,即需要知道RI在交織表中占哪些位置。為確定RI在交織表中的位置,用RI編碼后的長度除以4×Qm,在程序中提出采用文獻(xiàn)[4]介紹的除法程序,該除法程序經(jīng)優(yōu)化后只占用35cycle。CQI的放置原理和RI相同,都是采用三層循環(huán)。只是放置時需要根據(jù)RI在交織表占用位置的不同情況進(jìn)行放置。
在交織表中放置ACK信息,為便于程序的簡化,提出了一種簡單的實現(xiàn)方案,ACK放置在交織表中的位置是覆蓋CQI信息,為避免覆蓋多余的CQI,需明確ACK占交織表中哪些位置,用ACK編碼后的長度調(diào)用除法程序除以4×Qm,根據(jù)ACK在交織表中的具體情況進(jìn)行放置。ACK的放置原理和RI相同,采用三層循環(huán)。
2.2 PUSCH解信道交織的DSP實現(xiàn)
PUSCH上的數(shù)據(jù)經(jīng)過解調(diào)、解擾后是軟信息,每個軟信息占16 bit,解信道交織時無需對軟信息進(jìn)行字節(jié)化。通過對協(xié)議TS36.212中PUSCH信道交織的理解,解信道交織的思想是首先恢復(fù)出交織表(注意恢復(fù)交織表時,列輸入行輸出),然后根據(jù)三路數(shù)據(jù)所放置的具體位置,再解出三路數(shù)據(jù)信息。在解交織時,為保證三路輸出的數(shù)據(jù)正確,需調(diào)用除法程序,具體步驟如下:
(1)根據(jù)高層的參數(shù)來確定交織表的列數(shù)Cmux和大行數(shù)R'mux。
(2)恢復(fù)交織表。按列進(jìn)行輸入,在放置數(shù)據(jù)時,包含三層循環(huán),第一層把Qm小行向量填滿,每一小行從起始位置偏移0~(Qm-1)×Cmux進(jìn)行放置,直到把Qm小行放置完;第二層為大行數(shù)依次遞增,直到把R'mux大行的數(shù)據(jù)填滿;第三層為列數(shù)依次遞增,把Cmux列的數(shù)據(jù)填滿,每一列的處理方式相同。
(3)從交織表中取出RI的數(shù)據(jù)。在取RI數(shù)據(jù)時,采用三層循環(huán)進(jìn)行實現(xiàn):從最后一大行開始,第一層為取出列表二的值,根據(jù)該值確定其RI在交織表中列位置偏移,把Qm小行向量的RI數(shù)據(jù)從交織表取出;第二層為列表二中RI所占四列的數(shù)據(jù)是否取完;第三層為大行數(shù)依次遞減,直到把所有的RI信息取出。
(4)在交織時,ACK的數(shù)據(jù)覆蓋一部分CQI的數(shù)據(jù),在解交織時,取出ACK的數(shù)據(jù),同時在放置ACK的數(shù)據(jù)位置填0,即實現(xiàn)對CQI數(shù)據(jù)的打孔。根據(jù)ACK的長度確定ACK在交織表所占位置,從交織表中取出ACK的數(shù)據(jù),其處理方式和RI相同,采用三層循環(huán),在取出數(shù)據(jù)的同時,把相應(yīng)的位置賦值為0。
(5)在解交織取出CQI的數(shù)據(jù)時,從交織表中取出的CQI數(shù)據(jù)的原理和RI相同,都是采用三層循環(huán)。只是取CQI數(shù)據(jù)時需要根據(jù)RI在交織表占用位置的不同情況進(jìn)行。
3 性能分析
在TMS320C6455DSP軟件實現(xiàn)中,考慮該定點DSP具有每個周期最多可并行執(zhí)行8條指令的特性。根據(jù)上節(jié)描述的信道交織與解交織的軟件實現(xiàn)流程,從節(jié)省cycle數(shù)和存儲空間角度出發(fā),最大程度優(yōu)化程序循環(huán)體,使用并行指令,利用一些指令后的延遲“NOP”指令[5]。根據(jù)不同的數(shù)據(jù)類型和數(shù)據(jù)的長度,通過程序仿真實現(xiàn),得到統(tǒng)計結(jié)果如表3。
表3中PUSCH解信道交織時得到的數(shù)據(jù)是軟信息,每一個軟信息占16 bit。給出的三路數(shù)據(jù)各自的長度雖然比較特別,但不失一般性。在交織時由于處理的是比特交織,需要把比特進(jìn)行字節(jié)化,在交織完后,需要字節(jié)比特化級聯(lián)。而解交織處理的是軟信息,無需此過程,所執(zhí)行的周期明顯的減少。雖然給出簡化方案的運(yùn)算量較大,但是由于采用的TMS320C6455的主頻為1 GHz,在具體實現(xiàn)時,完全可以滿足實時需求。
本文從理論上詳細(xì)分析了PUSCH信道交織的過程,PUSCH信道交織的交織表的行、列是由高層來的參數(shù)確定,與傳輸?shù)娜窋?shù)據(jù)的長度無關(guān)。根據(jù)PUSCH上的三路數(shù)據(jù)采用特殊的分塊交織,提出了一種簡單的方案實現(xiàn)PUSCH上數(shù)據(jù)復(fù)用和信道交織的模塊與PUSCH解信道交織和數(shù)據(jù)復(fù)用的模塊。將DSP程序輸出的結(jié)果與MATLAB程序輸出的結(jié)果進(jìn)行比較,程序運(yùn)行結(jié)果表明,本方案能夠滿足TD-LTE無線綜合測試儀表的需求。
參考文獻(xiàn)
[1] ZEHAVI.E 8-PSK Trellis Codes for a Rayleigh Fading Channel IEEE Transactions on Communications,1992,40(5):873-874.
[2] 3GPP TS36.212.v8.9.0 Multiplexing and channel coding(Release 9)[S].
[3] 汪安民,張松燦.TMS320C6000系列DSP實用技術(shù)與開發(fā)案例[M].北京:人民郵電出版社,2008.
[4] 石元君.定點DSP除法原理及其TMS320C6000實現(xiàn)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2002(10):73-74.
[5] Texas Instruments Incorporated. TMS320C6000系列DSP變成工具與指南[M].田黎育,何佩琨,朱夢宇,譯.北京:清華大學(xué)出版社,2007:30-60.