一种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日
【发明者】陈会, 陈客松, 赵宏飞, 李永松 申请人:电子科技大学