Turbo碼並行交織器及其並行交織方法
2023-05-26 05:52:56 2
專利名稱:Turbo碼並行交織器及其並行交織方法
技術領域:
本發明涉及通信領域中的Turbo解碼處理技術,具體而言,涉及一種Turbo碼並行交織器及其並行交織方法。
背景技術:
Turbo碼是LTE中一種重要的信道編碼方式,其特徵是編解碼複雜度高,時延大, 但誤碼性能優異,適合於大數據量的長碼塊及對時延要求不高的數據傳輸。Turbo碼的成功在於它能很好地滿足香農信道編碼理論中的隨機性條件,並且採用了迭代解碼的方式來獲得編碼增益,因此能夠獲得逼近香農限的極限性能。圖1是Turbo解碼器的結構示意圖,由兩個軟輸入軟輸出(SISO)的RSC碼分量解碼單元組成,中間通過交織器和解交織器相連,進行迭代解碼。解碼單元1所輸出的外賦信息april作為解碼單元2的先驗信息,輔助其解碼;同樣,解碼單元2所輸出的外賦信息 apri2作為解碼單元1的先驗信息,如此反覆迭代進行解碼。解碼單元1和解碼單元2的硬體結構完全相同,在硬體實現時可以採用分時復用,節省硬體資源。解碼單元1和解碼單元2中主要是實現對數域的Max-Log-Map算法,其中將乘法和指數運算簡化為加法和取最大值的運算,從而降低了計算複雜度,利於硬體實現。對於並行的Turbo解碼器而言,其核心就是要在解碼單元1和解碼單元2中設置多個並行的Max-Log-Map計算單元,使之同時對同一碼塊數據進行分段解碼。交織器在Turbo解碼器中發揮著關鍵作用,直接影響Turbo解碼器的性能。LTE 採用的是二次置換多項式(Quadratic PermutationPolynomial, QPP)交織器,這種交織器是無爭用(Contention-free, CF)交織器的一種,其表達式為Π (i) = · i+f2 · i2)mod K(式1-1),其中i和Π (i)分別為交織前和交織後的序號;K為碼塊的長度義和&是兩個參數,具體可以根據碼塊長度K確定。即,假設長度為K的比特流Ctl,Cl,. . .,Ck+交織器的輸出c' ο, c',c' η,則c' i可以表示為C' i =。^"LTE系統要求支持IOOMbps以上的峰值數據速率,這對信道編碼解碼速度提出了更高的要求,為了滿足這一要求,LTE中的Turbo碼必須採用並行解碼算法。對於Turbo碼並行解碼而言,交織器的設計也要適應其並行解碼的要求,發明人發現在相關技術中,還沒有一種能有效進行並行交織的Turbo碼交織器和方法。
發明內容
本發明的主要目的在於提供一種Turbo碼並行交織器及其並行交織方法,以至少解決上述不能有效地進行並行交織的問題。根據本發明的一個方面,提供了一種Turbo碼並行交織器,包括交叉單元,用於產生並行讀取數據的列地址,以及用於對讀取的數據進行行交叉的各行的行地址,將所述列地址作為讀地址輸入到碼塊CB矩陣單元,將所述列地址進行延遲後作為寫地址輸入到所述CB矩陣單元,將各行的所述行地址輸入到轉換輸出單元,以及將各行的所述行地址進行延遲後輸入到轉換輸入單元;轉換輸出單元,用於接收所述CB矩陣單元輸出的各行數據,根據各行的所述行地址,將讀取的各行數據進行行間交叉,並將交叉後的數據輸入到並行匹配MAP單元做MAP計算,其中,所述各行數據為所述CB矩陣單元根據所述讀地址讀取的;轉換輸入單元,用於接收來自所述交叉單元的延遲後的各行的所述行地址,根據延遲之後的行地址將所述並行MAP單元進行MAP計算後輸出的各行數據進行行間交叉,並將交叉後的各行數據作為先驗信息按照所述寫地址寫入到所述CB矩陣單元。根據本發明的另一方面,提供了一種Turbo碼並行交織器的並行交織方法,包括 交叉單元產生並行讀取數據列地址,以及用於對讀取的數據進行行交叉的各行的行地址, 將所述列地址作為讀地址輸入到CB矩陣單元,將所述列地址進行延遲後作為寫地址輸入到所述CB矩陣單元,將各行的所述行地址輸入到轉換輸出單元,並將各行的所述行地址進行延時後輸入到轉換輸入單元;CB矩陣單元根據所述讀地址讀取與所述列地址對應的各行數據,並將讀取的各行數據輸入到所述轉換輸出單元,所述轉換輸出單元根據所述交叉單元輸出的各行的所述行地址對讀取的各行數據進行行間交叉,並將交叉後的數據輸入到並行MAP單元做MAP計算;轉換輸入單元接收來自所述交叉單元的延遲後的各行的所述行地址,根據延遲之後的行地址將所述並行MAP單元進行MAP計算後輸出的各行數據進行行間交叉,並將交叉後的數據作為先驗信息按照所述寫地址寫入到所述CB矩陣單元。通過本發明,根據Turbo碼並行交織器的交叉單元產生的列地址,並行的讀取一列數據,並將讀取的數據按照交叉單元產生的各行的行地址進行行交叉,從而實現數據的行內交織和行間交織;而轉換輸入單元根據交叉單元產生的經過延遲後的各行的行地址對經過MAP計算後的各行數據進行行交叉,並將交叉後的數據作為先驗信息寫入到CB矩陣中與交叉單元產生的列地址對應的位置,從而可以有效的進行並行解交織,進而提高了交織和解交織的效率。
此處所說明的附圖用來提供對本發明的進一步理解,構成本申請的一部分,本發明的示意性實施例及其說明用於解釋本發明,並不構成對本發明的不當限定。在附圖中圖1是根據相關技術的Turbo解碼器的結構示意圖;圖2是根據本發明實施例的Turbo碼交織器的結構示意圖;圖3是本發明實施例的CB矩陣中存儲的矩陣結構示意圖;圖4是根據本發明優選實施例的交叉單元的結構示意圖;圖5是根據本發明另一優選實施例的交叉單元的結構示意圖;圖6是根據本發明實施例的Turbo碼交織器的並行交織方法的流程圖。
具體實施例方式下文中將參考附圖並結合實施例來詳細說明本發明。需要說明的是,在不衝突的情況下,本申請中的實施例及實施例中的特徵可以相互組合。圖1中的交織器與解交織器是一個互逆的處理過程,即一個輸入序列先後經過交織和解交織之後又恢復到原始的順序,而一個輸入序列先後經過兩次交織以後也可以達到同樣的效果。因此,在本發明實施例中,在硬體上將交織器和解交織器合二為一,其中,解交織器的計算結果比交織器的計算結果晚若干個時鐘周期,即解碼單元2的時延。圖2為根據本發明實施例的Turbo碼並行交織器的結構示意圖,如圖2所示,該 Turbo碼交織器主要包括交叉單元(interleave) 10、轉換輸出(switch_out)單元20和轉換輸入(switchjn)單元30。其中,如圖2所示,交叉單元10,用於產生並行讀取數據的列地址,以及用於對讀取的數據進行行交叉的各行的行地址,將該列地址作為讀地址輸入到碼塊(code block,簡稱為CB)矩陣單元,將該列地址進行延遲後作為寫地址輸入到CB矩陣單元,將各行的行地址輸入到轉換輸出單元20,並將各行的行地址進行延遲後輸入到轉換輸入單元30 ;轉換輸出單元20,用於接收CB矩陣單元輸出的各行數據(其中,CB矩陣單元根據上述讀地址讀取一列數據,並將讀取的數據輸出到轉換輸出單元20),根據交叉單元 10輸出的各行的行地址,將並行讀取的各行數據進行行間交叉,並將交叉後的數據輸入到並行匹配(MAP)單元做Max-Log-Map運算(簡稱MAP運算);轉換輸入單元30,用於接收來自交叉單元10的延遲後各行的行地址,由於輸入到轉換輸入單元30的各行的行地址進行了延遲,從而使得轉換輸入單元30接收的各行的行地址可以保持和並行MAP單元的計算時延同步,轉換輸入單元30根據延遲之後的行地址將並行MAP單元進行MAP計算後輸出的各行數據進行行間交叉,並將交叉後的各行數據作為先驗信息按照上述寫地址寫入到CB矩陣單元。在本發明實施例中,將一個待解碼的碼塊(code block, CB)的軟比特信息以及解碼過程中所用的先驗信息按照RXL矩陣格式存放,其中R表示矩陣的行數,L表示矩陣的列數。並行解碼過程是從矩陣中同時讀出1列R行的數據,並將這R個數據按照一定的映射規則送給並行MAP單元(parallel map units)做R路並行的MAP運算。其中,CB矩陣單元中包括四個RXL矩陣,分別用於存放一個碼塊所對應的系統比特Sb、校驗比特p0、校驗比特pi以及先驗信息apri。其中,矩陣的行數R取決於碼塊長度 K,優選地,可以通過下面公式確定R
權利要求
1.一種Turbo碼並行交織器,其特徵在於,包括交叉單元,用於產生並行讀取數據的列地址,以及用於對讀取的數據進行行交叉的各行的行地址,將所述列地址作為讀地址輸入到碼塊CB矩陣單元,將所述列地址進行延遲後作為寫地址輸入到所述CB矩陣單元,將各行的所述行地址輸入到轉換輸出單元,以及將各行的所述行地址進行延遲後輸入到轉換輸入單元;所述轉換輸出單元,用於接收所述CB矩陣單元輸出的各行數據,根據各行的所述行地址,將讀取的各行數據進行行間交叉,並將交叉後的數據輸入到並行匹配MAP單元做MAP計算,其中,所述各行數據為所述CB矩陣單元根據所述讀地址讀取的;所述轉換輸入單元,用於接收來自所述交叉單元的延遲後的各行的所述行地址,根據延遲之後的行地址將所述並行MAP單元進行MAP計算後輸出的各行數據進行行間交叉,並將交叉後的各行數據作為先驗信息按照所述寫地址寫入到所述CB矩陣單元。
2.根據權利要求1所述的Turbo碼並行交織器,其特徵在於,所述交叉單元包括 基本交織地址遞推模塊,用於按照下面公式分別從正向和逆向遞推基本交織地址Π⑴Π (i + 1) = ( Π (i) + ((f1+f2)mod K+(2f2 · i)mod K)mod K)mod K,其中, stustu+w ;Π (i-1) = ( Π (i)-((f1+f2)mod K+(2f2 · (i_l))mod K)mod K)mod K,其中, stdstd-w ;取模模塊,用於對所述基本交織地址遞推模塊遞推所得的基本交織地址Π (i)對L求模,得到列地址col_addr(i);取商模塊,用於將所述基本交織地址遞推模塊遞推所得的所述基本交織地址Π (i)對 L求商,得到首行的行地址row_addr (0,i),0彡i彡L-1 ;鄰行地址計算模塊,用於根據下面公式分別從正向和逆向遞推相鄰兩行之間的行地址增量Δ (i)Δ (i+1) = Δ (i) + (2f2)mod R,其中,stu 彡 i 彡 stu+wΔ (i-1) = Δ (i)-(2f2)mod R,其中,std 彡 i 彡 std-w行地址生成模塊,用於根據下面公式計算所有行的行地址r0W_addr(r,i)row_addr (r, i) = (row_addr (0, i) + (r · Δ (i) )mod R) mod R,(0 ^ r ^ R-1,0 彡 i 彡 L-l)其中,在所述基本交織地址遞推模塊或所述鄰行地址計算模塊的正向遞推過程中,如果土>1^,則有1 = 1 mod L,在所述基本交織地址遞推模塊或所述鄰行地址計算模塊的反向遞推過程中,如果i < 0,則有i = L+i ;f2為交織參數,stu為碼塊內正向遞推的初始位置,且0彡stu彡K-I, std為碼塊內逆向遞推的初始位置,且0彡std彡K-l,L為所述CB矩陣單元中的矩陣的列數,w為基本交織地址遞推的窗長,R為所述CB矩陣單元中的矩陣的行數,K為所述CB矩陣單元中的碼塊長度。
3.根據權利要求2所述的Turbo碼並行交織器,其特徵在於,鄰行地址計算模塊按照下面公式確定正向遞推的初始位置和逆向遞推的初始位置的行地址增量△ (stu)和Δ (0) = (f\+f2 · L)mod R,Δ (i+1) = Δ (i) + (2f2)mod R。
4.根據權利要求2所述的Turbo碼並行交織器,其特徵在於,所述基本交織地址遞推模塊按照下面公式正向遞推的初始位置和逆向遞推的初始位置的基本交織地址Π (stu)和 Π (std)Π (0) = 0 ;Π (i+1) = (Π (i) + ((f1+f2)mod K+ (2f2 · i)mod K)mod K)mod K。
5.根據權利要求2至4中任一項所述的Turbo碼並行交織器,其特徵在於,還包括第一二選一模塊,用於根據所述並行MAP單元當前進行MAP運算次數的奇偶性,選擇i或所述基本交織地址遞推模塊得到的所述遞推基本交織地址Π (i)輸出給所述取模模塊和所述取商模塊;第二二選一模塊,用於根據所述並行MAP單元當前進行MAP運算次數的奇偶性,選擇1 或所述鄰行地址計算模塊得到的行地址增量Δ (i)輸出給所述行地址生成模塊。
6.根據權利要求1所述的Turbo碼並行交織器,其特徵在於,所述轉換輸出單元包括R 個R選1模塊,其中,每個R選1模塊用於根據所述交叉單元輸入的所述行地址,從讀取的 R行數據中選擇1路數據輸出,其中,R為所述CB矩陣單元中的矩陣的行數。
7.根據權利要求1所述的Turbo碼並行交織器,其特徵在於,所述轉換輸入單元包括 R個R選1模塊,其中,每個R選1模塊用於根據所述交叉單元輸入的經過延遲的所述行地址,從所述並行MAP單元輸入的R行數據中選擇1行數據輸出,其中,R為所述CB矩陣單元中的矩陣的行數。
8.—種Turbo碼並行交織器的並行交織方法,其特徵在於,包括交叉單元產生並行讀取數據列地址,以及用於對讀取的數據進行行交叉的各行的行地址,將所述列地址作為讀地址輸入到碼塊CB矩陣單元,將所述列地址進行延遲後作為寫地址輸入到所述CB矩陣單元,將各行的所述行地址輸入到轉換輸出單元,並將各行的所述行地址進行延時後輸入到轉換輸入單元;所述CB矩陣單元根據所述讀地址讀取與所述列地址對應的各行數據,並將讀取的各行數據輸入到所述轉換輸出單元,所述轉換輸出單元根據所述交叉單元輸出的各行的所述行地址對讀取的各行數據進行行間交叉,並將交叉後的數據輸入到並行MAP單元做MAP計算;所述轉換輸入單元接收來自所述交叉單元的延遲後的各行的所述行地址,根據延遲之後的行地址將所述並行MAP單元進行MAP計算後輸出的各行數據進行行間交叉,並將交叉後的數據作為先驗信息按照所述寫地址寫入到所述CB矩陣單元。
9.根據權利要求8所述的方法,其特徵在於,所述交叉單元產生所述列地址以及各行的所述行地址包括所述交叉單元按照下面公式分別從正向和逆向遞推基本交織地址Π (i)Π (i + 1) = ( Π (i) + ((f1+f2)mod K+(2f2 · i)mod K)mod K)mod K,其中, stustu+w ;Π (i-1) = ( Π (i)-((f1+f2)mod K+(2f2 · (i_l))mod K)mod K)mod K,其中,stdstd-w ;所述交叉單元對遞推所得的基本交織地址Π (i)對L求模,得到列地址coladdr (i); 所述交叉單元將遞推所得的所述基本交織地址Π (i)對L求商,得到首行的行地址 row_addr (O, i),0 彡 i 彡 L—1 ;所述交叉單元根據下面公式分別從正向和逆向遞推相鄰兩行之間的行地址增量 Δ⑴Δ (i+1) = Δ (i) + (2f2)mod R,其中,stu 彡 i 彡 stu+w Δ (i-1) = Δ (i)-(2f2)mod R,其中,std 彡 i 彡 std-w 所述交叉單元根據下面公式計算所有行的行地址r0W_addr(r,i) row_addr (r, i) = (row_addr (O, i) + (r · Δ (i) )mod R) mod R, (O ^ r ^ R-1,0 彡 i 彡 L-l) 其中,在所述基本交織地址或所述行地址增量的正向遞推過程中,如果1 >L,則有i = i mod L,在所述基本交織地址或所述行地址增量的反向遞推過程中,如果i < 0,則有i = L+i ;f2為交織參數,stu為碼塊內正向遞推的初始位置,且O彡stu彡K-I, std為碼塊內逆向遞推的初始位置,且O彡std彡K-l,L為所述CB矩陣單元中的矩陣的列數,R為所述CB矩陣單元中的矩陣的行數,K為所述CB矩陣單元中的碼塊長度。
10.根據權利要求9所述的方法,其特徵在於,所述交叉單元在遞推所述基本交織地址時,所述交叉單元按照下面公式正向遞推的初始位置和逆向遞推的初始位置的基本交織地址Π (stu)和 Π (std)Π (0) = 0 ;Π (i+1) = (Π (i) + ((f1+f2)mod K+ (2f2 · i)mod K)mod K)mod K。
11.根據權利要求9所述的方法,其特徵在於,所述交叉單元在遞推所述行地址增量時,按照下面公式確定正向遞推的初始位置和逆向遞推的初始位置的行地址增量△ (stu) 和 Δ (std)Δ (0) = (f\+f2 · L)mod R, Δ (i+1) = Δ (i) + (2f2)mod R。
全文摘要
本發明公開了一種Turbo碼並行交織器及其並行交織方法。Turbo碼並行交織器包括交叉單元,用於產生並行讀取數據的列地址,及用於對數據進行行交叉的各行的行地址,將列地址及延遲後的列地址輸入到CB矩陣單元,將各行的行地址輸入到轉換輸出單元,以及將各行的行地址進行延遲後輸入到轉換輸入單元;轉換輸出單元,用於接收CB矩陣單元輸出的各行數據,根據各行的行地址,將各行數據進行行間交叉,並將交叉後的數據輸入到並行MAP單元做MAP計算;轉換輸入單元,用於接收來延遲後的各行的行地址,根據該行地址將並行MAP單元進行MAP計算後輸出的各行數據進行行間交叉,將交叉後的各行數據作為先驗信息寫入到CB矩陣單元。
文檔編號H03M13/27GK102412850SQ20101029396
公開日2012年4月11日 申請日期2010年9月25日 優先權日2010年9月25日
發明者王毅 申請人:中興通訊股份有限公司