劉暢
(重慶郵電大學移動通信技術重點實驗室 重慶 400065)
基于多模芯片的TD-SCDMA系統Turbo碼內交織器設計
劉暢
(重慶郵電大學移動通信技術重點實驗室 重慶 400065)
本文在多模基帶芯片(兼容LTE和TD-SCDMA系統)Turbo譯碼器的硬件加速器設計背景下,介紹了TD-SC DMA系統中Turbo碼的碼內交織器結構以及算法設計,針對硬件實現提出了具體的算法優化設計方案,使算法的復雜度得到了進一步降低,并且提高了時間效率,對整個TD-SCDMA系統有很大的實用價值。
TD-SCDMA;Turbo碼;交織器;數字信號處理
上世紀90年代Berrou等人在ICC會議上提出了一種采用重復迭代(Turbo)譯碼方式的并行級聯碼,該譯碼器采取了軟輸入/輸出的方式,具有接近香農極限的優良性能,從而受到移動通信領域的廣泛重視,特別是在第三代移動通信體制中,被廣泛采用。
在多模基帶芯片(兼容LTE與TD-SCDMA系統)的設計中,Turbo譯碼器作為獨立的核通過硬件加速器實現,LTE系統與TD-SCDMA系統復用Turbo譯碼器主體結構,并使用各自獨立的碼內交織器進行譯碼。因此,本文針對TD-SCDMA系統的Turbo碼內交織器,本著減少硬件開銷和復雜度的角度出發,整理出一套可行的算法優化設計方案,易于硬件實現。
Turbo編碼器的結構是一個并行級聯卷積碼(PCCC),包括一個2分支8狀態編碼器和一個Turbo碼內交織器。其結構圖如圖1所示。

圖1 碼率1/3的Turbo編碼器結構
碼內交織器作為Turbo編碼器的重要組成單元,在譯碼過程中實用頻率很高。因此,Turbo碼內交織器的設計對整個Turbo譯碼器的性能起著至關重要的作用。
有別于LTE系統中的QPP碼內交織器,TD-SCDMA系統中的碼內交織器為傳統的行列交織器,串行處理數據。其作用是重置輸入序列的順序,減小相關性。TD-SCDMA系統中的Turbo碼內交織器的處理流程如圖2所示。

圖2 Turbo交織器處理流程圖
Turbo碼內交織器的輸入比特記為x1,x2,x3,…,xK,其中K是比特數目,取值為40≤K≤5114。Turbo碼內交織器的輸入比特與信道編碼的輸入比特之間的關系滿足xk=Oirk且K=Ki。輸入給Turbo碼內交織器的比特序列按下列步驟寫入交織矩陣中:
(1)確定方形矩陣的行數R,使滿足:

(2)確定行內置換所需的質數p,以及方形矩陣的列數C,使滿足:

從表1中找到最小質數p,使得k≤R×(p+1),
并計算C使滿足:


表1 質數p及相應原根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填充。這些填充比特在執行完行內和行間置換之后,從交織矩陣中刪除而不輸出。
(4)根據不同的輸入長度K確定不同的行間置換模式以及行內置換模式。
(5)逐列將比特輸出,并刪掉填充比特。
在算法設計時,根據協議以及具體的實現中存在的問題,針對一些計算量較大的序列提出了以下的優化算法。
2.1 針對s序列的優化
協議中規定s序列為:首項s0為1,對于j=1,2,…,p-2,有s(j)=(v×s(j-1))modp。整個Turbo譯碼器中只有在交織器的s序列和U序列計算中用到模除,所以可以通過減法運算替代代價較大的模除運算。由于每次運算的減法次數一定小于v值,例如v=5時最多做4次減法,所以可以對v=19的情況進行存表,表格含189個數,而對于其他的6種v值,設計以下針對正數的模除運算mod(a,b)=c:

通過減法運算化簡了模除運算。除去v=19的情況外,其他所有v值對應的s序列共存在6 105種計算,每次模除需要用到的減法次數統計如表2。

表2 不同減法次數的統計
通過表格可以看到,不做減法直接求得結果的比例占1/3還多,而需要多次減法運算的概率卻非常小,例如6次減法運算的比例只占到1.41%。另外,根據遍歷測試可以發現,在實際運算中,對于v=V的情況,一定存在減法次數n=V-1的運算。這也方便了對不同v值的時序規劃。在之后Uij的計算和填充比特刪減操作時用到的模除計算減法量也非常少,同時都為正數模除,都可以利用這個算法代替,不在贅述。
2.2 針對q序列的優化

表3 質數p及相應q序列列表
協議中規定q序列為:首項q0為1,第二項大于6的遞增素數序列,其中對于i=1,2,…,R-1,有g.c.d(qi,p-1)=1。嚴格按照協議進行算法設計將需要使用g.c.d函數,由于g.c.d函數使用頻率非常低,在整個Turbo譯碼器核中,僅在TD-SCDMA系統的碼內交織器計算q序列時需要。如果將所有的p值對應的q序列進行存表,將得到52*20的表格,開銷也很大,所以考慮將不同p值對應的q序列進行分類歸納,部分存表,使用時根據p值查表即可:
2.3 針對填充比特刪減的優化
根據協議規定,填充比特的數量l根據交織矩陣的大小RC減去輸入的比特長度K而決定,并附在輸入比特的尾部按行填入交織矩陣中。執行完交織操作后將刪掉填充比特,按列輸出信息比特。由于交織后比特將亂序,如何確定填充比特的位置進行正確的刪減操作是個問題。最初考慮利用交織矩陣Uij作為標識矩陣,將填充比特設為區別于0和1的其他數,交織矩陣輸出時參照Uij進行判定,但是考慮到硬件面積和實現難度,放棄了這種設計。
通過分析交織規律發現,根據填充比特的長度,可以確定交織前行號不小于l_int=ceil(l/C)的行內含有填充比特,其中行號大于l_int的行中全部為填充比特,而行號等于l_int的行中部分為填充比特,且這一行的填充比特數目為l_dec=l%C。所以在輸出時,可以根據以下判斷條件進行判斷:
((T[i]<R-l_int)||((T[i]==R-l_int)&&(U[T[i]][j]<C-l_dec)))
若滿足該條件,判定為非填充比特,輸出;若不滿足該條件,則判定為填充比特,跳過。
碼內交織器的一致性測試可以通過安捷倫公司的產品Advanced Design System進行測試,選取3GPP的標準Turbo碼內交織器進行數據比對,仿真鏈路的搭建如圖3所示。

圖3 ADS中Turbo碼內交織器仿真鏈路搭建
本文通過算法的優化設計以及RTL代碼對算法的仿真,確定了TD-SCDMA系統中Turbo碼內交織器的優化算法,在硬件加速器實現時,減少了硬件開銷并提高了效率,對整個TDSCDMA系統有很大的實用意義。
[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第三代移動通信系統、信令及實現[M].北京:人民郵電出版社,2003:110-115.
TN929
A
1003-5168(2014)04-0013-02