首页> 中国专利> 一种有限长LDPC码的打孔算法

一种有限长LDPC码的打孔算法

摘要

本发明中的有限长LDPC码的打孔算法,该打孔算法将母码中所有具有高译码恢复可靠性的节点提取出来,然后重新构造一个均匀分配有效校验信息的待删除序列,再把高译码恢复可靠性的节点按照一定规则插入到待删除序列中,既克服了传统分组排序算法中贪婪选择的缺点,又避免了过度均匀分配造成的低码率译码性能损失,使得整体译码有所提高,并降低了整体译码的错误平层。

著录项

  • 公开/公告号CN105490684A

    专利类型发明专利

  • 公开/公告日2016-04-13

    原文格式PDF

  • 申请/专利权人 华侨大学;

    申请/专利号CN201510856740.X

  • 申请日2015-11-30

  • 分类号H03M13/11;

  • 代理机构厦门市首创君合专利事务所有限公司;

  • 代理人张松亭

  • 地址 362000 福建省泉州市丰泽区城东

  • 入库时间 2023-12-18 15:33:29

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-06-04

    授权

    授权

  • 2016-05-11

    实质审查的生效 IPC(主分类):H03M13/11 申请日:20151130

    实质审查的生效

  • 2016-04-13

    公开

    公开

说明书

技术领域

本发明涉及通信技术领域,特别是涉及一种有限长LDPC码的打孔算法。

背景技术

对于时变的无线衰落信道,采用固定码率的信道编码性能不佳。可通过自适应编码调 制技术来适应信道的变化,从而提高传输速率,逼近Shannon容量限。即在信道状态较差 时,用低码率码字和低阶调制模式传输。信道状态变好时,采用高码率码字和高阶调制模 式传输。自适应编码调制技术中码率的灵活变换常通过速率兼容技术实现,其中打孔是速 率兼容技术的最重要一种。其原理为,给定一个低码率母码码字,然后通过删除码字中部 分校验位比特,从而来提高传输码字的码率。例如,一个给定码长为n比特的码字,传 输的信息比特数为k,则该码的码率为R=k/n,将其作为母码进行打孔操作,假设一 共删除了d个校验比特,则升高后的码率为R′=k/(n-d)。

当前国际代表性的打孔方法大都基于分组排序算法。分组排序算法的原理是先把 LDPC校验矩阵展开成树图形式,然后把所有的比特位按照树图的结构分成n组序列(分 别为1步可恢复节点,2步可恢复节点,...,k步可恢复节点,...),如图1所示,然 后对每一组内的元素通过优先顺序进行排序,最后依照所需删除的校验位比特的个数依次 删除,来获得所需要的高码率码字,删除的比特不参与传输,在接收端对删除的比特按位 置填充。

由于在通信系统接收端,已删除的比特位仍要参与校验方程,因此待删除比特的位置 是很重要的。如果误删了某个位置的重要节点,可能会对译码性能造成灾难性地破坏。采 用树图形式来寻找待删除节点的位置是一种很可靠的方法。但通常LDPC码的校验矩阵是 很大的,将其展开成树图形式会随着矩阵的长度指数级增长,其复杂度较高。如图1所 示,分组排序算法尽可能多地寻找1步可恢复节点,然后再尽可能多地寻找2步可恢复节 点,依次类推。这种恢复步长较短的节点,会将大量有效的校验信息集中自己身上。在接 收端译码恢复时,这些节点由于吸聚了较多的校验信息,译码恢复正确的概率就很大。同 时,大量的有效校验信息被集中在这些节点附近,那么剩余的较长恢复步长的节点周围的 有效校验信息就很少。这就造成了译码恢复时,较长恢复步长的节点译码错误的概率较大。 因此,分组排序算法在选择待删除节点时,形成了一种贪婪选择的模式,即局部最优化, 而整体的译码性能仍有改善空间。

发明内容

本发明的目的在于克服上述分组排序算法中的贪婪选择缺点,提供一种对于有限长 LDPC码的非贪婪打孔方法,以改善系统误码率性能,并获得了较低的错误平层。

一种有限长LDPC码的打孔算法,包括以下步骤:

1)依据目标码率R′,计算需要删除的校验比特个数其中 N为母码的长度,K为信息位长度;

2)选择出所有母码中具有高译码恢复可靠性的节点,存入集合PRIOR;

3)对于母码,构造均匀分配有效校验信息后的节点集合NEW;

4)选择集合PRIOR与集合NEW的交集,并随机选择一个节点;

5)检测所选取的打孔节点是否会形成死亡校验节点;

6)重复操作步骤3)~4),直至符合删除比特的个数Np,达到目标码率。

在本发明的较佳实施例中,所述步骤2)按如下步骤进行:

2a)计算出校验矩阵H中每行中剩余1的个数,作为该行的有效行重。选出有 效行重最小的行;

2b)如果2a)中所选择的行不止一个,则选择这些行中,以每行所对应的校验节 点为底展开的树图中,没有被删除的节点数最少的那一行;

2c)对于2b)中所选择出的行,选择其中1的位置所对应的那一列中包含1的 个数最少的那一列。将其存入集合PRIOR中。同时将2b)中所选择出的行删除。

在本发明的较佳实施例中,所述步骤3)中按如下步骤进行:

3a)以校验矩阵每列为底展开成树图,计算出每个树图中每个分枝所包含的未删 除的节点个数,然后找到每个树图的最小分枝所包含的节点个数;

3b)将每一行中所包含的1所在的列在3a)中得到的值求和。选出求和后值最 小的行;

3c)在3b)中所得的行中1所在的列,寻找最小有效列重的列;

如果3c)所得到的列不止一个,将每一列中1的位置所对应的行在3b)中所得到 的值求和,选出求和后值最小的列。

在本发明的较佳实施例中,所述步骤4)中按如下步骤进行:

4a)把集合PRIOR中具有最大有效列重的列选出;

4b)在4a)所选出的列中,选择具有最小列重的列;

4c)如果4b)所选出的列,在3d)所选出的列集合中,则选择此列。否则继续 从集合PRIOR中按照4a)、4b)规则选择满足要求的列,如果集合PRIOR中 所有的列无法满足,则从随机3d)中随机选择一列删除。

本发明中的有限长LDPC码的打孔算法将母码中所有具有高译码恢复可靠性的节点提取 出来,然后重新构造一个均匀分配有效校验信息的待删除序列,再把高译码恢复可靠性的 节点按照一定规则插入到待删除序列中,既克服了传统分组排序算法中贪婪选择的缺点, 又避免了过度均匀分配造成的低码率译码性能损失,使得整体译码有所提高,并降低了整 体译码的错误平层。

附图说明

图1是分组排序算法分组示意图;

图2是本发明对规则LDPC码打孔方案与传统方法系统误码率仿真结果的对比示意 图;

图3是本发明对非规则LDPC码打孔方案与传统方法系统误码率仿真结果的对比示 意图。

具体实施方式

下面结合附图对本发明做进一步的说明,

对于一个码长为N,信息位长为K的母码,其校验矩阵为

Hm×n,(m=N-K,n=N),本发明的具体实现步骤如下:

步骤1,依据目标码率,计算需要删除的信息比特个数。

设R′为打孔后的目标码率,Np为需要删除的校验比特总个数,根据码率定义易得:

R′=K/(N-Np)(1)

根据(1)式,计算需要删除的信息比特总个数为:

步骤2,选择出所有母码中具有高译码恢复可靠性的节点,存入集合PRIOR。

2.1:校验矩阵中所有的行Ci,i∈{1,…,m},每行中1的个数,作为该行的行重, 记为dc。如果某一行中1所在的列被删除,则该行剩余的1的个数作为该行的有效 行重,记为D(c)。选出有效行重最小的行。

2.2:对于每一列Vj,j∈{1,…,n},以其为底展开的树图中所包含的未被删除的节 点的个数,记为S(vj)。对于行Ci,以其为底展开的树图中所包含的未被删除的节点的个 数,记为W(c)。即行Ci中包含1的位置所对应列Vj的S(vj)的和,W(c)=∑S(v)。如果 2.1中所选择的行不止一个,则选择这些行中,W(c)值最小的那一行。

2.3:校验矩阵每一列中包含1的个数,作为该列的列重,记为dv。如果某一列中 1所在的行被删除,则该列剩余的1的个数作为该列的有效列重,记为D(v),对于2.2 中所选择出的行,选择其中1的位置所对应的列中D(v)最小的那一列,将其存入集合 PRIOR中,并删除2.2中所选择出的行。

2.4:重复2.1、2.2、2.3的步骤,选择出所有的满足要求的列,假设总共有N个。

步骤3,对于母码,构造均匀分配有效校验信息后的节点集合。

3.1:对于每一列Vj,j∈{1,…,n},以其为底展开的树图的每个分枝中所包含的 未被删除的节点个数最少的分枝所包含的个数,记为Sm(vj)。

3.2:对于行Ci,包含1的位置所对应列Vj的Sm(vj)的和,记为Wm(c)。选择出 这些行中Wm(c)最小的行。

3.3:在3.2中所得的行中1所在的列,寻找有效列重D(v)最小的列。

3.4:在3.3所选出的列中,计算每一列1的位置所对应的行的Wm(c)值的和,记 为SUMm(v)。选出SUMm(v)最小的那一列。

步骤4,从集合PRIOR中选择出M个节点插入到步骤3所得的集合中,并删除最 优选择节点。

4.1:把集合PRIOR复制到新集合PRIOR′中;

4.2:从集合PRIOR′的所有列中,选出具有最大有效列重D(v)的列;

4.3:从4.2选出的列中,选出具有最小列重dv的列;

4.4:如果4.3所选出的列在3.4所选出的列集合中,则选择此列。如果不在,就从 集合PRIOR′删除该列,继续循环4.2、4.3、4.4,直到选中一列,或者集合PRIOR′变成 了空集合。如果集合PRIOR′变成空集合,则从3.4所选出的列集合中随机选择一列。如 果已经从集合PRIOR中选择出了M个节点,则停止从集合PRIOR′中选点。

4.5:如果4.4中选中的一列的有效列重D(v)小于列重dv,并且3.2所选中的行的 有效行重D(c)小于行重dc,则需要检查选中的该列,能否在最大迭代次数内被周围的 其他行列译码恢复,即在树图上进行最大迭代次数的迭代,检测其能否接受到正确的译 码信息。如果检测成功,则删除此列。如果失败,则重复步骤3和步骤4。

步骤5,检测所选取的打孔节点是否会形成死亡校验节点。

步骤6,重复操作步骤3和步骤4,直至符合删除比特的个数Np,达到目标码率。

6.1:从所有列Vj,j∈{1,…,n}中删除4.5所删除的那一列。从集合PRIOR中删除 4.5中所选中的列;

6.2:更新该删除列的Sm(v)值,等于3.2所选择行中,除去该删除列后所有列的Sm(v) 值的和(初始化时,所有的Sm(v)均为1)。

6.3:将Np的值减一。如果Np为零,则算法结束。否则重复步骤3、步骤4、步骤5。

本发明的效果可以通过以下仿真进一步说明:

本发明仿真选用码长1008比特、码率0.5的规则LDPC码和非规则LDPC码,在 AWGN信道下进行系统误码率性能仿真,选用了0.5、0.6、0.7、0.8和0.9等多种码率, 仿真的结果如图2和图3所示。

由图2可见,本发明用在非规则LDPC码,系统误码率为10-6、码率为0.7、0.8时, 与传统打孔算法相比,该通信系统获得了大概0.4dB的增益。

由图3可见,本发明在规则LDPC码,系统误码率为10-6时,系统误码率为10-6、 码率为0.7、0.8时,与传统打孔算法相比,该通信系统获得了大概0.2dB的增益。

综上所述,该有限长LDPC码的打孔算法将母码中所有具有高译码恢复可靠性的节点 提取出来,然后重新构造一个均匀分配有效校验信息的待删除序列,再把高译码恢复可靠 性的节点按照一定规则插入到待删除序列中,既克服了传统分组排序算法中贪婪选择的缺 点,又避免了过度均匀分配造成的低码率译码性能损失,使得整体译码有所提高,并降低 了整体译码的错误平层。

上述仅为本发明的一个具体实施例,但本发明的设计构思并不局限于此,凡利用此构 思对本发明进行非实质性的改动,均应属于侵犯本发明保护范围的行为。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号