一種ldpc編碼方法
【專利摘要】一種LDPC編碼方法,包括步驟:①將輸入信息數據列成矩陣并分組,每一行數據為一組;②將校驗區的數據也列成與輸入信息數據矩陣相對應的矩陣,該矩陣的每一列作為一個矩陣單元,且每個單元初始化為“0”,建立起校驗地址表;③讀取校驗地址表中的第一行第一列的校驗地址,求出該地址在校驗區的行和列,將所在行記為m,所在列記為n;輸入信息數據的第一組數據,循環左移m位,記為tmp,將tmp與校驗矩陣中n列校驗數據進行按位異或,并把結果存放回校驗矩陣的n列中;按同樣的方法依序對第一行其余列進行按位異或,同時輸出信息比特數據;④輸入信息數據的第二組數據,與上面的類似操作完成校驗地址表中第二行的地址運算,以此類推,直到完成所有的信息組與校驗地址表中所有地址的運算。
【專利說明】—種LDPC編碼方法
【技術領域】
[0001]本發明涉及一種LDPC編碼方案,能夠有效解決DVB-S2中具有高速傳輸碼率要求的32APSK調制模式的效率問題,屬于電子信息【技術領域】。
【背景技術】
[0002]在歐洲數字電視標準的第二代中采用LDPC碼,即低密度奇偶校驗碼(Low DensityParity Check Code, LDPC)。它可以在具有大噪聲電平和干擾的環境中傳輸強穩健性的信號。LDPC碼由于其校驗矩陣的稀疏性而得名,正是因為這種特性,通過使用特殊構造的校驗矩陣而得到的碼字具有能夠逼近香農極限的特性。目前,LDPC碼已成為通信技術的新熱點并被多個標準采用。在DVB-T2標準中LDPC編碼的復雜度很高,目前被認為是DVB-T2FEC中復雜度最高的部分,因此高效的編碼方案對于LDPC編碼是十分必要的。特別是在DVB-S2中調制模式為32APSK時,傳輸的碼率較高,對系統的要求非常高。
【發明內容】
[0003]本發明的目的,是提供一種高效的LDPC編碼方法,其技術方案是:
[0004]一種LDPC編碼方法,包括步驟:
[0005]①、將輸入信息數據列成矩陣并分組,每一行數據為一組;
[0006]②、將校驗區的數據也列成與輸入信息數據矩陣相對應的矩陣,該矩陣的每一列作為一個矩陣單元,且每個單元初始化為“0”,建立起校驗地址表;
[0007]③、讀取校驗地址表中的第一行第一列的校驗地址,求出該地址在校驗區的行和列,將所在行記為m,所在列記為η ;輸入信息數據的第一組數據,循環左移m位,記為tmp,將tmp與校驗矩陣中η列校驗數據進行按位異或,并把結果存放回校驗矩陣的η列中;讀取校驗地址表中的第一行第二列的校驗地址,按同樣的方法進行按位異或,并把結果存放回校驗矩陣的η列中,以此類推,依次完成校驗地址表中第一行的地址運算,同時輸出信息比特數據;
[0008]④、輸入信息數據的第二組數據,與上面的類似操作完成校驗地址表中第二行的地址運算,以此類推,直到完成所有的信息組與校驗地址表中所有地址的運算。
[0009]所述校驗數據按行輸出,第一位校驗數據直接輸出,以后的每位校驗數據都與上次輸出校驗數據進行異或輸出,PO=PO, O ;P1=P0,I ? PO ;P2=P0, 2 ? Pl ;以此類推,輸出所有的校驗數據。
[0010]本發明的有益效果:
[0011]在實現編碼的過程中,擁有這樣的結構,能降低系統的工作頻率,實現系統的高碼率輸入,不需要高的時鐘頻率,能實現數據的高吞吐率,也不需要太大的存儲RAM。
【專利附圖】
【附圖說明】
[0012]圖1是傳統的LDPC編碼的結構示意圖[0013]圖2是傳統LDPC編碼的長度示意圖
[0014]圖3是改進后的實施過程
[0015]圖4是改進后實現流程圖。
【具體實施方式】
[0016]為了便于理解本發明,首先介紹以往的LDPC的編碼方法。
[0017]圖1是它的編碼結構,分為信息比特數據流k I1, V..U1和校驗比特數據流P(l、P1、Pf Plri兩個部分,其長度分別是Π1和η。對應于圖2,則有Hi=Kuirc和Ii=Nuirc-Kuirct5在通常的LDPC編碼中,每輸入Ibit信息都需要與校驗比特地址中(最大有13位)所有比特流進行異或運算。由于不同的編碼碼率需要使用不同的校驗矩陣,每種模式下的校驗地址不同,每輸入一個信息位需要等待13個時鐘周期,才能等待下一個信息位到來,實現框圖如圖1。
[0018]下面以碼率為2/3的數據幀為例,闡述上述常規LDPC編碼的基本方法和步驟:
[0019](I)所有校驗位初始化^q=P1=P2=*" =Plri=O。經查表,與碼率相關的常數q=60,因此,該幀數據的校驗位編碼長度為:qX 360=60X 360=21 600。查表可知,LDPC編碼的信息數據位長度是43 200,所以,總的LDPC編碼長度應為21600+43 200=64 800。見圖2。
[0020](2)編碼:當輸入信息 位iQ,從地址表查出校驗地址中第一行地址:0 10491 16043506 12826 8065 8226 2767 240 18673 9279 10579 20928,用信息位 L 分別與校驗地址中對應的位做異或運算,并將其結果存回到原來的地址中。
[0021]Po = Po ? 10P2767 = P2767 ? i。
[0022]P10491 —Pl0491 ? ?θ P240 — P240 ?
[0023]Pi6043 — Pl6043 ?Pl8673 — Pl8673 ?
[0024]P506 =
P 506 ?P9279 — P9279 ?
[0025]Pi2826 — Pl2826 ?Pl0579 — Pl0579 ?
[0026]p8065 — p8065 ? i。P20928 — P20928 ? i〇
[0027]p8226 一 P8226 ? i。
[0028]輸入信息位I1,校驗地址則為第一行地址加P=60則編碼關系如下所示:
[0029]p60 = P60 ? I1P2827 =
P2827 ? --
[0030]P10551 —P10551 ? iiP300 — P300 ? ii
[00G1] Pi6103 — Pl6103 ? ilPl8733 — Pl8733 ? --
[0032]p566 —
P 566 ? --P9339 — p9339 ?
[0033]P12886 — Pl2886 ? --Pl0639 — Pl0639 ?
[0034]Psi25 一 Ρδ125 ? --P20988 — P20988 ? --
[0035]p8286 — Ρδ286 ? --
[0036]以此類推,當輸入信息位i359,則編碼關系如下所示:
[0037]P21 540-ρ2ι 540 ? “59
[0038]......[0039]P42 468-Ρ42 468 ? ^359
[0040]輸入信息位i36(l,從地址表查出校驗地址中第二行地址,同上面的處理一樣。
[0041](3)以此類推,得到余下的編碼。
[0042](4)校驗位的輸出=Pi=Pi ? Ph, i=l, 2,…,Nldpc-Kldpc-1。[0043]信息位是一邊編碼一邊輸出,而校驗位則是所有編碼完成之后再通過與上次輸出的異或輸出。
[0044]上述方法的不足之處是:
[0045]在實現上面的過程中,由于輸入的信息比特需要與校驗地址中的不同的校驗位進行異或,最少有3個最大有13個。由于存放校驗地址和校驗數據的存放都是每次只能進行讀或寫操作,每次只能進行對一個地址進行訪問。大大降低了數據的吞吐率。即每輸入一比特的信息數據,最壞的情況需要13個時鐘周期后才可以輸入下一個信息比特數據。對于高碼率的DVB-S2來說,FPGA在實現過程中需要的系統時鐘是無法實現的。如果采用并行運算RAM的開銷也是非常的高。
[0046]本發明的LDPC編碼方法,包括如下步驟:
[0047]①、將輸入信息數據列成矩陣并分組,每一行數據為一組;
[0048]②、將校驗區的數據也列成與輸入信息數據矩陣相對應的矩陣,該矩陣的每一列作為一個矩陣單元,且每個單元初始化為“0”,建立起校驗地址表;
[0049]③、讀取校驗地址表中的第一行第一列的校驗地址,求出該地址在校驗區的行和列,將所在行記為m,所在列記為η ;輸入信息數據的第一組數據,循環左移m位,記為tmp,將tmp與校驗矩陣中η列校驗數據進行按位異或,并把結果存放回校驗矩陣的η列中;讀取校驗地址表中的第一行第二列的校驗地址,按同樣的方法進行按位異或,并把結果存放回校驗矩陣的η列中,以此類推,依次完成校驗地址表中第一行的地址運算,同時輸出信息比特數據;
[0050]④、輸入信息數據的第二組數據,與上面的類似操作完成校驗地址表中第二行的地址運算,以此類推,直到完成所有的信息組與校驗地址表中所有地址的運算。
[0051]所述校驗數據按行輸出,第一位校驗數據直接輸出,以后的每位校驗數據都與上次輸出校驗數據進行異或輸出,PO=PO, O ;P1=P0,I ? PO ;P2=P0, 2 ? Pl ;以此類推,輸出所有的校驗數據。
[0052]下面以一個碼率為2/3的實例詳細說明本發明,參照圖3、圖4:
[0053]①將輸入的信息數據iQ、V..U1列成矩陣并分組,其中m=43200,每一行數據作為一組,可以分成43200 + 360=120組。
[0054]②將校驗區的數據也列成與輸入信息數據矩陣相對應的矩陣360Xq,其中碼率常數q=60 ;該矩陣的每一列作為一個矩陣單元,且每個單元初始化為“O”。如下表所示:
[0055]
【權利要求】
1.一種LDPC編碼方法,包括步驟: ①、將輸入信息數據列成矩陣并分組,每一行數據為一組; ②、將校驗區的數據也列成與輸入信息數據矩陣相對應的矩陣,該矩陣的每一列作為一個矩陣單元,且每個單元初始化為“O”,建立起校驗地址表; ③、讀取校驗地址表中的第一行第一列的校驗地址,求出該地址在校驗區的行和列,將所在行記為m,所在列記為η ;輸入信息數據的第一組數據,循環左移m位,記為tmp,將tmp與校驗矩陣中η列校驗數據進行按位異或,并把結果存放回校驗矩陣的η列中;讀取校驗地址表中的第一行第二列的校驗地址,按同樣的方法進行按位異或,并把結果存放回校驗矩陣的η列中,以此類推,依次完成校驗地址表中第一行的地址運算,同時輸出信息比特數據; ④、輸入信息數據的第二組數據,與上面的類似操作完成校驗地址表中第二行的地址運算,以此類推,直到完成所有的信息組與校驗地址表中所有地址的運算。
2.如權利要求1所述的LDPC編碼方法,其特征在于,所述校驗數據按行輸出,第一位校驗數據直接輸出,以后的每位校驗數據都與上次輸出校驗數據進行異或輸出,PO=PO, O ;Pl=PO, I ? PO ;P2=P0, 2 ? Pl ;以此類推,輸出所有的校驗數據。
【文檔編號】H03M13/11GK103475379SQ201310409577
【公開日】2013年12月25日 申請日期:2013年9月10日 優先權日:2013年9月10日
【發明者】陳會, 陳客松, 趙宏飛, 李永松 申請人:電子科技大學