CN111106837A - 一种ldpc译码方法、译码装置及存储介质 - Google Patents
一种ldpc译码方法、译码装置及存储介质 Download PDFInfo
- Publication number
- CN111106837A CN111106837A CN201811260746.0A CN201811260746A CN111106837A CN 111106837 A CN111106837 A CN 111106837A CN 201811260746 A CN201811260746 A CN 201811260746A CN 111106837 A CN111106837 A CN 111106837A
- Authority
- CN
- China
- Prior art keywords
- block
- soft bits
- zero
- zero element
- rows
- 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.)
- Granted
Links
Images
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/1108—Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
-
- 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/1128—Judging correct decoding and iterative stopping criteria other than syndrome check and upper limit for decoding iterations
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Abstract
本发明涉及通信技术领域,公开了一种LDPC译码方法、译码装置及存储介质,用于提升了LDPC译码过程中的读写速度,进而提升译码的吞吐率,从而满足NR配置下的吞吐率要求,所述方法包括:在LDPC译码过程中,针对软比特按照任一块行进行读操作时,优先读取该任一块行中的非零元素对应的软比特,该非零元素紧挨该任一块行之前的n个块行中的零元素;以及针对软比特按照任一块行进行写操作时,优先写入该任一块行中的非零元素对应的软比特,该非零元素紧挨该任一块行之后的n个块行中的非零元素;其中,所述软比特为输入软比特,或为输入软比特在译码过程中更新后得到的后验概率,块行为基于LDPC编码的基矩阵中的一行。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种LDPC译码方法、译码装置及存储介质。
背景技术
LDPC码(Low Density Parity Check Code,低密度奇偶校验码),是一类具有稀疏校验矩阵的线性分组码,不仅具有逼近Shannon限的良好性能,而且译码复杂度较低,结构灵活,是近年信道编码领域的研究热点。
现有的LDPC译码器的实现方案基本上都是基于早期通用架构修改而来,其LDPCIP核多为通用IP核,没有特别考虑NR(New Radio,无线接入)的需求,导致其在NR配置下吞吐率较低,所以,现有技术中,缺乏专门针对NR协议规范和矩阵结构的LDPC译码器。
发明内容
本发明实施例提供一种LDPC译码方法、译码装置及存储介质,用于提升LDPC译码过程中的读写速度,进而提升译码吞吐率,从而满足NR配置下的吞吐率要求。
第一方面,本发明实施例提供的一种低密度奇偶校验码LDPC的译码方法,包括:
在LDPC译码过程中,针对软比特按照任一块行进行读操作时,优先读取该任一块行中的非零元素对应的软比特,该非零元素紧挨该任一块行之前的n个块行中的零元素;
以及针对软比特按照任一块行进行写操作时,优先写入该任一块行中的非零元素对应的软比特,该非零元素紧挨该任一块行之后的n个块行中的非零元素;
其中,所述软比特为输入软比特,或为输入软比特在译码过程中更新后得到的后验概率,块行为基于LDPC编码的基矩阵中的一行,n为大于等于1、且小于等于所述基矩阵的行总数减1的整数。
可选的,所述优先读取该任一块行中的非零元素对应的软比特,该非零元素紧挨该任一块行之前的n个块行中的零元素,具体包括:
针对任一块行中的任一个非零元素,从紧挨所述任一块行之前的n个块行中与所述任一个非零元素同列的非零元素中,确定与所述任一个非零元素距离最近的目标非零元素,并确定所述目标非零元素与所述任一个非零元素之间的距离,按照确定的距离从大到小的顺序,对所述任一个非零元素对应的软比特进行读取优先级从高到低的排列,从而获得所述任一个非零元素对应的软比特的读取优先级,并按照所述读取优先级读取所述任一块行中的非零元素对应的软比特。
可选的,所述优先写入该任一块行中的非零元素对应的软比特,该非零元素紧挨该任一块行之后的n个块行中的非零元素,具体包括:
针对任一块行中任一个非零元素,从紧挨所述任一块行之后的n个块行中与所述任一个非零元素同列的非零元素中,确定与所述任一个非零元素距离最近的目标非零元素,并确定所述目标非零元素与所述任一个非零元素之间的距离,按照确定的距离从小到大的顺序,对所述任一个非零元素对应的软比特进行写入优先级从高到低的排列,从而获得所述任一个非零元素对应的软比特的写入优先级,并按照所述写入优先级对所述任一块行中非零元素对应的软比特进行写操作。
可选的,所述针对软比特按照任一块行进行读操作,以及针对软比特按照任一块行进行写操作,具体包括:
将按照任一块行以及读取优先级进行读取的软比特,按照所述基矩阵进行循环位移之后进行迭代计算处理,获得迭代计算结果,以及将迭代计算结果按照写入优先级对软比特按照任一块行更新。
可选的,所述将迭代计算结果按照写入优先级对软比特按照任一块行更新之后,所述方法还包括:
对更新后的软比特进行硬判以及校验矩阵的校验,若校验结果正确,则输出硬判结果,否则,按照下一块行对软比特进行迭代计算处理;
或者,
按照下一块行对软比特进行迭代计算处理,直到将软比特按照所述基矩阵的所有块行处理完,并对处理完的软比特进行硬判以及校验矩阵的校验,若校验结果正确,则输出硬判结果,否则,按照所述基矩阵中的所有块行对软比特进行下一轮迭代计算处理;
其中,若按照所述基矩阵中的块行对软比特进行预设次数的迭代计算处理后,校验结果仍错误,则输出译码错误的信息。
第二方面,本发明实施例提供的一种LDPC译码装置,包括:
存储器,用于存储指令;
处理器,用于读取所述存储器中的指令,执行下列过程:
在LDPC译码过程中,针对软比特按照任一块行进行读操作时,优先读取该任一块行中的非零元素对应的软比特,该非零元素紧挨该任一块行之前的n个块行中的零元素;
以及针对软比特按照任一块行进行写操作时,优先写入该任一块行中的非零元素对应的软比特,该非零元素紧挨该任一块行之后的n个块行中的非零元素;
其中,所述软比特为输入软比特,或为输入软比特在译码过程中更新后得到的后验概率,块行为基于LDPC编码的基矩阵中的一行,n为大于等于1、且小于等于所述基矩阵的行总数减1的整数。
可选的,所述处理器具体用于:
针对任一块行中的任一个非零元素,从紧挨所述任一块行之前的n个块行与所述任一个非零元素同列的非零元素中,确定与所述任一个非零元素距离最近的目标非零元素,并确定所述目标非零元素与所述任一个非零元素之间的距离,按照确定的距离从大到小的顺序,对所述任一个非零元素对应的软比特进行读取优先级从高到低的排列,从而获得所述任一个非零元素对应的软比特的读取优先级,并按照所述读取优先级读取所述任一块行中的非零元素对应的软比特。
可选的,所述处理器具体用于:
针对任一块行中任一个非零元素,从紧挨所述任一块行之后的n个块行中与所述任一个非零元素同列的非零元素中,确定与所述任一个非零元素距离最近的目标非零元素,并确定所述目标非零元素与所述任一个非零元素之间的距离,按照确定的距离从小到大的顺序,对所述任一个非零元素对应的软比特进行写入优先级从高到低的排列,从而获得所述任一个非零元素对应的软比特的写入优先级,并按照所述写入优先级对所述任一块行中非零元素对应的软比特进行写操作。
可选的,所述处理器还用于:
将按照任一块行以及读取优先级进行读取的软比特,按照所述基矩阵进行循环位移之后进行迭代计算处理,获得迭代计算结果,以及将迭代计算结果按照写入优先级对软比特按照任一块行更新。
可选的,所述处理器还用于:
对更新后的软比特进行硬判以及校验矩阵的校验,若校验结果正确,则输出硬判结果,否则,按照下一块行对软比特进行迭代计算处理;
或者,
按照下一块行对软比特进行迭代计算处理,直到将软比特按照所述基矩阵的所有块行处理完,并对处理完的软比特进行硬判以及校验矩阵的校验,若校验结果正确,则输出硬判结果,否则,按照所述基矩阵中的所有块行对软比特进行下一轮迭代计算处理;
其中,若按照所述基矩阵中的块行对软比特进行预设次数的迭代计算处理后,校验结果仍错误,则输出译码错误的信息。
第三方面,本发明实施例提供的一种LDPC译码装置,包括:
读取模块,用于在LDPC译码过程中,针对软比特按照任一块行进行读操作时,优先读取该任一块行中的非零元素对应的软比特,该非零元素紧挨该任一块行之前的n个块行中的零元素;
写入模块,用于针对软比特按照任一块行进行写操作时,优先写入该任一块行中的非零元素对应的软比特,该非零元素紧挨该任一块行之后的n个块行中的非零元素;
其中,所述软比特为输入软比特,或为输入软比特在译码过程中更新后得到的后验概率,块行为基于LDPC编码的基矩阵中的一行,n为大于等于1、且小于等于所述基矩阵的行总数减1的整数。
可选的,所述读取模块,还用于:
针对任一块行中的任一个非零元素,从紧挨所述任一块行之前的n个块行中与所述任一个非零元素同列的非零元素中,确定与所述任一个非零元素距离最近的目标非零元素,并确定所述目标非零元素与所述任一个非零元素之间的距离,按照确定的距离从大到小的顺序,对所述任一个非零元素对应的软比特进行读取优先级从高到低的排列,从而获得所述任一个非零元素对应的软比特的读取优先级,并按照所述读取优先级读取所述任一块行中的非零元素对应的软比特。
可选的,所述写入模块,还用于:
针对任一块行中任一个非零元素,从紧挨所述任一块行之后的n个块行中与所述任一个非零元素同列的非零元素中,确定与所述任一个非零元素距离最近的目标非零元素,并确定所述目标非零元素与所述任一个非零元素之间的距离,按照确定的距离从小到大的顺序,对所述任一个非零元素对应的软比特进行写入优先级从高到低的排列,从而获得所述任一个非零元素对应的软比特的写入优先级,并按照所述写入优先级对所述任一块行中非零元素对应的软比特进行写操作。
可选的,所述读取模块,还用于:
将按照任一块行以及读取优先级进行读取的软比特,按照所述基矩阵进行循环位移之后进行迭代计算处理,获得迭代计算结果;
所述写入模块,还用于将迭代计算结果按照写入优先级对软比特按照任一块行更新。
可选的,所述装置还包括:
校验模块,用于对更新后的软比特进行硬判以及校验矩阵的校验,若校验结果正确,则输出硬判结果,否则,按照下一块行对软比特进行迭代计算处理;
或者,
用于按照下一块行对软比特进行迭代计算处理,直到将软比特按照所述基矩阵的所有块行处理完,并对处理完的软比特进行硬判以及校验矩阵的校验,若校验结果正确,则输出硬判结果,否则,按照所述基矩阵中的所有块行对软比特进行下一轮迭代计算处理。
第四方面,本发明实施例提供的一种存储介质,所述存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如第一方面所述的方法的步骤。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例。
图1为本发明实施例提供的一种LDPC译码方法流程图;
图2为本发明实施例提供的基矩阵结构示意图;
图3为本发明实施例提供的任一块行读写示意图;
图4为本发明实施例提供的一种LDPC译码装置示意图;
图5为本发明实施例提供另一种LDPC译码流程示意图;
图6为本发明实施例提供另一种LDPC译码装置示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明技术方案的一部分实施例,而不是全部的实施例。基于本申请文件中记载的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明技术方案保护的范围。
下面对本发明实施例中涉及的部分概念进行介绍。
LDPC码:是一种线性分组码,由m行n列的稀疏矩阵H确定,其中,H由元素0和元素1构成,由于矩阵中除了少数元素为1外,其余大部分元素都是0,所以称之为稀疏矩阵,稀疏矩阵H又可称为LDPC码的校验矩阵,H满足以下条件:矩阵的行重(每行1的个数)、列重(每列1的个数)与码长的比值远小于1;任意两行(列)最多只有一个相同位置上的1;任意线性无关的列数尽量大。
这样的LDPC码码长为n,校验位长度为m,信息位长度为k=n-m,码率R=(n-m)/n,一个规则的LDPC码是指校验矩阵H满足行重和列重分别等于常数ρ和γ;不规则LDPC码指每行的行重和列重不完全相同。
QC-LDPC码:是LDPC码的一个子类,其校验矩阵H具有分块循环的特性,QC-LDPC码的校验矩阵H由一个大小为mb×nb的基矩阵Hb、扩展因子Z以及大小为Z×Z的置换矩阵P确定。
基矩阵:目前有两种基矩阵,分别为Base Graph#1和Base Graph#2,如果payload<=292,或者payload<=3824&&码率R<=0.67,或者码率R<=0.25时使用基矩阵2即BaseGraph#2;其他情况下,使用基矩阵1即Base Graph#1。
TDMP算法:即Turbo Decoding Message Passing算法,是一种基于分块行迭代结构的译码算法,可以有效的提高译码收敛速度,增加并行度的同时还能降低存储空间。TDMP算法中采取每次迭代先进行每块行的纵向处理,再进行横向处理的方式。变量节点更新计算中用到的LLR值,来自于上次迭代的校验节点水平更新结果。值得注意的是,第一次迭代由于没有上次迭代的校验节点更新,所以变量节点更新都直接采用输入LLR进行计算。
现有技术中,LDPC译码器的实现方案基本上都是基于早期通用架构修改而来,其LDPC IP核多为通用IP核,没有特别考虑NR需求,导致其在NR配置下吞吐率较低,无法满足EMBB(Enhance Mobile Broadband,增强移动宽带)场景下单载波1Gbps吞吐率的性能指标,所以,现有技术中,缺乏专门针对NR协议规范和矩阵结构的LDPC译码器。为此,本发明实施例提供一种LDPC译码方法以及译码装置,该方法在LDPC译码过程中,针对软比特按照任一块行进行读操作时,优先读取该任一块行中的非零元素对应的软比特,该非零元素紧挨该任一块行之前的n个块行中的零元素;以及针对软比特按照任一块行进行写操作时,优先写入该任一块行中的非零元素对应的软比特,该非零元素紧挨该任一块行之后的n个块行中的非零元素,其中,软比特为输入软比特或为输入软比特在译码过程中更新后得到的后验概率,块行为基于LDPC编码的基矩阵中的一行,n为大于等于1、且小于等于所述基矩阵的行总数减1的整数,所以,提升了LDPC译码过程中的软比特读写速度,进而提升了LDPC译码的吞吐率,从而满足NR配置下的吞吐率要求,也减小了译码延时。
下面结合附图,对本发明实施例提供的一种LDPC译码方法以及译码装置进一步说明。
请参考图1,为本发明实施例提供的一种LDPC译码方法,包括:
步骤101:在LDPC译码过程中,针对软比特按照任一块行进行读操作时,优先读取该任一块行中的非零元素对应的软比特,该非零元素紧挨该任一块行之前的n个块行中的零元素;
步骤102:以及针对软比特按照任一块行进行写操作时,优先写入该任一块行中的非零元素对应的软比特,该非零元素紧挨该任一块行之后的n个块行中的非零元素。
其中,所述软比特为输入软比特,或为输入软比特在译码过程中更新后得到的后验概率,块行为基于LDPC编码的基矩阵中的一行,n为大于等于1、且小于等于所述基矩阵的行总数减1的整数。
在本发明实施例中,在译码初期,步骤101和步骤102中的软比特是指LDPC译码器接收到的输入软比特即初始软比特,当对输入软比特按照本发明实施例进行读写操作之后,输入软比特被更新后得到后验概率,那么在后续的译码过程中,步骤101和步骤102中的软比特就是指更新后得到的后验概率。
在进行LDPC译码的过程中,可以将软比特按照基于LDPC编码的基矩阵(以下简称为基矩阵)中的块行进行读写操作,其中,该基矩阵中的一行归为一块行,这里假设基矩阵包括46行即46块行,可以将软比特依次按照该46块行中的每一块行进行读写操作,且优先读取该任一块行中的非零元素对应的软比特,该非零元素紧挨该任一块行之前的n个块行中的零元素,以便并行对每一块行进行写操作,且优先写入该任一块行中的非零元素对应的软比特,该非零元素紧挨该任一块行之后的n个块行中的非零元素,由于能够并向对软比特进行读操作,所以,提升了LDPC译码过程中的读写速度,进而提升了LDPC译码过程中的吞吐率,从而满足NR配置下的吞吐率要求,也减小了译码延时。
其中,优先读取该任一块行中的非零元素对应的软比特时,该非零元素紧挨该任一块行之前的n个块行中的零元素,是指依次向该任一块行之前的块行寻找与该非零元素最近接的零元素,例如,该任一块行为第五块行,那么,就可以先向第五块行之前的第四块行寻找与该非零元素最接近的零元素,若第四块行没有与该非零元素最接近的零元素,则向第三块行寻找与该非零元素最接近的零元素,依次类推。
同理,先写入该任一块行中的非零元素对应的软比特时,该非零元素紧挨该任一块行之后的n个块行中的非零元素,是指依次向该任一块行之后的块行寻找与该非零元素最近接的非零元素,例如,该任一块行为第五块行,那么,就可以先向第五块行之后的第六块行寻找与该非零元素最接近的非零元素,若第六块行没有与该非零元素最接近的非零元素,则向第七块行寻找与该非零元素最接近的非零元素,依次类推。
一种可选的方法,在本发明实施例中,步骤101中优先读取该任一块行中的非零元素对应的软比特,该非零元素紧挨该任一块行之前的n个块行中的零元素,具体可以按照以下方法实现:
针对任一块行中的任一个非零元素,从紧挨所述任一块行之前的n个块行中与所述任一个非零元素同列的非零元素中,确定与所述任一个非零元素距离最近的目标非零元素,并确定所述目标非零元素与所述任一个非零元素之间的距离,按照确定的距离从大到小的顺序,对所述任一个非零元素对应的软比特进行读取优先级从高到低的排列,从而获得所述任一个非零元素对应的软比特的读取优先级,并按照所述读取优先级读取所述任一块行中的非零元素对应的软比特。
即在本发明实施例中,在对软比特按照基矩阵任一块行进行读操作时,可以按照上述方式确定软比特中每一个软比特的读取优先级,其中,距离是指同一列中两个元素之间的行的个数。
在实际应用中,基矩阵的元素包括大于等于0的元素以及值为-1的元素,基矩阵中元素-1代表全0的方阵,元素0代表单位方阵,大于0的值表示单元方阵循环右移对应值后得到的矩阵,在本发明实施例中,为叙述方便,将基矩阵中大于等于0的值用非零元素1表示,将基矩阵中的-1用零元素表示,例如图2所示为本发明实施例中简化后的基于LDPC编码的基矩阵的示意图。图2中所示的基矩阵包括4行11列,每一行即为一块行,软比特中的每一个软比特为Z×Z的单位阵,Z为扩展因子。
在具体实践过程中,基矩阵最大包括46行68列,那么,步骤101中或步骤102中n的取值就为大于等于1、且小于等于45的整数,通常,n可以直接取当前译码指定的基矩阵的行总数减1的值。
例如,当基矩阵为10行即10块行,n为9,假设,在LDPC译码过程中,将软比特按照第1块行至第10块行中的任一块行进行读操作时,针对该任一块行中的任一个非零元素,从紧挨该任一块行之前的9块行中与该任一个非零元素同列的非零元素中,确定与该任一个非零元素距离最近的目标非零元素,并确定目标非零元素与该非零元素之间的距离,按照确定的距离从大到小的顺序,对该任一个非零元素对应的软比特进行读取优先级从高到低的排列,从而获得该任一块行中所有非零元素对应的软比特的读取优先级,并按照读取优先级读取该任一块行中的非零元素对应的软比特。
其中,当将软比特按照基矩阵中第1块行至第9块行中的任一块行进行读操作时,由于基矩阵中第1块行至第9块行中任一块行之前块行总数小于n的值即9,此时,可以依顺序复制基矩阵,再从包括复制后的基矩阵中选择紧挨该任一块行之前的9块行,然后根据选取的该9块行,按照上述同样的方式,确定该任一块行中非零元素对应的软比特的读取优先级。
例如,将软比特按照基矩阵的第1块行进行读取操作时,紧挨第1块行之前的9个块行就为复制的基矩阵中的第2块行至第10块行;又如将软比特按照基矩阵的第10块行进行读操作时,紧挨第10块行之前的9个块行就为该基矩阵中的第1块行至第9块行。
为叙述方便,在此,以将软比特按照图2中所示的基矩阵的第二块行和第三块行进行读操作,且n为2为例。并请结合图3中进行参考,针对基矩阵的第二块行,紧挨第二块行之前的2块行即为第一块行以及复制的基矩阵中最后一块行即第四块行(以下简称第四块行),假设基矩阵中每一块行的元素所在位置从左往右分别记为0至10(共11列),位置0是指第0列上的元素,位置1是指第1列上的元素,以此类推,位置2至位置10分别指第2列至第10列上的元素,由于第二块行中位置为0上的非零元素即第一个1距离第一块行和第四块行中最近的目标非零元素为第一块行中位置为0上的1,所以,他们之间的距离可记为0;由于第二块行中位置为3、6、9上的1分别距离第一块行中最近的目标非零元素为第一块行中位置为3、6、9上的1,所以,他们之间的距离均可记为0;由于第二块行中位置为4、5、7、8上的1距离第一块行和第四块行中最近的目标非零元素为第四块行中位置为4、5、7、8的1,所以,他们之间的距离可记为1即他们之间相各第一块行中的零元素,根据距离越大读取优先级越高,所以,第二块行中位置为4、5、7、8上的1对应的软比特的读取优先级高于位置为3、6、9上的1对应的软比特的读取优先级,因此,可以如图3所示,优先读取第二块行中位置为4、5、7、8上的1对应的软比特,然后在读取位置为0、3、6、9上的1对应的软比特。
针对基矩阵中的第三块行,紧挨第三块行之前的2块行即为基矩阵中第一块行和第二块行,由于第三块行中位置为1、10上的1距离第一块行和第二块行中最近的目标非零元素为第一块行中位置为对应位置上的1,所以,他们之间的距离可记为1;由于第三0、3、4、8上的1分别距离第一块行和第二块行中距离最近的目标非零元素为第二块行中对应位置上的1,所以,他们之间的距离均可记为0;所以,第三块行中位置为1、10上的1对应的软比特读取优先级高于位置为0、3、4、8上的1对应的软比特,可以如图3所示,优先读取第三块行中位置为1、10上的1对应的软比特,然后在读取位置为0、3、4、8上的1对应的软比特。同理,LDPC码的第四块行对应的软比特的读取优先级从高到低的读取顺序为:第四块行中位置为2、5、6、7、8、9、1、10分别对应的软比特。
同理,针对基矩阵中的第一块行,如图3中所示,优先读取第一块行位置为0、3、1、2、6、9、10上对应的软比特。
一种可选的方法,在本发明实施例中,步骤101中优先写入该任一块行中的非零元素对应的软比特,该非零元素紧挨该任一块行之后的n个块行中的非零元素,可以具体通过以下方式实现:
针对任一块行中任一个非零元素,从紧挨所述任一块行之后的n个块行中与所述任一个非零元素同列的非零元素中,确定与所述任一个非零元素距离最近的目标非零元素,并确定所述目标非零元素与所述任一个非零元素之间的距离,按照确定的距离从小到大的顺序,对所述任一个非零元素对应的软比特进行写入优先级从高到低的排列,从而获得所述任一个非零元素对应的软比特的写入优先级,并按照所述写入优先级对所述任一块行中非零元素对应的软比特进行写操作。
在本发明实施例中,在写入优先级确定时,例如,当基矩阵为10行即10块行,设定n为9,在将软比特按照基矩阵中第1块行至第10块行中的任一块行进行写操作时,可以按照以下方式确定该任一块行中任一个非零元素对应的软比特的写入优先级顺序,即从紧挨该任一块行之后的9块行中与该任一个非零元素同列的非零元素中,确定与该任一个非零元素距离最近的目标非零元素,并确定目标非零元素与该任一个非零元素之间的距离,按照确定的距离从小到大的顺序,对该任一个非零元素对应的软比特进行写入优先级从高到低的排列,从而获得该任一块行中所有非零元素对应的软比特的写入优先级,并按照确定的写入优先级对该任一块行中的所有非零元素对应的软比特进行写操作。
当将软比特按照基矩阵中的第2块行至第10块行中的任一块行进行写操作时,也可以依顺序复制基矩阵,再从包括复制后的基矩阵中选择紧挨该任一块行之后的9个块行,然后根据选取的该9个块行,按照上述同样的方式,确定该任一块行中非零元素对应的软比特的写入优先级。
例如,按照基矩阵的第2块行对软比特进行写操作时,紧挨第2块行之后的9个块行就为复制的基矩阵中的第3块行至第10块行以及复制的基矩阵第11块行。
这里继续以图2和图3为例,其中,将软比特依次按照基矩阵所有块行处理完一次称为一轮迭代,假设在第L轮迭代处理过程中,L取值为大于等于1的整数,为叙述方便,假设n为3,将按照上述读取优先级读取基矩阵第2块行对应的软比特之后,将读取的软比特进行迭代处理之后获得的迭代结果为写入对应的存储单元,进而使用迭代结果更新软比特buf中存储的软比特即后验概率,其中,将迭代结果更新到软比特buf中时,按照上述写入优先级进行写操作,即按照基矩阵第2块行对应的非零元素确定的写入优先级,依次写入第2块行对应的非零元素对应的迭代结果,即依次按照写入第2块行中位置为0、3、4、8、5、6、7、9上对应的迭代结果。
在将第2块对应的迭代结果进行写操作时,可并行按照基矩阵的第3块行对应对软比特buf中的软比特进行读操作,如图3所示,可以按照上述读取优先级优先读取第3块行中位置为1、10上的非零元素对应的软比特,然后再依次读取位置为0、3、4、8上的非零元素对应的软比特。
同理,针对基矩阵中的第一块行,如图3中所示,依次优先写入第一块行位置为0、3、6、9、1、2、10上对应的软比特。且在按照第一块行对软比特进行写操作时,可按照上述优先级依次读取第二块行位置为0、3、4、8、5、6、7、9上对应的软比特。
一种可选的方式,在发明实施例中,可以将软比特依次按照基矩阵所有块行处理完,即一轮迭代完成之后,再对处理完的软比特进行硬判以及校验矩阵的校验,若校验结果正确,则输出硬判结果,否则,按照基矩阵中的所有块行对软比特进行下一轮迭代计算处理,若经过预设次数的轮迭代计算处理之后,校验结果仍然不正确,则直接上报译码错误。
一种可选的方式,在发明实施例中,还可以在将软特按照基矩阵中任一块行处理完之后,就可以对更新后的软比特进行硬判以及校验矩阵的校验,若校验结果正确,则输出硬判结果,否则,按照下一块行对软比特进行迭代计算处理,若按照基矩阵中的块行对软比特进行预设次数的迭代计算处理后,校验结果仍错误,则输出译码错误的信息。
下面结合本发明实施例提供的一种LDPC译码装置对上述方法进一步叙述,如图4所示的LDPC译码装置包括LLR BUF模块、循环位移模块,减法器,BUF_Pij模块,BUF_Qij模块,Pij_cal模块,加法器模块,以及校验模块。
其中,LLR BUF模块为LLR数据RAM及其控制读写逻辑,LLR BUF模块中的RAM宽度可以为384*xbit(x为LLR字长),深度可以为68,(协议规定最大速率下的扩展因子Z为384,LDPC码的校验矩阵的列nb为68)。因此,图4所示的LDPC译码装置中的涉及计算的模块的数据走线宽度均可为384×Xbit。LLR BUF模块即为存储软比特的软比特BUF。
循环位移模块即为图4中switch模块,用于将接收到的软比特按照与基于LDPC编码的基矩阵进行循环位移,即按照基矩阵对应的Z单位阵进行循环位移。
减法器即为图4中的“-”,用于实现以下公式(1):
其中,j是列,i是行,l为迭代次数,且0≤l≤L-1,t为块行数,且0≤t≤T-1,迭代前初始化LLR(qj)=pinit,j,pinit,j为原始输入的软比特。
BUF_Pij模块,用于存储pij的BUF,宽度384*xbit,深度为基矩阵所有非0矩阵块个数,目前协议规定最大值为316。
BUF_Qij模块,用于存储qij的BUF,宽度384*xbit,深度为基矩阵单块行非0矩阵块个数的最大值,目前协议规定最大值不会超过20。
Pij_cal模块,用于实现以下公式(2):
其中λ为乘法因子。
加法器模块,用于实现以下公式(3):
校验模块因为可以和译码部分流水,所以不产生开销。
下面对图4所示的LDPC译码装置的处理流程进行说明,即LLR BUF模块中的软比特通过switch模块进入减法器,同时,BUF_Pij初始化为全0,在实际应用中,可以通过拉高clr信号实现BUF_Pij初始化为全0,且该BUF所有软比特均对减法器可用。
例如图5所示的流程,初始法阶段,BUF_Pij初始化为全0,LLR READ CTRL表示按照上述方法确定的读取优先级,读取基矩阵的第一块行中的非零元素对应的软比特,LLRREAD CTRL进入通过switch模块进行循环位移之后,进入减法器按照公式(1)处理。减法器的处理结果分两路输出,一路通过BUF_qij缓存给加法器后续使用,另一路给pij_cal模块按照公式(2)进行处理。其中,减法和后续pij计算可流水起来。pij_cal模块的处理结果,一路输出到BUF_Pij中对其保存的Pij进行更新,写指针增加,另一路缓存给加法器,以便加法器结合通过BUF_qij缓存的减法器的处理结果进行公式(3)处理,然后,加法器将处理结果,即软比特结果qj更新(写入)回LLR BUF模块。
在第一块行处理完成之后,将软比特结果qj更新(写入)回LLR BUF模,即用软比特结果qj更新第二块行中的元素对应的软比特,其中,可以按照本发明实施例中写优先级写入软比特结果qj,同时,按照本发明实施例中提供的读优先级并行对第二块行对应的软比特进行读操作,然后将读取的第二块行的非零元素对应的软比特通过switch模块进行循环位移之后进入减法器按照公式(1)处理,减法器的处理结果分两路输出,一路通过BUF_qij缓存给加法器后续使用,另一路给pij_cal模块按照公式(2)进行处理。其中,减法和后续pij计算可流水起来。pij_cal模块的处理结果,一路输出到BUF_Pij中对其保存的Pij进行更新,写指针增加,另一路缓存给加法器,以便加法器结合通过BUF_qij缓存的减法器的处理结果进行公式(3)处理,然后,加法器将处理结果,即软比特结果qj更新(写入)回LLR BUF模块,直到完成按照最后一块行对软比特进行处理,即为一轮迭代处理。
其中,可将一轮迭代处理中最后一块行对应软比特的处理结果输入到校验模块进行校验,该校验模块可以并行处理,不产生额外拍数。如果校验正确,则直接输出结果,并停止固核的下一轮迭代即可;若校验错误,则进行下一轮迭代理处理,若达到最大迭代次数仍然校验错,则直接上报译码错误。
在本发明实施例中,按照本发明实施例中的读取优先级和写入优先级进行并行读写操作时,对应于一轮迭代,其cycle消耗如下:N=316+Nswitch+Nadd+Nsub+Npij_cal+Npij_gen+Nwait,其中,316为最大非0矩阵个数,假设,Nswitch=Nadd=Nsub=Npij_gen=1;Npij_cal=2,为计算的latency。Nwait为上一块行qj写到下一块行qj读的等待开销,能够减小Nwait,那么,多对于多轮迭代,假设其迭代次数为L,其总cycle数为:Nmul=(316+Nwait)*L+Nswitch+Nadd+Nsub+Npij_cal+Npij_gen,就能极大的减少Nwait的总数。
例如,实测后目前平均一轮迭代的cycle数约为396,仿真给出的参考迭代次数为10次,该装置的verilog代码综合后频率为300MHz,因此在1/3码率、最大TB size配置下的吞吐率如下:Tput1/3=300/(396*10)*8424Mb/s=638Mb/s。考虑到峰值速率时,初传可以采用8/9码率(或真实发送码率)进行译码,假设初传能达到10%的误码率,则初传吞吐率为:Tput=Tput1/3*3*8/9*(1-10%)=1532Mb/s,可以达到1Gbps的吞吐率指标要求,从而满足NR配置下的吞吐率要求。
所以,通过上述方法,在LDPC译码过程中,针对软比特按照任一块行进行读操作时,优先读取该任一块行中的非零元素对应的软比特,且该非零元素紧挨该任一块行之前的n个块行中的零元素;以及针对软比特按照任一块行进行写操作时,优先写入该任一块行中的非零元素对应的软比特,且该非零元素紧挨该任一块行之后的n个块行中的非零元素,其中,软比特为输入软比特,或为输入软比特在译码过程中更新后得到的后验概率,块行为基于LDPC编码的基矩阵中的一行,n为大于等于1、且小于等于所述基矩阵的行总数减1的整数,所以,提升了LDPC译码过程中的软比特读写速度,进而提升了LDPC译码的吞吐率,从而满足NR配置下的吞吐率要求,也减小了译码延时。
基于同一发明构思,本发明实施例中提供了一种LDPC译码装置,如图6所示,包括:
存储器60,用于存储指令;
处理器61,用于读取所述存储器60中的指令,执行下列过程:
在LDPC译码过程中,针对软比特按照任一块行进行读操作时,优先读取该任一块行中的非零元素对应的软比特,该非零元素紧挨该任一块行之前的n个块行中的零元素;
以及针对软比特按照任一块行进行写操作时,优先写入该任一块行中的非零元素对应的软比特,该非零元素紧挨该任一块行之后的n个块行中的非零元素;
其中,所述软比特为输入软比特,或为输入软比特在译码过程中更新后得到的后验概率,块行为基于LDPC编码的基矩阵中的一行,n为大于等于1、且小于等于所述基矩阵的行总数减1的整数。
可选的,所述处理器具体用于:
针对任一块行中的任一个非零元素,从紧挨所述任一块行之前的n个块行与所述任一个非零元素同列的非零元素中,确定与所述任一个非零元素距离最近的目标非零元素,并确定所述目标非零元素与所述任一个非零元素之间的距离,按照确定的距离从大到小的顺序,对所述任一个非零元素对应的软比特进行读取优先级从高到低的排列,从而获得所述任一个非零元素对应的软比特的读取优先级,并按照所述读取优先级读取所述任一块行中的非零元素对应的软比特。
可选的,所述处理器具体用于:
针对任一块行中任一个非零元素,从紧挨所述任一块行之后的n个块行中与所述任一个非零元素同列的非零元素中,确定与所述任一个非零元素距离最近的目标非零元素,并确定所述目标非零元素与所述任一个非零元素之间的距离,按照确定的距离从小到大的顺序,对所述任一个非零元素对应的软比特进行写入优先级从高到低的排列,从而获得所述任一个非零元素对应的软比特的写入优先级,并按照所述写入优先级对所述任一块行中非零元素对应的软比特进行写操作。
可选的,所述处理器还用于:
将按照任一块行以及读取优先级进行读取的软比特,按照所述基矩阵进行循环位移之后进行迭代计算处理,获得迭代计算结果,以及将迭代计算结果按照写入优先级对软比特按照任一块行更新。
可选的,所述处理器还用于:
对更新后的软比特进行硬判以及校验矩阵的校验,若校验结果正确,则输出硬判结果,否则,按照下一块行对软比特进行迭代计算处理;
或者,
按照下一块行对软比特进行迭代计算处理,直到将软比特按照所述基矩阵的所有块行处理完,并对处理完的软比特进行硬判以及校验矩阵的校验,若校验结果正确,则输出硬判结果,否则,按照所述基矩阵中的所有块行对软比特进行下一轮迭代计算处理;
其中,若按照所述基矩阵中的块行对软比特进行预设次数的迭代计算处理后,校验结果仍错误,则输出译码错误的信息。
基于同一发明构思,本发明实施例中提供了一种LDPC译码装置,该装置的LDPC译码方法的具体实施可参见上述方法实施例部分的描述,重复之处不再赘述,该装置包括:
读取模块,用于在LDPC译码过程中,针对软比特按照任一块行进行读操作时,优先读取该任一块行中的非零元素对应的软比特,该非零元素紧挨该任一块行之前的n个块行中的零元素;
写入模块,用于针对软比特按照任一块行进行写操作时,优先写入该任一块行中的非零元素对应的软比特,该非零元素紧挨该任一块行之后的n个块行中的非零元素;
其中,所述软比特为输入软比特,或为输入软比特在译码过程中更新后得到的后验概率,块行为基于LDPC编码的基矩阵中的一行,n为大于等于1、且小于等于所述基矩阵的行总数减1的整数。
可选的,所述读取模块,还用于:
针对任一块行中的任一个非零元素,从紧挨所述任一块行之前的n个块行中与所述任一个非零元素同列的非零元素中,确定与所述任一个非零元素距离最近的目标非零元素,并确定所述目标非零元素与所述任一个非零元素之间的距离,按照确定的距离从大到小的顺序,对所述任一个非零元素对应的软比特进行读取优先级从高到低的排列,从而获得所述任一个非零元素对应的软比特的读取优先级,并按照所述读取优先级读取所述任一块行中的非零元素对应的软比特。
可选的,所述写入模块,还用于:
针对任一块行中任一个非零元素,从紧挨所述任一块行之后的n个块行中与所述任一个非零元素同列的非零元素中,确定与所述任一个非零元素距离最近的目标非零元素,并确定所述目标非零元素与所述任一个非零元素之间的距离,按照确定的距离从小到大的顺序,对所述任一个非零元素对应的软比特进行写入优先级从高到低的排列,从而获得所述任一个非零元素对应的软比特的写入优先级,并按照所述写入优先级对所述任一块行中非零元素对应的软比特进行写操作。
可选的,所述读取模块,还用于:
将按照任一块行以及读取优先级进行读取的软比特,按照所述基矩阵进行循环位移之后进行迭代计算处理,获得迭代计算结果;
所述写入模块,还用于将迭代计算结果按照写入优先级对软比特按照任一块行更新。
可选的,所述装置还包括:
校验模块,用于对更新后的软比特进行硬判以及校验矩阵的校验,若校验结果正确,则输出硬判结果,否则,按照下一块行对软比特进行迭代计算处理;
或者,
用于按照下一块行对软比特进行迭代计算处理,直到将软比特按照所述基矩阵的所有块行处理完,并对处理完的软比特进行硬判以及校验矩阵的校验,若校验结果正确,则输出硬判结果,否则,按照所述基矩阵中的所有块行对软比特进行下一轮迭代计算处理;
其中,若按照所述基矩阵中的块行对软比特进行预设次数的迭代计算处理后,校验结果仍错误,则输出译码错误的信息。
基于同一发明构思,本发明实施例提供的一种存储介质,所述存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如本发明实施例中的LDPC译码方法的步骤。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (15)
1.一种低密度奇偶校验码LDPC译码方法,其特征在于,包括:
在LDPC译码过程中,针对软比特按照任一块行进行读操作时,优先读取该任一块行中的非零元素对应的软比特,该非零元素紧挨该任一块行之前的n个块行中的零元素;
以及针对软比特按照任一块行进行写操作时,优先写入该任一块行中的非零元素对应的软比特,该非零元素紧挨该任一块行之后的n个块行中的非零元素;
其中,所述软比特为输入软比特,或为输入软比特在译码过程中更新后得到的后验概率,块行为基于LDPC编码的基矩阵中的一行,n为大于等于1、且小于等于所述基矩阵的行总数减1的整数。
2.如权利要求1所述的方法,其特征在于,所述优先读取该任一块行中的非零元素对应的软比特,该非零元素紧挨该任一块行之前的n个块行中的零元素,具体包括:
针对任一块行中的任一个非零元素,从紧挨所述任一块行之前的n个块行与所述任一个非零元素同列的非零元素中,确定与所述任一个非零元素距离最近的目标非零元素,并确定所述目标非零元素与所述任一个非零元素之间的距离,按照确定的距离从大到小的顺序,对所述任一个非零元素对应的软比特进行读取优先级从高到低的排列,从而获得所述任一个非零元素对应的软比特的读取优先级,并按照所述读取优先级读取所述任一块行中的非零元素对应的软比特。
3.如权利要求1所述的方法,其特征在于,所述优先写入该任一块行中的非零元素对应的软比特,该非零元素紧挨该任一块行之后的n个块行中的非零元素,具体包括:
针对任一块行中任一个非零元素,从紧挨所述任一块行之后的n个块行中与所述任一个非零元素同列的非零元素中,确定与所述任一个非零元素距离最近的目标非零元素,并确定所述目标非零元素与所述任一个非零元素之间的距离,按照确定的距离从小到大的顺序,对所述任一个非零元素对应的软比特进行写入优先级从高到低的排列,从而获得所述任一个非零元素对应的软比特的写入优先级,并按照所述写入优先级对所述任一块行中非零元素对应的软比特进行写操作。
4.如权利要求1-3任一项所述的方法,其特征在于,所述针对软比特按照任一块行进行读操作,以及针对软比特按照任一块行进行写操作,具体包括:
将按照任一块行以及读取优先级进行读取的软比特,按照所述基矩阵进行循环位移之后进行迭代计算处理,获得迭代计算结果,以及将迭代计算结果按照写入优先级对软比特按照任一块行更新。
5.如权利要求4所述的方法,其特征在于,所述将迭代计算结果按照写入优先级对软比特按照任一块行更新之后,所述方法还包括:
对更新后的软比特进行硬判以及校验矩阵的校验,若校验结果正确,则输出硬判结果,否则,按照下一块行对软比特进行迭代计算处理;
或者,
按照下一块行对软比特进行迭代计算处理,直到将软比特按照所述基矩阵的所有块行处理完,并对处理完的软比特进行硬判以及校验矩阵的校验,若校验结果正确,则输出硬判结果,否则,按照所述基矩阵中的所有块行对软比特进行下一轮迭代计算处理;
其中,若按照所述基矩阵中的块行对软比特进行预设次数的迭代计算处理后,校验结果仍错误,则输出译码错误的信息。
6.一种LDPC译码装置,其特征在于,包括:
存储器,用于存储指令;
处理器,用于读取所述存储器中的指令,执行下列过程:
在LDPC译码过程中,针对软比特按照任一块行进行读操作时,优先读取该任一块行中的非零元素对应的软比特,该非零元素紧挨该任一块行之前的n个块行中的零元素;
以及针对软比特按照任一块行进行写操作时,优先写入该任一块行中的非零元素对应的软比特,该非零元素紧挨该任一块行之后的n个块行中的非零元素;
其中,所述软比特为输入软比特,或为输入软比特在译码过程中更新后得到的后验概率,块行为基于LDPC编码的基矩阵中的一行,n为大于等于1、且小于等于所述基矩阵的行总数减1的整数。
7.如权利要求6所述的装置,其特征在于,所述处理器具体用于:
针对任一块行中的任一个非零元素,从紧挨所述任一块行之前的n个块行与所述任一个非零元素同列的非零元素中,确定与所述任一个非零元素距离最近的目标非零元素,并确定所述目标非零元素与所述任一个非零元素之间的距离,按照确定的距离从大到小的顺序,对所述任一个非零元素对应的软比特进行读取优先级从高到低的排列,从而获得所述任一个非零元素对应的软比特的读取优先级,并按照所述读取优先级读取所述任一块行中的非零元素对应的软比特。
8.如权利要求6所述的装置,其特征在于,所述处理器具体用于:
针对任一块行中任一个非零元素,从紧挨所述任一块行之后的n个块行中与所述任一个非零元素同列的非零元素中,确定与所述任一个非零元素距离最近的目标非零元素,并确定所述目标非零元素与所述任一个非零元素之间的距离,按照确定的距离从小到大的顺序,对所述任一个非零元素对应的软比特进行写入优先级从高到低的排列,从而获得所述任一个非零元素对应的软比特的写入优先级,并按照所述写入优先级对所述任一块行中非零元素对应的软比特进行写操作。
9.如权利要求6-8任一项所述的装置,其特征在于,所述处理器还用于:
将按照任一块行以及读取优先级进行读取的软比特,按照所述基矩阵进行循环位移之后进行迭代计算处理,获得迭代计算结果,以及将迭代计算结果按照写入优先级对软比特按照任一块行更新。
10.如权利要求9所述的装置,其特征在于,所述处理器还用于:
对更新后的软比特进行硬判以及校验矩阵的校验,若校验结果正确,则输出硬判结果,否则,按照下一块行对软比特进行迭代计算处理;
或者,
按照下一块行对软比特进行迭代计算处理,直到将软比特按照所述基矩阵的所有块行处理完,并对处理完的软比特进行硬判以及校验矩阵的校验,若校验结果正确,则输出硬判结果,否则,按照所述基矩阵中的所有块行对软比特进行下一轮迭代计算处理;
其中,若按照所述基矩阵中的块行对软比特进行预设次数的迭代计算处理后,校验结果仍错误,则输出译码错误的信息。
11.一种LDPC译码装置,其特征在于,包括:
读取模块,用于在LDPC译码过程中,针对软比特按照任一块行进行读操作时,优先读取该任一块行中的非零元素对应的软比特,该非零元素紧挨该任一块行之前的n个块行中的零元素;
写入模块,用于针对软比特按照任一块行进行写操作时,优先写入该任一块行中的非零元素对应的软比特,该非零元素紧挨该任一块行之后的n个块行中的非零元素;
其中,所述软比特为输入软比特,或为输入软比特在译码过程中更新后得到的后验概率,块行为基于LDPC编码的基矩阵中的一行,n为大于等于1、且小于等于所述基矩阵的行总数减1的整数。
12.如权利要求11所述的装置,其特征在于,所述读取模块,还用于:
针对任一块行中的任一个非零元素,从紧挨所述任一块行之前的n个块行中与所述任一个非零元素同列的非零元素中,确定与所述任一个非零元素距离最近的目标非零元素,并确定所述目标非零元素与所述任一个非零元素之间的距离,按照确定的距离从大到小的顺序,对所述任一个非零元素对应的软比特进行读取优先级从高到低的排列,从而获得所述任一个非零元素对应的软比特的读取优先级,并按照所述读取优先级读取所述任一块行中的非零元素对应的软比特。
13.如权利要求11所述的装置,其特征在于,所述写入模块,还用于:
针对任一块行中任一个非零元素,从紧挨所述任一块行之后的n个块行中与所述任一个非零元素同列的非零元素中,确定与所述任一个非零元素距离最近的目标非零元素,并确定所述目标非零元素与所述任一个非零元素之间的距离,按照确定的距离从小到大的顺序,对所述任一个非零元素对应的软比特进行写入优先级从高到低的排列,从而获得所述任一个非零元素对应的软比特的写入优先级,并按照所述写入优先级对所述任一块行中非零元素对应的软比特进行写操作。
14.如权利要求10-13中任一项所述的装置,其特征在于,所述读取模块,还用于:
将按照任一块行以及读取优先级进行读取的软比特,按照所述基矩阵进行循环位移之后进行迭代计算处理,获得迭代计算结果;
所述写入模块,还用于将迭代计算结果按照写入优先级对软比特按照任一块行更新。
15.一种存储介质,其特征在于,所述存储介质存储有计算机指令,当所述计算机指令在计算机上运行时,使得计算机执行如权利要求1-5任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811260746.0A CN111106837B (zh) | 2018-10-26 | 2018-10-26 | 一种ldpc译码方法、译码装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811260746.0A CN111106837B (zh) | 2018-10-26 | 2018-10-26 | 一种ldpc译码方法、译码装置及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111106837A true CN111106837A (zh) | 2020-05-05 |
CN111106837B CN111106837B (zh) | 2023-09-08 |
Family
ID=70418362
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811260746.0A Active CN111106837B (zh) | 2018-10-26 | 2018-10-26 | 一种ldpc译码方法、译码装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111106837B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1956368A (zh) * | 2005-10-26 | 2007-05-02 | 中兴通讯股份有限公司 | 基于单位阵及其循环移位阵的ldpc码向量译码装置和方法 |
US20080294960A1 (en) * | 2007-05-21 | 2008-11-27 | Ramot At Tel Aviv University Ltd. | Memory-efficient ldpc decoding |
US20110202817A1 (en) * | 2008-06-18 | 2011-08-18 | Nxp B.V. | Node information storage method and system for a low-density parity-check decoder |
CN102480336A (zh) * | 2010-11-30 | 2012-05-30 | 中国科学院微电子研究所 | 一种准循环低密度奇偶校验码的通用快速译码协处理器 |
CN103812510A (zh) * | 2012-11-15 | 2014-05-21 | 中兴通讯股份有限公司 | 译码方法及装置 |
CN105679364A (zh) * | 2014-12-08 | 2016-06-15 | 桑迪士克技术有限公司 | 具有软解码优化的可重写多比特非易失性存储器 |
-
2018
- 2018-10-26 CN CN201811260746.0A patent/CN111106837B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1956368A (zh) * | 2005-10-26 | 2007-05-02 | 中兴通讯股份有限公司 | 基于单位阵及其循环移位阵的ldpc码向量译码装置和方法 |
US20080294960A1 (en) * | 2007-05-21 | 2008-11-27 | Ramot At Tel Aviv University Ltd. | Memory-efficient ldpc decoding |
US20110202817A1 (en) * | 2008-06-18 | 2011-08-18 | Nxp B.V. | Node information storage method and system for a low-density parity-check decoder |
CN102480336A (zh) * | 2010-11-30 | 2012-05-30 | 中国科学院微电子研究所 | 一种准循环低密度奇偶校验码的通用快速译码协处理器 |
CN103812510A (zh) * | 2012-11-15 | 2014-05-21 | 中兴通讯股份有限公司 | 译码方法及装置 |
CN105679364A (zh) * | 2014-12-08 | 2016-06-15 | 桑迪士克技术有限公司 | 具有软解码优化的可重写多比特非易失性存储器 |
Non-Patent Citations (1)
Title |
---|
杨建平;陈庆春;: "IEEE802.16e标准LDPC译码器设计与实现" * |
Also Published As
Publication number | Publication date |
---|---|
CN111106837B (zh) | 2023-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100703271B1 (ko) | 통합노드 프로세싱을 이용한 저밀도 패리티 검사 코드복호 방법 및 장치 | |
US7730377B2 (en) | Layered decoding of low density parity check (LDPC) codes | |
US10425107B2 (en) | Partial sum computation for polar code decoding | |
US10411735B1 (en) | Systems and methods for an iterative decoding scheme | |
US8572463B2 (en) | Quasi-cyclic LDPC encoding and decoding for non-integer multiples of circulant size | |
JP2008507240A (ja) | 低密度パリティ検査(ldpc)符号用の階層的復号方式の改善 | |
CN107852176A (zh) | Ldpc码编码器和译码器 | |
KR20060032464A (ko) | 효율적인 저밀도 패리티 검사 코드 복호 방법 및 장치 | |
CN106936444B (zh) | 一种集合译码方法和集合译码器 | |
US8438448B2 (en) | Decoding method and device for low density generator matrix codes | |
CN113612486B (zh) | 一种构建pbrl ldpc码的基矩阵方法、系统、装置及存储介质 | |
US10833704B1 (en) | Low-density parity check decoder using encoded no-operation instructions | |
US8566665B2 (en) | Systems and methods for error correction using low density parity check codes using multiple layer check equations | |
JP5333233B2 (ja) | 復号装置、データ蓄積装置、データ通信システム、および復号方法 | |
KR20150011085A (ko) | 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 신호 수신 장치 및 방법 | |
KR101631128B1 (ko) | 크기조정 상수를 사용하는 가변 노드 업데이터를 갖는 ldpc 디코더 | |
CN107872231B (zh) | Ldpc译码方法与装置 | |
KR20190019798A (ko) | 채널 편파 코드의 연속 제거 리스트 디코딩을 위한 효율적인 생존 메모리 아키텍처 | |
US20100185913A1 (en) | Method for decoding ldpc code and the circuit thereof | |
KR20160116980A (ko) | Ldpc 복호기의 vss 알고리즘을 위한 h 행렬의 스케줄링 장치 및 그 방법 | |
JPWO2010053152A1 (ja) | 復号装置、この復号装置を有するデータ通信装置およびデータ記憶装置 | |
CN111384970B (zh) | 一种译码方法、装置及通信设备 | |
CN111106837B (zh) | 一种ldpc译码方法、译码装置及存储介质 | |
CN110022158B (zh) | 一种译码方法及装置 | |
CN113131947B (zh) | 译码方法、译码器和译码装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210526 Address after: 100085 1st floor, building 1, yard 5, Shangdi East Road, Haidian District, Beijing Applicant after: DATANG MOBILE COMMUNICATIONS EQUIPMENT Co.,Ltd. Address before: 100191 No. 40, Haidian District, Beijing, Xueyuan Road Applicant before: CHINA ACADEMY OF TELECOMMUNICATIONS TECHNOLOGY |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |