CN105490684B - 一种有限长ldpc码的打孔算法 - Google Patents
一种有限长ldpc码的打孔算法 Download PDFInfo
- Publication number
- CN105490684B CN105490684B CN201510856740.XA CN201510856740A CN105490684B CN 105490684 B CN105490684 B CN 105490684B CN 201510856740 A CN201510856740 A CN 201510856740A CN 105490684 B CN105490684 B CN 105490684B
- Authority
- CN
- China
- Prior art keywords
- column
- row
- deleted
- length
- node
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1131—Scheduling of bit node or check node processing
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/63—Joint error correction and other techniques
- H03M13/635—Error control coding in combination with rate matching
- H03M13/6362—Error control coding in combination with rate matching by puncturing
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明中的有限长LDPC码的打孔方法,该打孔方法将母码中所有具有高译码恢复可靠性的节点提取出来,然后重新构造一个均匀分配有效校验信息的待删除序列,再把高译码恢复可靠性的节点按照一定规则插入到待删除序列中,既克服了传统分组排序算法中贪婪选择的缺点,又避免了过度均匀分配造成的低码率译码性能损失,使得整体译码有所提高,并降低了整体译码的错误平层。
Description
技术领域
本发明涉及通信技术领域,特别是涉及一种有限长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码的打孔算法将母码中所有具有高译码恢复可靠性的节点提取出来,然后重新构造一个均匀分配有效校验信息的待删除序列,再把高译码恢复可靠性的节点按照一定规则插入到待删除序列中,既克服了传统分组排序算法中贪婪选择的缺点,又避免了过度均匀分配造成的低码率译码性能损失,使得整体译码有所提高,并降低了整体译码的错误平层。
上述仅为本发明的一个具体实施例,但本发明的设计构思并不局限于此,凡利用此构思对本发明进行非实质性的改动,均应属于侵犯本发明保护范围的行为。
Claims (3)
1.一种有限长LDPC码的打孔方法,其特征在于:包括以下步骤:
1)依据目标码率R′,计算需要删除的校验节点个数,即对应的打孔变量节点个数其中N为母码的长度,K为信息位长度;
2)选择出所有母码中具有高译码恢复可靠性的变量节点,存入集合PRIOR;
3)对于母码,构造均匀分配有效校验信息后的变量节点集合NEW;所述步骤3)按如下步骤进行:
3a)以校验矩阵每列为底展开成树图,计算出每个树图中每个分枝所包含的未删除的变量节点个数,然后找到每个树图的最小分枝所包含的变量节点个数;
3b)将每一行中所包含的1所在的列在3a)中得到的值求和,选出求和后值最小的行;
3c)在3b)中所得的行中1所在的列,寻找最小有效列重的列;
3d)如果3c)所得到的列不止一个,将每一列中1的位置所对应的行在3b)中所得到的值求和,选出求和后值最小的列;
4)选择集合PRIOR与集合NEW的交集,并随机选择一个打孔变量节点;
5)检测所选取的打孔变量节点是否会形成死亡校验节点;
6)重复操作步骤3)~5),直至符合删除比特的个数Np,达到目标码率。
2.根据权利要求1所述的有限长LDPC码的打孔方法,其特征在于:所述步骤2)按如下步骤进行:
2a)校验矩阵H中每行中1的个数作为该行的行重,如果某一行中1所在的列被删除,则该行剩余1的个数作为该行的有效行重;选出有效行重最小的行;
2b)如果2a)中所选择的行不止一个,则选择这些行中,以每行所对应的校验节点为底展开的树图中,没有被删除的变量节点数最少的那一行;
2c)对于2b)中所选择出的行,选择其中1的位置所对应的那一列中包含1的个数最少的那一列,将其存入集合PRIOR中,同时将2b)中所选择出的行删除;
2d)重复2a)、2b)、2c),直至所有满足要求的列都被存入集合PRIOR中。
3.根据权利要求1所述的有限长LDPC码的打孔方法,其特征在于:所述步骤4)按如下步骤进行:
4a)把集合PRIOR中具有最大有效列重的列选出;
4b)在4a)所选出的列中,选择具有最小列重的列;
4c)如果4b)所选出的列,在3d)所选出的列集合中,则选择此列,否则继续从集合PRIOR中按照4a)、4b)规则选择满足要求的列,如果集合PRIOR中所有的列无法满足,则从随机3d)中随机选择一列删除。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510856740.XA CN105490684B (zh) | 2015-11-30 | 2015-11-30 | 一种有限长ldpc码的打孔算法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510856740.XA CN105490684B (zh) | 2015-11-30 | 2015-11-30 | 一种有限长ldpc码的打孔算法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105490684A CN105490684A (zh) | 2016-04-13 |
CN105490684B true CN105490684B (zh) | 2019-06-04 |
Family
ID=55677451
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510856740.XA Active CN105490684B (zh) | 2015-11-30 | 2015-11-30 | 一种有限长ldpc码的打孔算法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105490684B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106603084B (zh) * | 2016-12-14 | 2019-07-16 | 中国电子科技集团公司第二十研究所 | 一种用于打孔ldpc硬判决译码的预处理方法 |
CN111384979A (zh) * | 2018-12-29 | 2020-07-07 | 中兴通讯股份有限公司 | 一种数据处理方法及装置 |
CN113395132A (zh) * | 2020-03-13 | 2021-09-14 | 华为技术有限公司 | Ldpc码的速率匹配的方法和通信装置 |
CN114726382B (zh) * | 2022-05-16 | 2022-08-09 | 北京得瑞领新科技有限公司 | Ecc帧长匹配方法、装置、存储介质及固态硬盘 |
CN117675093A (zh) * | 2022-08-25 | 2024-03-08 | 华为技术有限公司 | 速率匹配的方法和通信装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1699139A2 (en) * | 2005-03-04 | 2006-09-06 | Samsung Electronics Co., Ltd. | Method for puncturing low density parity check (LDPC) code |
CN103944586A (zh) * | 2014-04-10 | 2014-07-23 | 重庆邮电大学 | 一种码率兼容qc-ldpc码的构造方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20070080392A (ko) * | 2006-02-07 | 2007-08-10 | 삼성전자주식회사 | 저밀도 패러티 검사 부호의 천공 방법 |
-
2015
- 2015-11-30 CN CN201510856740.XA patent/CN105490684B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1699139A2 (en) * | 2005-03-04 | 2006-09-06 | Samsung Electronics Co., Ltd. | Method for puncturing low density parity check (LDPC) code |
CN103944586A (zh) * | 2014-04-10 | 2014-07-23 | 重庆邮电大学 | 一种码率兼容qc-ldpc码的构造方法 |
Non-Patent Citations (4)
Title |
---|
A Rate-Compatible Puncturing Scheme for Finite-Length LDPC Codes;Reza Asvadi and Amir H.Banihashemi;《IEEE COMMUNICATIONS LETTERS》;20130131;正文第III章 |
Efficient Puncturing Method for Rate-Compatible Low-Density Parity-Check Codes;Hyo Yol Park等;《IEEE TRANSACTIONS ON WIRELESS COMMUNICATIONS》;20071130;全文 |
Rate-Compatible Punctured Low-Density Parity-Check Codes With Short Block Lengths;Jeongseok Ha等;《IEEE TRANSACTIONS ON INFORMATION THEORY》;20060228;正文第III章 |
多元LDPC码的速率兼容技术研究;周林等;《西安电子科技大学学报(自然科学版)》;20110228;全文 |
Also Published As
Publication number | Publication date |
---|---|
CN105490684A (zh) | 2016-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105490684B (zh) | 一种有限长ldpc码的打孔算法 | |
CN107370560A (zh) | 一种极化码的编码和速率匹配方法、装置及设备 | |
CN102315911B (zh) | 一种低密度奇偶校验码编码方法及装置 | |
CN102412847A (zh) | 用联合节点处理来解码低密度奇偶校验码的方法和设备 | |
CN107565984A (zh) | 一种预编码为非规则码的Raptor码优化编码方法 | |
CN108270510A (zh) | 基于ldpc码的通信方法和通信设备 | |
CN106998208A (zh) | 一种可变长Polar码的码字构造方法 | |
CN106464421B (zh) | 一种数据发送方法和装置 | |
CN109067408A (zh) | 一种原模图ldpc码的设计方法 | |
CN110247730A (zh) | 基于极化码的盲检测方法及设备 | |
CN105356890B (zh) | 一种基于重要性采样技术的ldpc码打孔方法 | |
KR20130012550A (ko) | Ldpc 부호화 및 복호화 방법 및 그 방법을 사용하는 장치 | |
CN102891690B (zh) | 一种咬尾卷积码译码方法 | |
CN108206722B (zh) | 高码率数据发送方法和装置 | |
CN110912565B (zh) | 一种基于奇偶校验的SC-Flip译码方法 | |
CN105790774A (zh) | 一种改进型ldpc译码方法及装置 | |
Sari | Effects of puncturing patterns on punctured convolutional codes | |
CN108880748A (zh) | 基于拉丁方阵的无速率Spinal码的编译码方法 | |
KR102184858B1 (ko) | 데이터 전송 방법, 전송 디바이스, 및 수신 디바이스 | |
CN110990188B (zh) | 一种基于Hadamard矩阵的部分重复码的构造方法 | |
WO2017214851A1 (zh) | 一种信号传输的方法、发射端及接收端 | |
CN114285416A (zh) | 一种非规则qc-ldpc码的低错误平层构造方法 | |
CN107565977B (zh) | 一种基于同构理论的规则准循环ldpc码构造方法 | |
Agarwal et al. | Bounds on the rate of linear locally repairable codes over small alphabets | |
US20090228758A1 (en) | Apparatus and method for generating low density parity check code |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |