一种基于奇偶校验矩阵的ldpc码的译码方法及译码器的制作方法

文档序号:7682199阅读:198来源:国知局
专利名称:一种基于奇偶校验矩阵的ldpc码的译码方法及译码器的制作方法
技术领域
本发明属于通信领域,具体涉及一种译码方法和译码器。
技术背景LDPC码,全称LowDensity Parity Check Code,即低密度奇偶校验码。在 目前已有的编码方法中,LDPC码的编码方法已经显示出了接近香农限 (Shannon' s limit)的编码性能;在译码方面,与同样是长码的Turbo码相比, LDPC码的误码平层(error floor)出现在很低的误码率区域,且错误码字无法检测 的概率为一个极低的非常接近O的值;LDPC码的奇偶校验矩阵H为稀疏矩阵,此 即"低密度"的命名由来,而这样的特性使其能够通过简单易于实现的译码方法进行 译码,具有极高的实用价值。由于以上几点原因,使得LDPC在近年来成为研究与 应用的热点,例如第二代卫星数字电视视频广播标准(DVB-S2)以及我国的数字 电视地面传输标准都使用LDPC码作为核心的信道编码。但就其译码方法的应用而言,主要存在着耗费资源的问题。例如对比文献l: CN200510081842.5公开的LDPC码译码器和方法提供 了一种可以在同一时间段内,对奇偶校验矩阵的行和列进行两种不同更新的译码方 案,但其对于奇偶校验矩阵的各行采取全并行的译码器结果,因此,其将耗费巨大的 资源,对于一些码长较长、矩阵规模较大的LDPC码(例如,中国数字电视地面传 输标准中所使用的LDPC码)而言显然是不适合的。又例如对比文献2: T.Zhang and K.K Parhi, "A 54 MBPS(3, 6)-regular FPGA LDPC decoder" , IEEE Proc. OfICC, May 2003。该文献中提出一种在目 前在本领域内通用的部分并行的译码器及译码方法,但其更适用于规则码,而且对监 督矩阵的行重和列重有特殊的要求,因此该译码方案对于非规则码在译码效率方面尚 不能使人满意,且对于码长较长、矩阵规模较大的LDPC码,仍存在耗费资源较大 的瓶颈。发明 内容本发明的目的在于,提供一种低密度奇偶校验码的译码方法,本发明的另一个目 的在于提供一种LDPC码译码器装置;用以解决节约硬件资源或提高译码速率的问题。本发明中的低密度奇偶校验码的译码方法,其所应用的奇偶校验矩阵被划分为 px《个大小为axfl的子块,每个子块都用循环行列式或O矩阵填充,此方法具有下列步骤将奇偶校验矩阵进行矩阵分裂,得到多个新矩阵;基于矩阵分裂后的多个新 矩阵进行译码。该基于多个新矩阵的概率译码优选为迭代译码,具有以下步骤步骤1:分别地、 顺序地对各个新矩阵的用于更新校验信息的中间信息进行更新,该校验信息为与各个 新矩阵的各检验节点相关的变量节点上的信息,其中,各行中的变量节点为各个新矩 阵中的各行中数值为"1"的位置;步骤2:根据各个新矩阵更新后的全部中间信息, 顺序对各个新矩阵的校验信息进行更新;步骤3:根据各个新矩阵更新后的校验信息, 顺序对各个新矩阵中的变量信息进行更新,该变量信息为与各个新矩阵的各变量节点 相关的校验节点上的信息,其中,各行中的校验节点为各个新矩阵中的各列中数值为 "1"的位置;步骤4:重复上述步骤1至步骤3,进行迭代,直到译码成功或满足 迭代停止条件。该基于多个新矩阵的概率译码还可以具有以下步骤步骤l:分别地、顺序地对 各个新矩阵的用于更新校验信息的中间信息进行更新,该校验信息为与各个新矩阵的 各检验节点相关的变量节点上的信息;步骤2:根据该各个新矩阵更新后的全部中间 信息,顺序对各个新矩阵的校验信息进行更新;步骤3:根据每个新矩阵更新后的校 验信息,在步骤2顺序对其它新矩阵的校验信息进行更新的同时,对已更新了校验 信息的新矩阵中的变量信息进行更新;步骤4:重复步骤1至步骤3,进行迭代,直 到译码成功或满足迭代停止条件。本发明的另一个目的即提供一种LDPC码译码器装置,该装置包括校验节点 更新单元(以下简称CNU),其对各个新矩阵中各行的校验信息以及用于校验信息 计算的中间信息进行计算;变量节点更新单元(以下简称VNU),其对各个新矩阵 中各列的变量信息进行计算;存储器,其对各个新矩阵的所有校验节点和变量节点, 存储校验信息、变量信息、译码器输入信息、用于译码的中间信息和译码结果进行存 储;控制器,其对校验节点更新单元和变量节点更新单元的运算进行定序,并对它们与存储器间的数据交换进行控制。其中,校验节点更新单元的个数被配置为等于所述各个新矩阵的行块个数q;变量节点更新单元的个数被配置为等于各个新矩阵的列块 个数的最大值r;存储器还存储用于译码的中间信息;控制器被配置为,控制q个校 验节点更新单元,对应各个新矩阵中q个子矩阵行中的a行,在a次校验信息和用于校验信息计算的中间信息的计算中进行复用;控制r个变量节点更新单元,对应所 述各个新矩阵中r个子矩阵行中的a列,在a次变量信息的计算中进行复用。上述的q个校验节点更新单元包括第一查找表单元,其采用査找表方式,将各 个新矩阵的各行的变量节点的变量信息转换为概率值,其个数由所属各个新矩阵的各 行的变量节点的个数决定;加法器单元,其对第一查找表单元输出的概率值求和;减 法器单元;其个数与第一査找表单元个数相同,均以加法器单元输出的概率值的和为 被减数,分别减去第一查找表单元输出的概率值;第二査找表单元,其个数与第一査 找表单元及减法器单元的个数相同,其输入与减法器单元的输出相连,以与第一査找 表单元相同的方式,将其输入转换为概率值;第一符号运算单元,其对各个新矩阵各 行的变量节点的变量信息的符号进行符号运算;第二符号运算单元,其个数与减法器 单元的个数相同,其从第一符号运算单元输出的符号运算的结果中,分别剔除掉各个 新矩阵各行的变量节点的变量信息的符号。上述的r个变量节点更新单元包括第一加法器单元,其对各个新矩阵的各列的 校验节点的校验信息求和;减法器单元,其以第一加法器单元输出的和为被减数,分 别减去各个新矩阵的各列的校验节点的各个校验信息;第二加法器单元,其将第一加 法器单元的和与译码器输入信息进行相加;判决单元,其对第二加法器单元的输出进 行判决,得到译码结果。作为一种改进,译码器中的校验节点更新单元还可以包括验算单元,其对当前译 码结果是否正确进行验算;所述控制器根据该验算单元的结果,控制译码器继续进行 译码计算或者停止译码,输出所述译码结果。作为另一种改进,还可以在q个校验节点更新单元或所述r个变量节点更新单元 中插入流水线,利用该流水线,可以在同一时刻对q个校验节点更新单元或r个变量 节点更新单元实行流水线操作,各自进行相应的运算。综上所述,应用本发明提供的译码方法和译码器进行LDPC码译码时,与现有 技术所提供的译码方案相比,在按照奇偶方式分裂时,在相同的译码速率下,硬件资 源规模减小1/3或在相同的硬件资源下,译码速率提高1/3。


图1为本发明所涉及的对LDPC译码所用的奇偶校验矩阵进行奇偶分裂的矩阵 分裂方法的示意图。图2的上半部分为本发明所涉及的LDPC译码所用的奇偶校验矩阵的一个示例, 图2的下半部分为根据图1的奇偶分裂方法对该矩阵进行奇偶分裂后的示意图。图3为以图2中的进行奇偶分裂后的矩阵为基础的LDPC译码器的一个示例。 图4为校验节点更新单元的一个示例。 图5为变量节点更新单元的一个示例。图6为LDPC迭代译码中的的第n迭代周期和第n+l迭代周期的具体迭代步骤 的示意图。图7为图6的迭代步骤所属的迭代运算的时序简图。图8为LDPC译码器译码步骤的流程图。图9为LDPC译码器译码步骤的另一个流程图。图10的上半部分与图2的上半部分相同,图10的下半部分为对该矩阵进行另 一种矩阵分裂方法后的示意图。图11为基于图10的矩阵分裂方法的LDPC译码器迭代运算的时序简图。
具体实施方式
以下,参照附图对本发明的具体实施方式
进行解释说明。首先描述用于本实施例的奇偶校验矩阵。奇偶检验矩阵又称H矩阵,如图l所 示,由(户+ l)x(g + l)个4 (0&、《,0《7《;7)矩阵组成,4作为H矩阵的子矩阵,是0矩阵或循环行列式构成的"x"方阵,且该循环行列式的重量很小。在本实施例 中,4为由单位阵循环移位而得的"x"方阵或0矩阵。从图2中可见,每一个子矩 阵4中的斜线表示为矩阵元素为"1"的元素位置的轨迹,而其它空白位置上的元素 为"0"。以图2的H矩阵为例,可知,在构成H矩阵的4X10个子矩阵4的每一 行和每一列中,只有一个元素值为"1"的位置。所以,在整个H矩阵的每一行和每一列中,元素值为"1"的位置数分别为m和",其中m即是H矩阵的一个子矩阵行 (4。 4…4J中非0矩阵的个数,称为行重;"即是H矩阵的一个子矩阵列(《《…《)T中非0矩阵的个数,称为列重。m和"满足"〈m,以图2为例,H矩阵的行重为6,列重分别为1、 2和4。并且,对于H矩阵中每一行的m值可以不相同,每一列的w值也可以不相同。对应全部的每行所具有的w ,H矩阵包含M (M = ax(OT。 + Wj +…+ ^ +... +附》)个变量节点;对应全部的每列所具有的n, H矩阵包含iV (Wix("。+^+…+ +…+ "p))个校验节点。且,必然有M-iV。本领域内公知,H矩阵的每一行可以被视为一个奇偶校验方程,对应于H矩阵 的第/行的奇偶校验方程被称为第z'奇偶校验方程,对于对应于该H矩阵的ax(/ + l) 个LDPC码字,当且仅当上述码字满足H矩阵的所有奇偶校验方程,也就是"x(《+ l)个奇偶校验方程,才能译码成功,得到正确的信息。要使译码算法对每组LDPC码译码,需要迭代运算,反复交替地进行校验节点 更新运算和变量节点更新运算。校验节点更新运算,由校验节点运算单元(CNU)进行,如下式完成更新,即 水平过程(行过程)<formula>formula see original document page 9</formula>(u)上式中,^是通过将对应的变量信息丄(L)传递给H矩阵的第Z行的除了第/个 外的每一个校验节点而获得的,而&是表示与第/个变量节点相关的第_/个校验节点 所对应的一个LDPC码字位置的校验信息。式中的&,和^ 是为了简便对^和%的统一写法。iV(附)表示H矩阵中与一个检验节点w相关的所有变量节点的集合。 此外,上式中的( )表示符号函数,T(jc) = ln(tanh(|x/2|)) = ln((l -<formula>formula see original document page 9</formula>为概率计算函数,后述,简称为甲函数。而迭代运算中的另一部分,变量节点更新运算,由变量节点运算单元(VNU)进行,如下完成更新,即垂直过程(或称"列过程")<formula>formula see original document page 9</formula>上式中,(-2。/一)为开始迭代前的信道输入,表示第7位、为l或0的概率信 息,它是LDPC码字经信道输出后估计得到的。由此可知,"A)在迭代中亦是概率 信息,表示在迭代中对应的第_/位巧为1或0的概率大小。M(力表示H矩阵中与一个变量节点/相关的所有检验节点的集合。其后,对丄(力)判决,判决其对应的^为0或1。再利用H矩阵中每一行的校验方程进行检验,若Z/xx-0,译码正确;否则继续迭代直至最大迭代次数。其中x为 关于、(0Sj'《("x/ ))的列向量。实施例1:首先叙述本发明的一种奇偶校验矩阵的分裂方法图1为对LDPC译码所用的奇偶校验矩阵(以下简称"H矩阵")进行奇偶分裂 的分裂方法。图l中的奇偶分裂方法,将H矩阵分为两个矩阵,即H。矩阵和Hi矩阵。具体的分割方法为,将H矩阵中列标为0的子矩阵列(4。 4。…4。)T抽出作为H。矩阵的 第一个子矩阵列,将H矩阵中列标为1的子矩阵列(4 ^…^)T抽出作为A矩阵 的第一个子矩阵列;按照相同方法,顺序地将H矩阵中的子矩阵列抽出交替地放入 H。矩阵及Hi矩阵,上述子矩阵列依照H矩阵中的原有顺序,分别在新矩阵H。及 H冲排列。由此,对完成分裂后的H。矩阵及J^矩阵而言,它们各自的行数保持不 变与原H矩阵相同,而列数各为原H矩阵的一半,具体地说,若H矩阵的列数为偶 数,则H。矩阵和Hi矩阵的列数分别为它的1/2;若H矩阵的列数为奇数,则H。 矩阵的列数为(P + 2)/2, Hi矩阵的列数为户/2,其中H矩阵的列数为p + l。在图1中,为了简便表示,对H。矩阵和Hi矩阵中的子矩阵列的列标仍延用其 在H矩阵的列标,而对于H。矩阵和Hi矩阵中子矩阵列的最后一列的列标"和6 ,若 H矩阵中/7为奇数,"=户-1, 6=/7;若户为偶数,"=户,6 = —1。图2中上半部分所示的矩阵为本实施例所用的H矩阵,如图所示,该矩阵具有 四个子矩阵行和十个子矩阵列,每个子矩阵为"xa的方阵。图2下半部分所示为将 上述H矩阵奇偶分裂为H。矩阵和Hi矩阵后的情况。然后叙述奇偶校验矩阵分裂后的一种译码方法。由于对原矩阵H进行了分裂,并根据分裂后的H。矩阵和Hi矩阵重新构造了相 应的译码器结构,因此需要对前面所述的迭代步骤进行修改,即在保证达到上述两个 算式迭代效果的情况下,对应矩阵分裂后的矩阵结构和译码器结构,重新组织迭代中 的计算更新步骤。下面,对照算式,说明对原迭代算式进行修改后的计算顺序。 具体,将需要完成的水平过程(校验节点更新运算)分为三步a. 对H。矩阵进行校验节点更新运算,计算出用于后述的H,矩阵的校验节点更 新运算的相关信息4^。和S础。。对H。矩阵所有m、",计算<formula>formula see original document page 10</formula> (1)<formula>formula see original document page 10</formula> (2)b. 对I^矩阵进行校验节点更新运算, 一方面计算出原H矩阵的奇数列块中校 验节点的信息,另一方面计算出用于H。矩阵的校验节点更新运算的相关信息^^,和 S Hi。对Hi矩阵所有附、",计算<formula>formula see original document page 10</formula>(3)<formula>formula see original document page 10</formula>(4)<formula>formula see original document page 11</formula>(7) c.对H。矩阵进行校验节点更新运算,计算出原H矩阵的奇数列块中校验节点 的信息<formula>formula see original document page 11</formula>(10) 另一方面,竖直过程的处理(变量节点更新运算)不变,对H。矩阵和H,矩阵的 处理方法相同,只是在不同时间段内,分别对H。矩阵和Hi矩阵进行变量节点更新 运算,对所有m、 n,计算<formula>formula see original document page 11</formula>最后描述的是根据基于奇偶校验矩阵分裂的译码方法设计的一种译码器及其译 码步骤。对检验矩阵完成奇偶分裂后,根据分裂后的H。矩阵和矩阵构造相应的LDPC 译码器结构。如图3所示,本实施例中的译码器包括以下部分存储器单元10、 20, 分别对应H。矩阵和Hi矩阵,用于存储LDPC译码迭代中的信息;校验节点运算单 元(CNU)集合30,共包括q个校验节点运算单元,本实施例中,如图3所示,q 为4,分别为校验节点运算单元31, 32,…,34, CNU集合完成校验节点更新运 算,即对每一行中校验节点的校验信息进行更新;变量节点运算单元(VNU)集合 40,共包括r个变量节点运算单元,在本实施例中如图3所示,r为5,分别为变量 节点运算单元41, 42,…,45, VNU集合完成变量节点更新运算,即对每一列中 变量节点的变量信息进行更新;控制器单元O,控制CNU与VNU的输入、输出, 对更新、迭代进行定序,并在CNU与VNU的输入、输出时给出其相应的存储器单 元10与存储器单元20的读写地址。如上所述,关于本实施例中CNU和VNU的个 数的确定《为H。矩阵、Hi矩阵和H矩阵中子矩阵行的数量,本实施例中有q-4, r为H。矩阵、Hi矩阵各自的子矩阵列的数量的最大值,本实施例中有r-5,因此, 在本实施例中CNU的个数为4, VNU的个数均为5。上述存储器单元10中的各个存储单元与H。矩阵中每一个矩阵元素为"1"的节 点对应,上述存储器单元20中的各个存储单元与H,矩阵中每一个矩阵元素为"1" 的节点对应。当与一个校验节点相关的校验节点更新运算结束后,将运算结果写入相 应的存储器单元10,完成校验信息更新;当与一个变量节点相关的变量节点更新运 算结束后,将运算结果写入相应的存储器单元20,完成变量信息更新;下面描述本发明译码器的检验节点运算单元。如图4所示的CNU单元结构为本实施例所用的CNU单元结构,CNU单元31 到34均采用此结构。CNU单元包括,x个査找表单元即图4中的LUT301到30x, y个加法器单元311到31y, x个减法器单元321到32x, x个査找表单元331到 33x, z个异或单元341到34z以及x个异或单元351到35z。上述代表数值的字 母均为整数,下同。上述CNU单元结构依据式(1)至(10)设计,上述x的值由上述H。矩阵和 H!矩阵中各行的行重的最大值决定,在本实施例中,由于如图2所示,H。矩阵和 Hi矩阵中,行标为2的子矩阵行中各行行重的最大值为4,其余各行行重皆为3, 所以将对应行标为2的子矩阵行的检验节点运算单元3中的x定为4,其余的检验 节点运算单元l、 2、 4中的x定为3,査找表单元301到30x用于式(1)、 (3)、(4)、 (8)中的甲函数运算,并且,其输出与加法器单元311到31 (y-l)的输入 相连用于式(1)、 (3)、 (4)、 (8)中的求和,与减法器单元321到32x的输入相 连用于式(6)和(8)中除去"=/的情况,而减法单元12 (1)到12 (x)的输出 与查找表单元331到33x相连用于式(7)和(10)中的甲函数运算;上述y为不 大于x的值,仅有加法器单元的个数为y,其用于式(1)、 (3)、 (4)、 (8)中的求 和与加法运算,因此,上述y应取不大于x的某值,可以分为几级完成全部求和,当 然该求和也可以用一个较复杂的多输入加法器一次完成;上述z为异或单元341至 34z的个数,其用于式(2)、 (5)、 (6)、 (9)的符号运算,这些异或单元341到 34z可以釆取与上述加法器单元311到31y相同的排列结构,这是应有z-y,当然, z也可以取任意不大于x的值,异或单元351到35x用于式(6)和(9)中除去"=_/的情况。下面描述本发明译码器的变量节点运算单元。如图5所示的VNU单元结构为本实施例所用的VNU单元结构,VNU单元41 到4r均采用此结构。VNU单元具有w个加法器单元401至40w,"个减法器单 元411至41"和一个判决单元420。上述VNU结构依据式(11)和(12)设计,上述"的值由上述H。矩阵和Ht 矩阵中各列的列重的最大值决定,在本实施例中,由于如图2所示,H。矩阵和 矩阵中,各子矩阵列中的列重最大值依次是1、 2、 2、 4、 4,所以将对应的VNU单 元"到打中的"依次定为1、 2、 2、 4、 4;加法器单元20的个数w为不大于"的 值,其用于式(11)中的求和加法,因此,上述w应取不大于"的某值,可以分为 几级完成全部求和,当然该求和也可以用一个较复杂的多输入加法器一次完成;上述 "为减法器单元的个数,其用于式(12)中的减法;判决单元420的输入与加法器 40w的输出相连,实现对丄(力)的判决。下面描述译码器的译码步骤。结合图3所示的译码器结构示意图、图4所示的CNU单元结构图及图5所示 的VNU单元结构图,对迭代运算顺序和具体计算方法进行说明。 初始化H。部分的步骤当接收到来自信道的LDPC码字后,首先,由控制器单元0控制执行初始化步 骤。在H。部分的初始化步骤中,控制器单元0在存储器单元10的每一个存储器单 元中存储式(11)中的-2。/CT2,其中,上述-2。/ —为每一个校验节点所属列_/对 应的从通信信道中接收的一组LDPC码字中每个码字、对应的概率信息。根据式 (11)及式(12),令其参加相应的运算步骤。其值将作为"^)的初始值参加后述的校验节点更新运算。并且,作为译码计算的第一个步骤,在H。部分的初始化步骤 中,控制器单元0还将对CNU单元31至3《和VNU单元41至单元4r复位。 第一迭代步骤这一部分的第一项任务是初始化Hi部分。与上述H。部分的初始化步骤类似, 由控制器单元0控制执行初始化,控制器单元0在存储器单元20的每一个存储器单 元中存储式(11)中的-2r/o"2。其值将作为Z(^》的初始值参加后述的CNU运算。另一方面,由于在上述初始化H。部分的步骤中,已经完成了对应H。矩阵的所 有校验节点 的)的初始化,因此可以在本步骤中,在进行初始化Ht部分的步骤的同时,可以进行与H。矩阵对应的CNU运算。如图3所示的译码器中具有《个CNU单元,它们分别对应H。矩阵和H!矩阵中 的《个子矩阵行,而上述每个子矩阵行中具有"行,因此对于上述每一个CNU单元 而言,需要分别对上述每一行进行校验节点更新运算,才能结束本步骤,而对于这《 个CNU而言,它们之间是并行运算的。但是,由于插入了流水线,设流水线级数为 N,那么每一行的校验节点信息从输入CNU单元到输出CNU单元就需要N/的运算时间,显然这是一个群延迟,用T表示。所以,CNU完成本步骤的运算时间应为 (fl-l)W + T,如图6所示。在本实施例中,T=4,。以第一个CNU单元31为例,在本步骤的第一个运算周期中即T\内,其对用于 H。矩阵的行标为0的子矩阵行的第一行内的所有变量节点上的检验信息求解的中间 信息4。和S。h。进行运算并更新。具体地,译码器进行下述动作Sl,如图3所示的控制器单元0在L运算周期 开始后,即控制将H。矩阵的行标为0的子矩阵行中第一行的变量节点对应的存储器 单元10中的信息-20/0"2 ("1、 2…、x)读出,将其作为式(1)和(2)中的丄(%)并行输入至CNU单元31,然后,如图4所示,进行下述运算过程Scl:将全部"^) 至丄(g。》的第一位作为符号位单独计算,其余位被送入查找表单元301至30x,分 别求出式(1)中的^函数,所述全部"^)至"&,)的位数一致,均依照希望的量 化程度设定;其后,由加法器311至31y完成式(1)中的求和运算,由于在本第 一迭代步骤中,4^尚无数值,所以控制器O将其输入O,其不影响求和结果,因此 该加法器31y的输出即为式(1)所求的4&;另一方面,上述全部"^)至丄(g。,)的 第一位,由异或单元341至34z完成式(2)中的符号运算,与上所述同理,S叫的 输入被置0,不影响异或结果,因此该异或单元34z的输出即为式(2)所求的S。h。。 由于该CNU单元的结构将在后述迭代步骤中被重用,因此其结构为式(l)、 (2)、 式(3)至式(7)、式(8)至式(10)的通用结构,从而,对于本第一迭代步骤中, 其减法器321至32x、査找表单元331至33x、异或单元351至35x是不必要的。 因此,对于经减法器321至32x和查找表单元331至33x输出的& ,无论将其存入存储器10或20,或者不存入存储器10或20,其均不介入后续运算中。从而, 在第一运算周期l结束时,由控制器单元O控制,将CNU单元31输出的数据存入 H。矩阵行标为0的子矩阵行中第一行的变量节点对应的存储器单元10中的存储单 元中,译码器完成动作S1。与上述第一运算周期1\相同,译码器还要在第二运算周期T2至第a运算周期 Ta内,分别重复以上S1的动作,其中,CNU31要在第二运算周期T2至第a运算周 期Ta内,分别重复以上运算过程Scl,由控制器O控制,输入的信息应为H。矩阵 中行标为0的子矩阵行中余下的"-l行的各个变量节点的变量信息,输出的信息应 各自对应H。矩阵行标为0的子矩阵行中余下的a-l行的各个变量节点。根据本领域内的公知技术,在图4所示的CNU单元结构中可以插入流水线,从 而,上述^周期与T2周期的运算在时间上可以有一部分重合,即当L周期内CNU中的査找表单元301向加法器单元311输出数据开始求和运算后,控制器O可以将 H。矩阵的行号为0的子矩阵行中第二行的变量节点对应的存储器10中的存储单元 中的信息-2。/cr2 (;' = 1、 2…、x)读出,将其作为式(1)和(2)中的Z(^)并行输入至CNU单元31 ,并再次开始运算过程Scl ,对用于H。矩阵的行标为0的子矩 阵行的第二行内的所有变量节点上的检验信息求解的中间信息4^。(附=1、 2…、和S^。 (w=l、 2…、"-1)进行运算并更新。同理,T2周期与T3周期至T^ 周期与Ta周期均可在时间上重合,如图6所示。由于CNU单元31与CNU单元32至CNU单元3《采用相同的结构,且在同一时刻并行运算,因此它们之间的动作特性是相同的,也可以说,在上述的^周期 至Ta周期内进行相同的运算,只不过,CNU单元32至CNU单元3《的输入信息应 为H。矩阵中行标为1至《的子矩阵行中"行的各个变量节点的变量信息,输出的信 息应各自对应H。矩阵行标为1至g的子矩阵行中的"行的各个变量节点,对于它们 各自具体的运算步骤等,将不再赘述。在后述说明中,也将釆取与上述类似的说明方 式,只说明一个具有代表性的运算单元的动作特性。至Ta周期动作结束,完成了第一迭代步骤,对于用于后述检验信息求解的中间 信息进行了更新。第二迭代步骤以CNU单元31为例,在本步骤的第一个运算周期中即1\内,其对t^矩阵的 行标为0的子矩阵行的第一行内的所有变量节点的校验信息i o,和中间信息4^、 S^进行运算并更新。具体地,译码器进行下述动作S2,如图3所示的控制器单元0在1\运算周期 开始后,即控制将Hi矩阵的行标为0的子矩阵行中第一行的变量节点对应的存储器 单元20中的信息-2。/o"2 (/ = 1、 2…、x)和第一迭代步骤中求出的4w。、 & 。读 出,将它们分别作为式(3)至式(6)中的变量"^》和式(4)及式(6)中的Ah。、 S^。并行输入至CNU单元31,然后,如图4所示,进行下述运算过程Sc2:与运 算过程Scl类似地,将全部Z(^n)至丄(^J的第一位与S^。作为符号位单独计算,其 余位被送入查找表单元301至30x,分别求出式(3)中的甲函数,所述全部丄(^) 至"^J与4^。的位数均依flt希望的量化程度设定。其后,由加法器311至31 (y-1) 完成式(3)中的求和运算,由加法器31y和减法器321至32x分别完成式(4) 中的加法和^y的运算,加法器31 (y-l)的输出即为式(3)所求《a,加法器 321至32x分别输出式(4)所求的4^ () = 1、2、…、x);另一方面,上述全部"^)至"^c)的第一位与S。h。,由异或单元341至34 (z-l)完成式(6)中的符号运算,由异或单元34z和异或单元351至35x分别完成式(6)中的符号运算和"* _/的运 算,异或单元34 (z-l)的输出即为式(5)所求S, (m-O),异或单元351至 35x分别输出式(6)所求的^ (附=0; y-l、2、…、x);并且,最后将、 (7' = 1、2、…、x)与其对应的经査找表单元331至33x输出的各屮(0合并,作 为式(7)中的各i 叩(m = 0; 7 = 1么…、x)输出,其中,、为与之相对应的i^的第一位。在第一运算周期L结束时,由控制器单元0控制,将CNU单元31输出的数据 存入Hi矩阵行标为0的子矩阵行中第一行的变量节点对应的存储器单元20中的存 储单元。同时,CNU单元31产生的中间信息4^和S。巧也存入到对应的存储器单元20的存储单元中,译码器完成动作S2。与上述第一迭代步骤相同地,本迭代步骤中,译码器还要在第二运算周期K至 第a运算周期Ta内,分别重复以上动作S2,其中,CNU单元31要在第二运算周 期T2至第a运算周期Ta内,分别重复上述运算过程Sc2,但由控制器单元O控制, 输入的信息应为Hi矩阵中行标为0的子矩阵行中余下的"-l行的各个变量节点的变 量信息与H。矩阵中行标为0的子矩阵行中余下的"-l行中的用于校验信息求解的中 间信息Aw。(附=1、 2…、和S《(附=1、 2…、1),输出的信息应各自 对应H工矩阵行标为O的子矩阵行中余下的"-l行的各个变量节点。并且,T2周期与 Ts周期至周期与Ta周期均可在时间上重合,如图6所示。另外,与上述第一迭代步骤相同地,本迭代步骤中,CNU单元31与CNU单元 32至CNU单元3《在上述的l周期至Ta周期内进行相同的运算,其中,CNU单 元32至CNU单元3《的输入信息应为&矩阵中行标为1至?的子矩阵行中a行的 各个变量节点的变量信息与H。矩阵中行标为1至《的子矩阵行中"行的用于校验信 息求解的中间信息,输出的信息应各自对应Hi矩阵行标为1至《的子矩阵行中的"行 的各个变量节点。至Ta周期动作结束,完成了第二迭代步骤,对于Hi矩阵中的所有变量节点上的 校验信息进行了更新,并且更新了用于后述检验信息求解的中间信息。 第三迭代步骤以CNU单元31为例,在本步骤的第一个运算周期中即1\内,其对H。矩阵的 行标为0子矩阵行的第一行内的所有变量节点的校验信息i o,进行运算并更新。具体地,译码器进行下述动作S3,如图3所示的控制器0在L运算周期开始后,即控制将H。矩阵的行号为0的子矩阵行中第一行的变量节点对应的存储器单元 10中的存储单元中的信息-2。/o"2 (/ = 1、 2…、x)和第二迭代步骤中求出的4^、S叫读出,将它们分别作为式(8)和式(9)中的变量Z(^,)和4^,、 ^a并行输入 至CNU单元31,然后,如图4所示,进行下述运算过程Sc3:与运算过程Scl、 Sc2类似地,将全部丄(^)至"^J的第一位与S。H,作为符号位单独计算,其余位被送入査找表单元301至30x,分别求出式(8)中的甲函数,所述全部丄(^)至丄(^J 与4A的位数均依照希望的量化程度设定。其后,由加法器311至31 (y-l)完成式(8)中的求和运算,由加法器31y和减法器321至32x分别完成式(8)中的 加法和"*_/的运箅,减法器321至32x分别输出式(10)所求的《(m = 0; 7 = 1、2、…、x);另一方面,上述全部A^)至i:(《。J的第一位与S叫,由异或单元341至34z和异或单元351至35x完成式(9)中的符号运算和n^/的运算,异或 单元351至35x分别输出式(9)所求的S叫(w = 0; y = l、2、…、x);并且,最 后将 与其对应的经査找表单元331至33x输出的各甲(4^)合并,作为式(10) 中的各^ (m = 0; 7 = 1、2、…、x)输出,上述各&分别为与之相对应的各&的第一位。在第一运算周期Ti结束时,由控制器单元O控制,将CNU单元31输出的数据 存入H。矩阵行标为0的子矩阵中第一行的变量节点对应的存储器单元10中的存储 单元,译码器完成动作S3。与上述第一迭代步骤和第二迭代步骤相同地,本迭代步骤中,译码器还要在第二 运算周期T2至第a运算周期Ta内,分别重复以上动作S3,其中CNU单元31要在 第二运算期T2至第a运算周期Ta内,分别重复上述运算过程Sc3,但由控制器单 元0控制,输入的信息应为H。矩阵中行标为0的子矩阵行中余下的"-l行的各个变 量节点的变量信息与矩阵中行标为0的子矩阵行中余下的"-l行中的用于校验信 息求解的中间信息,输出的信息应各自对应H。矩阵行标为0的子矩阵行中余下的 "-l行的各个变量节点。并且,T2周期与T3周期至T^周期与Ta周期均可在时间 上重合,如图6所示。另夕卜,与上述第一迭代步骤相同地,本迭代步骤中,CNU单元31与CNU单元 32至CNU单元3《在上述的^周期至Ta周期内进行相同的运算,其中,CNU单 元32至CNU单元3《的输入信息应为H。矩阵中行标为1至《的子矩阵行中"行的 各个变量节点的变量信息与Hi矩阵中行标为1至《的子矩阵行中"行的用于校验信 息求解的中间信息,输出的信息应各自对应H。矩阵行标为1至9的子矩阵行中的"行的各个变量节点。至Ta周期动作结束,对于H。矩阵中的各个校变量点上的校验信息进行了更新。至此,也完成了 H矩阵各个变量节点上的所有检验信息的第一次更新。另一方面,由于当第二迭代步骤中的Ta周期动作结束时,已经对与Hi矩阵中各个变量节点对应的存储器单元20的存储单元中的所有及w进行了更新,即式(11) 和式(12)的运算条件已经满足,因此,在本迭代步骤中,对H。矩阵进行校验节点 更新运算的同时,可以并行地对矩阵进行变量节点更新运算。以VNU单元41为例,具体地,译码器进行下述动作S4,如图3所示的控制器 单元0在1\周期开始后,控制将f^矩阵的列标为1的子矩阵列中第一列的校验节 点对应的存储器单元20中的存储单元中的信息-2^/^和第二迭代步骤中求出的(m=l、 2…、")读出,将它们分别作为式(11)和式(12)中的变量,如图5所示,并行输入至VNU单元41,然后,进行下述运算过程Svl:由加法器401 至40 (w-l)完成式(11)中&的累加运算,由加法器40w完成式(11)中&累 加之和与-2^/0"2的加法运算,算出Z(力),经判决单元420即输出译码结果;c",由 减法器411至41w完成式(12)的运算,输出"~)。为了便于时序的配合,在本实施例中,变量节点运算单元的运算周期与检验节点运算单元的运算周期相同。在上述第一运算周期1\结束时,由控制器单元0控制,将VNU单元41输出的 数据存入Hi矩阵列标为1的子矩阵列中第一列的校验节点对应的存储器单元20中 的存储单元中,译码器完成动作S4。与上述其它迭代步骤相同地,本迭代步骤中,译码器还要在第二运算周期丁2至 第a运算周期Ta内,分别重复以上动作S4,其中,VNU单元41还要在第二运算 周期T2至第a运算周期Ta内,分别重复以上动作Svl,但由控制器单元O控制,输 入的信息应为Hi矩阵中列标为1的子矩阵列中余下的fl-l列的各个校验节点的校验 信息,输出的信息应各自对应Hi矩阵列标为1的子矩阵列中余下的"-l列的各个校 验节点。并且,T2周期与T3周期至T^周期与Ta周期均可在时间上重合,如图6所 示。另外,与上述其它迭代步骤相同地,本迭代步骤中,VNU单元41与VNU单元 42至VNU单元4r在上述的Ti周期至Ta周期内进行相同的运算,其中,VNU单元 42至VNU单元4r的输入信息应为Hi矩阵中列标为3到6 (6为奇数)的子矩阵 列中"列的各个校验节点的校验信息,输出的信息应各自对应Hi矩阵列标为3至6的 子矩阵中的fl列的各个校验节点。在此处,当需运算列的列重小于",即输入的&的有效个数小于VNU的输入 端口个数,则将此外的无效输入端口的输入设为O,亦不影响运算输出结果,对于此 种情况,对后述的VNU运算均适用。至Ta周期动作结束,完成了第三迭代步骤,对于f^矩阵中的各个校验节点上的 变量信息进行了更新。第四迭代步骤由于当第三迭代步骤中的校验节点更新运算的Ta周期动作结束时,已经对与H。 矩阵中各个变量节点对应的存储器单元10的存储单元中的所有i^进行了更新,即 式(11)和式(12)的计算条件已经满足,并且,VNU单元的流水线机构使其有能 力开始新的运算。因此,在本迭代步骤中,进行对H。矩阵的变量节点更新运算。以VNU单元41为例,具体地,译码器进行下述动作S5,如图3所示的控制器 单元0在1\周期开始后,控制将H。矩阵的列号为0的子矩阵列中第一列的变量节 点对应的存储器单元10中的存储单元中的信息-2^/^和第三迭代步骤中求出的 (m = l、 2…、")读出,将它们分别作为式(11)和式(12)中的变量,如图 5所示,并行输入至VNU单元41,然后,进行运算过程Sv2,其动作特性与运算 过程Svl相同。在上述第一运算周期l结束时,由控制器单元O控制,将VNU单元41输出的 数据存入Hi矩阵列标为0的子矩阵列中第一列的变量节点对应的存储器单元10中 的存储单元中。与上述其它迭代步骤相同地,本迭代步骤中,译码器还要在第二运算周期Ts至 第a运算周期Ta内,分别重复以上动作S5,其中VNU单元41还要在第二运算周 期T2至第a运算周期Ta内,顺序重复以上动作Sv2,但由控制器单元0控制,输入 的信息应为H。矩阵列标为0的子矩阵列中余下的"-l列的各个校验节点的校验信 息,输出的信息应各自对应Hi矩阵列标为1的子矩阵列中余下的"-l列的各个校验 节点。并且,T2周期与Ts周期至T^周期与Ta周期均可在时间上重合,如图6所示。另外,与上述其它迭代步骤相同地,本迭代步骤中,VNU单元41与VNU单元 42至单元4r在上述的1\周期至Ta周期内进行相同的运算,其中,VNU单元42至 单元4r的输入信息应为H。矩阵中列标为2到"("为偶数)的子矩阵列中"列的各 个校验节点的校验信息,输出的信息应各自对应H。矩阵列标为2到"的子矩阵列的" 列的各个校验节点。至Ta周期动作结束,完成了第四迭代步骤,对于H。矩阵中的各个校验节点上的变量信息进行了更新。从第一迭代步骤开始至此,完成了第一个迭代周期。 其它迭代步骤及迭代周期另一方面,由于当第三迭代步骤中的变量节点更新的Ta周期动作结束时,已经 对与Hi矩阵中各个校验节点对应的存储器单元20的存储单元中的所有丄(^》进行了更新,即式(1)和式(2)的运箅条件已经满足,因此,可以开始对Hi矩阵进行 CNU运算,具体地,对J^矩阵进行水平过程的a步运算,在此也即开始了第二迭 代周期。并且,由上可知,第一迭代周期与第二迭代周期在时间上也是有重合的。第二迭代周期中的各迭代步骤仍参照第一迭代周期中的各迭代步骤,但译码器的 具体操作对象将对应已完成的变量节点更新运算或校验节点更新运算的1^矩阵或 H。矩阵,具体地,在第二迭代周期中第一迭代步骤,译码器的动作依照第一运算 周期中的动作Sl ,各CNU单元的运算过程Scl不变,只是对于各CNU单元的输 入输出信息,由控制器单元O控制,输入信息应为Hi矩阵中各子矩阵行的fl行的各 变量节点的变量信息,输出的信息应各自对应Hi矩阵中各子矩阵行的"行的各个变 量节点;第二迭代步骤,译码器的动作依照第一运算周期中的动作S2,各CNU单 元的运算过程Sc2不变,只是对于各CNU单元的输入输出信息,由控制器O控制, 输入信息应为H。矩阵中各子矩阵行的fl行的各变量节点的变量信息与^矩阵中各子 矩阵行中"行的用于校验信息求解的中间信息,输出的信息应各自对应H。矩阵中各 子矩阵行的"行的各个变量节点;第三迭代步骤,译码器的动作依照第一运算周期中 的动作S3,各CNU单元的运算过程Sc3不变,只是对于各CNU单元的输入输出 信息,由控制器单元O控制,输入信息应为Ht矩阵中各子矩阵行的fl行的各变量节 点的变量信息与H。矩阵中各子矩阵行中fl行的用于校验信息求解的中间信息,输出 的信息应各自对应H,矩阵中各子矩阵行的fl行的各个变量节点;而对于并行进行的 变量节点更新运算,译码器的动作依照第一运算周期中的动作S4,各VNU单元的 运算过程Svl不变,只是对于各VNU单元的输入输出信息,由控制器单元O控制, 输入信息应为H。矩阵中列标为0到a (fl为偶数)的子矩阵列中"列的各个校验节 点的校验信息,输出的信息应各自对应H。矩阵列标为0到a的子矩阵列的"列的各 个校验节点;第四迭代步骤,译码器的动作依照第一运算周期中的动作S5,各VNU 单元的运算过程Sv2不变,只是对于各VNU单元的输入输出信息,由控制器0控 制,输入信息应为Hi矩阵中列标为1到6 (6为奇数)的子矩阵列中"列的各个校 验节点的校验信息,输出的信息应各自对应Hi矩阵列标为1到6的子矩阵列的"列的各个校验节点。其它的迭代周期均如上述的第一及第二迭代周期所述,交替对H。矩阵和Hi矩 阵中的校验节点和变量节点的变量信息和校验信息进行运算更新,其中译码器的更新 对象,参照图6的第n迭代周期及第n+l迭代周期的迭代步骤示意图及图7的迭代 顺序示意图。以上的迭代运算,由控制器单元O控制,在第m迭代周期的第四迭代步骤中的 Ta周期动作结束时停止,其中m为预先设置的最大迭代次数。并且在该第m迭代周期的第三、第四迭代周期中,控制单元O将各个VNU单 元"至4r中的判决单元420对应加法器单元40w算出的"力)而输出的判决结果^读出,按照原H矩阵的列顺序排列并输出,完成一组LDPC码字的译码。上述译码器译码步骤的流程图如图8所示。 实施例2:在实施例1所述的译码器的CNU单元结构的基础上,加入了计算Wx;c-O的单 元。具体地,在保持实施例2的CNU单元结构不变的情况下,加入了 s个异或单元, 如原CNU的实施例2中的z个异或单元的排列结构而排列,目的在于对输入CNU 的x+l个一位信息进行异或,并输出一位的异或结果。根据实施例2对实施例1的CNU单元结构的修改,需对译码器的控制器单元0 的控制进行一定调整,即在保持译码器译码步骤的实施例?的时序不变的情况下,在 后一个迭代周期的CNU运算的同时,对前一个迭代周期求出的&,进行//>^ = 0计算,若该等式成立,则由控制器单元0发出指令停止当前迭代,输出前一个迭代周 期的x",作为译码结果。具体地,在前一个迭代周期中,由控制器单元O控制,将VNU在第三、第四迭 代步骤中输出的、分别存入存储器单元10、 20中与x"所在列对应的存储单元中; 在后一个迭代周期的第一个迭代周期中,在进行H。矩阵或Hi矩阵校验节点更新运 算的同时,利用上述的本实施例3的CNU结构中增加的异或单元,对存储于存储器 单元10或存储器单元20中的需进行校验节点更新运算的H。矩阵或Hi矩阵的一行 的变量节点对应的x"进行异或计算,并在运算周期T结束时,由控制器单元O对异或计算的结果进行寄存;在第二迭代周期中,对与上述的进行校验节点更新处理的 H。矩阵或Ht矩阵的一行对应的&矩阵或H。矩阵的该行,进行CNU运算的同时, 对存储于存储器单元20或单元10中的该行的变量节点对应的jc ,和由控制器单元 0寄存的异或计算的结果,进行异或计算,完成原H矩阵中该行的所有变量节点对应的&的异或计算。如上所述,通过上述异或计算,从后一迭代周期的第二迭代步骤 中的l周期到Ta周期,即完成了//" = 0的计算,若所有行的异或结果均为0,则说明等式成立,符合迭代停止条件。从而,由控制器单元0控制CNU单元与VNU 单元的所有迭代运算停止,并按原H矩阵的列顺序取出存储器单元20和单元10的 x ,作为译码结果输出。上述译码器译码步骤的流程图如图9所示。实施例3:此实施例描述了矩阵分裂的另一种方式以及相应的译码步骤。图10为对LDPC译码所用的奇偶校验矩阵,即H矩阵分裂为三个新矩阵的分 裂方法。具体的分割方法为,将H矩阵中列标为0的子矩阵列(4。4…4。)t抽出 作为H。矩阵的第一个子矩阵列,将H矩阵中列标为1的子矩阵列(J^ 4, A,)t抽 出作为Hi矩阵的第一个子矩阵列,将H矩阵中列标为2的子矩阵列(42 4,…《2)T 抽出作为H2矩阵的第一个子矩阵列;按照相同方法,顺序地将H矩阵中的子矩阵列 抽出交替地放入H。矩阵、Hi矩阵及H2矩阵,上述子矩阵列依照H矩阵中的原有顺 序,分别在新矩阵H。、 Hi和H2中排列。由此,对完成分裂后的H。矩阵、^矩阵 和H2矩阵而言,它们各自的行数保持不变与原H矩阵相同,而列数各为原H矩阵 的1/3左右,其各自的具体列数如图IO所示,其中H。的列数是4,其中A的列数 是3,其中H2的列数是3。根据本实施例3中的矩阵分裂方法,对译码器中的CNU的个数为4, VNU的 个数为4,分别对应H。矩阵、H,矩阵和H2矩阵的子矩阵行的行数和H。矩阵、& 矩阵和H2矩阵的子矩阵列的列数最大值。此外,CNU单元的结构中,具体运算单元 的个数,可参照实施例1中的相应部分设置;VNU单元的结构中,具体运算单元的 个数,可参照实施例1中的相应部分设置进行设置。此外,上述的译码器的译码步骤,以矩阵的分裂方法为依据,可参照实施例1 中译码器的译码步骤实施, 一个迭代周期共有六个迭代步骤,迭代步骤的更新对象如 图11所示。译码器及其译码步骤的设计方案是本领域内普通技术人员依据上述说明 很容易想到的,不再赘述。
权利要求
1一种基于奇偶检验矩阵的LDPC码的译码方法,其所应用的奇偶校验矩阵被划分为p×q个大小为a×a的子块,每个子块都用循环行列式或0矩阵填充,其特征在于首先,将所述奇偶校验矩阵进行分裂,得到多个新矩阵;其次,对所述多个新矩阵进行译码,即基于分裂后的单个新矩阵配置校验节点更新单元CNU和变量节点更新单元VNU,并安排校验节点更新运算和变量节点更新运算,使其分别对各个新矩阵进行中间信息的运算后,更新原来整个的奇偶校验矩阵的校验节点信息和变量节点信息,并重复以上运算步骤进行迭代,直至译码成功或达最大迭代次数时结束。
2. 根据权利要求1所述的一种基于奇偶检验矩阵的LDPC码的译码方法,其特 征在于所述基于矩阵分裂后的多个新矩阵进行的译码,为迭代译码,分为以下步骤 步骤1:分别地、顺序地对各个新矩阵的用于更新校验信息的中间信息进行更新, 所述校验信息为与各个新矩阵的各检验节点相关的变量节点上的信息,所述各行中的变量节点为各个新矩阵中的各行中数值为"1"的位置;步骤2:根据所述的各个新矩阵更新后的全部中间信息,顺序对各个新矩阵的校验信息进行更新;步骤3:根据各个新矩阵更新后的校验信息,顺序对各个新矩阵中的变量信息进 行更新,所述变量信息为与各个新矩阵的各变量节点相关的校验节点上的信息,所述 各行中的校验节点为各个新矩阵中的各列中数值为"1"的位置;步骤4:重复所述步骤1至步骤3,进行迭代,直到译码成功或满足迭代停止条件。
3. 根据权利要求1所述的一种基于奇偶检验矩阵的LDPC码的译码方法,其特 征在于所述基于矩阵分裂后的多个新矩阵进行的译码,为迭代译码,具有以下步骤 步骤1 分别地、顺序地对各个新矩阵的用于更新校验信息的中间信息进行更新,所述校验信息为与各个亲斤矩阵的各检验节点相关的变量节点上的信息,所述各行中的变量节点为各个新矩阵中的各行中数值为"1"的位置;步骤2:根据所述的各个新矩阵更新后的全部中间信息,顺序对各个新矩阵的校 验信息进行更新;步骤3:根据每个新矩阵更新后的校验信息,在步骤2顺序对其它新矩阵的校验 信息进行更新的同时,对已更新了校验信息的新矩阵中的变量信息进行更新,所述变 量信息为与各个新矩阵的各变量节点相关的校验节点上的信息,所述各行中的校验节 点为各个新矩阵中的各列中数值为"1"的位置;步骤4:重复所述步骤1至步骤3,进行迭代,直到译码成功或满足迭代停止条件。
4. 根据权利要求1或2、 3所述的一种基于奇偶检验矩阵的LDPC码的译码方 法,其特征在于,所述的矩阵分裂为将奇偶校验矩阵的奇数列块和偶数列块分块,并 分别组成两个新矩阵的奇偶分裂方法,所述列块为具有相同列位置的子块的集合。
5. 根据权利要求1或2、 3所述的一种基于奇偶检验矩阵的LDPC码的译码方法,其特征在于,所述的矩阵分裂为将校验矩阵的列块分别按0、 1、 2顺序循环编 号,并将编号为0、 1、 2的列块分别组成三个新矩阵的分裂方法,所述列块为具有 相同列位置的子块的集合。
6. —种应用权利要求1所述基于奇偶检验矩阵的LDPC码的译码方法的译码器, 主要包括校验节点更新单元CNU,其对所述各个新矩阵中各行的校验信息以及用 于所述校验信息计算的中间信息进行计箅;变量节点更新单元VNU,其对所述各个新矩阵中各列的变量信息进行计算;存储器,其对应所述各个新矩阵的所有校验节点 和变量节点,存储校验信息、变量信息、译码器输入信息和译码结果;控制器,其对所述校验节点更新单元和变量节点更新单元的运算进行定序,并对它们与存储器间的数据交换进行控制;其特征在于所述校验节点更新单元的个数被配置为等于所述各个新矩阵的行块个数q;所述变量节点更新单元的个数被配置为等于各个新矩阵的列块个数的最大值r; 所述存储器还存储用于译码的中间信息;所述控制器被配置为,控制q个校验节点更新单元,对应所述各个新矩阵中q 个子矩阵行中的a行,在a次校验信息和用于校验信息计算的中间信息的计算中进 行复用;控制r个变量节点更新单元,对应所述各个新矩阵中r个子矩阵行中的a列, 在a次变量信息的计算中进行复用。
7. 根据权利要求6所述的一种基于奇偶检验矩阵的LDPC码的译码器,其特征在于,所述q个校验节点更新单元包括第一查找表单元,其采用査找表方式,将所述各个新矩阵的各行的变量节点的变 量信息转换为概率值,其个数由所属各个新矩阵的各行的变量节点的个数决定-,加法器单元,其对所述第一査找表单元输出的概率值求和;减法器单元;其个数与所述第一査找表单元个数相同,均以所述加法器单元输出 的所述概率值的和为被减数,分别减去所述第一查找表单元输出的所述概率值;第二査找表单元,其个数与所述第一查找表单元及所述减法器单元的个数相同, 其输入与所述减法器单元的输出相连,以与第一查找表相同的方式,将其输入转换为 概率值;第一符号运算单元,其对所述各个新矩阵各行的变量节点的变量信息的符号为进 行符号运算;第二符号运算单元,其个数与所述减法器单元的个数相同,其从所述第一符号运 箅单元输出的符号运算的结果中,分别剔除掉所述各个新矩阵各行的变量节点的变量信息的符号。
8. 根据权利要求6或7所述的一种基于奇偶检验矩阵的LDPC码的译码器, 其特征在于,所述译码器中的校验节点更新单元还具有验算单元,其对当前译码结 果是否正确进行验算;所述控制器,艮据所述验算单元的结果,控制译码器继续进行译 码计算或者停止译码,输出所述译码结果。
9. 根据权利要求6所述的一种基于奇偶检验矩阵的LDPC码的译码器,其特征 在于,所述r个变量节点更新单元包括第一加法器单元,其对所述各个新矩阵的各列的校验节点的校验信息求和; 减法器单元,其以所述第一加法器单元输出的和为被减数,分别减去所述各个新 矩阵的各列的校验节点的所述各个校验信息;第二加法器单元,其将所述第一加法器单元的和与所述译码器输入信息进行加法;判决单元,其对所述第二加法器单元的输出进行判决,得到译码结果。
10. 根据权利要求6或7、 9所述的一种基于奇偶检验矩阵的LDPC码的译码 器,其特征在于,所述q个校验节点更新单元或所述r个变量节点更新单元中被配置 插入了流水线,利用所述流水线,可以在同一时刻对所述q个校验节点更新单元或所 述r个变量节点更新单元进行流水线操作,各自进行相应的运算。
全文摘要
本发明提供了一种基于对奇偶校验矩阵进行矩阵分裂的LDPC译码方法和译码器。首先,将矩阵进行分裂;基于分裂后的单个新矩阵配置校验节点更新单元(CNU)和变量节点更新单元(VNU),并安排校验节点更新运算和变量节点更新运算,使其分别对各个新矩阵进行中间信息的运算后,更新原来整个的奇偶校验矩阵的校验节点信息和变量节点信息,并重复以上运算步骤进行迭代,直至译码成功或达最大迭代次数时结束。应用本发明提供的译码方法和译码器进行LDPC码译码时,与进行矩阵分裂前的译码方案相比,在按照奇偶方式分裂时,在相同的译码速率下,硬件资源规模减小接近1/3;在相同的硬件资源下,译码速率提高接近1/3。
文档编号H04L1/00GK101232288SQ20081000094
公开日2008年7月30日 申请日期2008年1月9日 优先权日2007年1月10日
发明者展 张, 张晓林, 苏琳琳, 岭 赵 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1