劉暢
(重慶郵電大學移動通信技術(shù)重點實驗室 重慶 400065)
基于多模芯片的TD-SCDMA系統(tǒng)Turbo碼內(nèi)交織器設(shè)計
劉暢
(重慶郵電大學移動通信技術(shù)重點實驗室 重慶 400065)
本文在多?;鶐酒嫒軱TE和TD-SCDMA系統(tǒng))Turbo譯碼器的硬件加速器設(shè)計背景下,介紹了TD-SC DMA系統(tǒng)中Turbo碼的碼內(nèi)交織器結(jié)構(gòu)以及算法設(shè)計,針對硬件實現(xiàn)提出了具體的算法優(yōu)化設(shè)計方案,使算法的復(fù)雜度得到了進一步降低,并且提高了時間效率,對整個TD-SCDMA系統(tǒng)有很大的實用價值。
TD-SCDMA;Turbo碼;交織器;數(shù)字信號處理
上世紀90年代Berrou等人在ICC會議上提出了一種采用重復(fù)迭代(Turbo)譯碼方式的并行級聯(lián)碼,該譯碼器采取了軟輸入/輸出的方式,具有接近香農(nóng)極限的優(yōu)良性能,從而受到移動通信領(lǐng)域的廣泛重視,特別是在第三代移動通信體制中,被廣泛采用。
在多?;鶐酒?兼容LTE與TD-SCDMA系統(tǒng))的設(shè)計中,Turbo譯碼器作為獨立的核通過硬件加速器實現(xiàn),LTE系統(tǒng)與TD-SCDMA系統(tǒng)復(fù)用Turbo譯碼器主體結(jié)構(gòu),并使用各自獨立的碼內(nèi)交織器進行譯碼。因此,本文針對TD-SCDMA系統(tǒng)的Turbo碼內(nèi)交織器,本著減少硬件開銷和復(fù)雜度的角度出發(fā),整理出一套可行的算法優(yōu)化設(shè)計方案,易于硬件實現(xiàn)。
Turbo編碼器的結(jié)構(gòu)是一個并行級聯(lián)卷積碼(PCCC),包括一個2分支8狀態(tài)編碼器和一個Turbo碼內(nèi)交織器。其結(jié)構(gòu)圖如圖1所示。
圖1 碼率1/3的Turbo編碼器結(jié)構(gòu)
碼內(nèi)交織器作為Turbo編碼器的重要組成單元,在譯碼過程中實用頻率很高。因此,Turbo碼內(nèi)交織器的設(shè)計對整個Turbo譯碼器的性能起著至關(guān)重要的作用。
有別于LTE系統(tǒng)中的QPP碼內(nèi)交織器,TD-SCDMA系統(tǒng)中的碼內(nèi)交織器為傳統(tǒng)的行列交織器,串行處理數(shù)據(jù)。其作用是重置輸入序列的順序,減小相關(guān)性。TD-SCDMA系統(tǒng)中的Turbo碼內(nèi)交織器的處理流程如圖2所示。
圖2 Turbo交織器處理流程圖
Turbo碼內(nèi)交織器的輸入比特記為x1,x2,x3,…,xK,其中K是比特數(shù)目,取值為40≤K≤5114。Turbo碼內(nèi)交織器的輸入比特與信道編碼的輸入比特之間的關(guān)系滿足xk=Oirk且K=Ki。輸入給Turbo碼內(nèi)交織器的比特序列按下列步驟寫入交織矩陣中:
(1)確定方形矩陣的行數(shù)R,使?jié)M足:
(2)確定行內(nèi)置換所需的質(zhì)數(shù)p,以及方形矩陣的列數(shù)C,使?jié)M足:
從表1中找到最小質(zhì)數(shù)p,使得k≤R×(p+1),
并計算C使?jié)M足:
表1 質(zhì)數(shù)p及相應(yīng)原根v列表
(3)逐行將比特序列x1,x2,x3,…,xK寫入R×C的方形矩陣中,首比特y1填入0行0列:
其中,yk=xk for k=1,2,…,K,并且如果R×C×K,則用填充比特yk=0or1,k=K+1,K+2,…,R×C填充。這些填充比特在執(zhí)行完行內(nèi)和行間置換之后,從交織矩陣中刪除而不輸出。
(4)根據(jù)不同的輸入長度K確定不同的行間置換模式以及行內(nèi)置換模式。
(5)逐列將比特輸出,并刪掉填充比特。
在算法設(shè)計時,根據(jù)協(xié)議以及具體的實現(xiàn)中存在的問題,針對一些計算量較大的序列提出了以下的優(yōu)化算法。
2.1 針對s序列的優(yōu)化
協(xié)議中規(guī)定s序列為:首項s0為1,對于j=1,2,…,p-2,有s(j)=(v×s(j-1))modp。整個Turbo譯碼器中只有在交織器的s序列和U序列計算中用到模除,所以可以通過減法運算替代代價較大的模除運算。由于每次運算的減法次數(shù)一定小于v值,例如v=5時最多做4次減法,所以可以對v=19的情況進行存表,表格含189個數(shù),而對于其他的6種v值,設(shè)計以下針對正數(shù)的模除運算mod(a,b)=c:
通過減法運算化簡了模除運算。除去v=19的情況外,其他所有v值對應(yīng)的s序列共存在6 105種計算,每次模除需要用到的減法次數(shù)統(tǒng)計如表2。
表2 不同減法次數(shù)的統(tǒng)計
通過表格可以看到,不做減法直接求得結(jié)果的比例占1/3還多,而需要多次減法運算的概率卻非常小,例如6次減法運算的比例只占到1.41%。另外,根據(jù)遍歷測試可以發(fā)現(xiàn),在實際運算中,對于v=V的情況,一定存在減法次數(shù)n=V-1的運算。這也方便了對不同v值的時序規(guī)劃。在之后Uij的計算和填充比特刪減操作時用到的模除計算減法量也非常少,同時都為正數(shù)模除,都可以利用這個算法代替,不在贅述。
2.2 針對q序列的優(yōu)化
表3 質(zhì)數(shù)p及相應(yīng)q序列列表
協(xié)議中規(guī)定q序列為:首項q0為1,第二項大于6的遞增素數(shù)序列,其中對于i=1,2,…,R-1,有g(shù).c.d(qi,p-1)=1。嚴格按照協(xié)議進行算法設(shè)計將需要使用g.c.d函數(shù),由于g.c.d函數(shù)使用頻率非常低,在整個Turbo譯碼器核中,僅在TD-SCDMA系統(tǒng)的碼內(nèi)交織器計算q序列時需要。如果將所有的p值對應(yīng)的q序列進行存表,將得到52*20的表格,開銷也很大,所以考慮將不同p值對應(yīng)的q序列進行分類歸納,部分存表,使用時根據(jù)p值查表即可:
2.3 針對填充比特刪減的優(yōu)化
根據(jù)協(xié)議規(guī)定,填充比特的數(shù)量l根據(jù)交織矩陣的大小RC減去輸入的比特長度K而決定,并附在輸入比特的尾部按行填入交織矩陣中。執(zhí)行完交織操作后將刪掉填充比特,按列輸出信息比特。由于交織后比特將亂序,如何確定填充比特的位置進行正確的刪減操作是個問題。最初考慮利用交織矩陣Uij作為標識矩陣,將填充比特設(shè)為區(qū)別于0和1的其他數(shù),交織矩陣輸出時參照Uij進行判定,但是考慮到硬件面積和實現(xiàn)難度,放棄了這種設(shè)計。
通過分析交織規(guī)律發(fā)現(xiàn),根據(jù)填充比特的長度,可以確定交織前行號不小于l_int=ceil(l/C)的行內(nèi)含有填充比特,其中行號大于l_int的行中全部為填充比特,而行號等于l_int的行中部分為填充比特,且這一行的填充比特數(shù)目為l_dec=l%C。所以在輸出時,可以根據(jù)以下判斷條件進行判斷:
((T[i]<R-l_int)||((T[i]==R-l_int)&&(U[T[i]][j]<C-l_dec)))
若滿足該條件,判定為非填充比特,輸出;若不滿足該條件,則判定為填充比特,跳過。
碼內(nèi)交織器的一致性測試可以通過安捷倫公司的產(chǎn)品Advanced Design System進行測試,選取3GPP的標準Turbo碼內(nèi)交織器進行數(shù)據(jù)比對,仿真鏈路的搭建如圖3所示。
圖3 ADS中Turbo碼內(nèi)交織器仿真鏈路搭建
本文通過算法的優(yōu)化設(shè)計以及RTL代碼對算法的仿真,確定了TD-SCDMA系統(tǒng)中Turbo碼內(nèi)交織器的優(yōu)化算法,在硬件加速器實現(xiàn)時,減少了硬件開銷并提高了效率,對整個TDSCDMA系統(tǒng)有很大的實用意義。
[1]BerrouC,GlavieuxA.NearOptimumErrorCorrecting Coding and Decoding:Turbo Codes.IEEE Trans.Commun,vol.44, 1996,(10):1261~1271.
[2]3GPP TS 25.222 V10.2.0 3rd Generation Partnership Project.Technical Specification Group Radio Access Network,Multiplexing and Channel Coding(TDD)(Release 4).2011-12.
[3]李小文.TD-SCDMA第三代移動通信系統(tǒng)、信令及實現(xiàn)[M].北京:人民郵電出版社,2003:110-115.
TN929
A
1003-5168(2014)04-0013-02