摘要:本文介紹了一種數字通信中的交織、解交織器方案,并著重介紹了3GPP建議標準用于TD-SCDMA系統的Turbo解碼器解交織矩陣的高效低功耗硬件實現。
引言
交織器的主要作用是將原始數據序列打散,使交織前后數據序列的相關性減弱,可以通過糾隨機差錯的信道碼來糾突發(fā)差錯,作用是盡可能地分散突發(fā)錯誤,使進入解碼器的錯誤基本上是隨機的,這樣就大大降低了數據突發(fā)錯誤的影響。在第三代移動通信系統中,3GPP建議其數據業(yè)務信道編解碼使用Turbo碼,而Turbo編解碼器中多處使用交織和解交織,交織和解交織性能的好壞是影響Turbo編解碼效果最重要的因素之一。本文主要介紹TD-SCDMA系統中Turbo解碼器解交織矩陣的實現。
典型交織器設計
交織器可以分為規(guī)則交織器和偽隨機交織器,規(guī)則交織器又可分為分組交織器、循環(huán)移位交織器、分組螺旋交織器和二次算術交織器。分組交織器是最簡單的一類交織器。它的交織映射過程可以描述為:將數據序列按行的順序寫入m×n矩陣,然后按列的順序讀出,即完成交織。其實現過程類似于乘積碼的編碼過程。相應的解交織過程就是將交織后的數據序列按列的順序寫入,然后按行的順序讀出即可。交織過程如圖1所示。
3GPP Turbo解碼器解交織矩陣的硬件實現
3GPP Turbo交織器建議算法
Turbo碼內部交織器的算法包括:將輸入比特流填充到一矩陣中;進行行內和行間交織得到新的矩陣;新矩陣經剪切后得到輸出比特流。
圖1 分組交織映射示意圖
將輸入比特流填充到矩陣中
⑴ 決定矩陣的行數R。
矩陣的行序號從上至下為0,1,…,R-1。
⑵ 決定用于行內交織的質數p和矩陣的列數C。
如果481≤K≤530,則p=53,且C=p;否則就采用滿足下列條件的p:,并由此決定:
矩陣的列序號從左至右為0,1,…,C-1。
⑶ 將輸入比特流x1、x2、x3、K、xk從y1逐行寫入R×C矩陣。
其中,yk=xk(k = 1, 2, …, K );如果R×C>K ,余下未填充的比特yk=0或1(k=K+1, K + 2, …, R×C )。在行內和行間交織后,這些后來被填充的虛擬比特將會從矩陣的輸出中剪除。
進行行內和行間交織
得到新的矩陣
⑴ 查表得到v。
⑵ 構造行內交織基本序列:
,j=1,2,…,(p-2),且s(0)=1。
⑶ 令q0 = 1,選擇滿足下列條件的最小質數序列(i = 1,2,…,R-1)。
g.c.d(qi, p - 1) = 1,g.c.d表示最大公約數;
qi > 6;
qi > q(i - 1)。
⑷ 對改序可得到序列:rT(i)=qi(i=0, 1, …, R-1)。
⑸ 對第i行(i = 0,1, …, R - 1)進行行內交織。
① 如果C=p,
,
j=0,1,...,p-2且Ui(p-1)=0;
② 如果C=p+1,
,
且Ui(p-1)=0, Ui(p)=p
③如果C=p-1,
,
j=0,1,...,p-2且U1(p-1)=0,Ui(p)=p
其中,Ui(j)是行內交織模式序列,它表示第i行的第j個被改序位的原始位置。
⑹ 先按照Ui(j)進行行內交織,再按照T(i)進行行間交織后,可得到交織后的新矩陣。
新矩陣經剪切后得到輸出比特流
從上面的新矩陣中逐列讀出(y’1,…,y’C×R),然后剪切掉交織前被填充的虛擬位,即對應于k>K的位yk的位y’