CN113328756B - 用于提升分层qc-ldpc译码器硬件处理性能的方法 - Google Patents
用于提升分层qc-ldpc译码器硬件处理性能的方法 Download PDFInfo
- Publication number
- CN113328756B CN113328756B CN202110454536.0A CN202110454536A CN113328756B CN 113328756 B CN113328756 B CN 113328756B CN 202110454536 A CN202110454536 A CN 202110454536A CN 113328756 B CN113328756 B CN 113328756B
- Authority
- CN
- China
- Prior art keywords
- row
- macro
- base matrix
- layer
- sequence
- 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
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/1148—Structural properties of the code parity-check or generator matrix
- H03M13/116—Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
- H03M13/1165—QC-LDPC codes as defined for the digital video broadcasting [DVB] specifications, e.g. DVB-Satellite [DVB-S2]
-
- 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
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Multimedia (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
本发明公开了用于提升分层QC‑LDPC译码器硬件处理性能的方法,涉及无线通信技术领域。包括以下步骤:S1、对基矩阵按照一定的原则进行重排,进行大量搜索后得到一个最优的重排序列;S2、将重排后的基矩阵以适合硬件实现的紧凑形式存储;S3、根据接收到的软信息序列,对软判决信息进行初始化。本发明在不增加硬件开销的前提下,通过对基矩阵进行行重排和列重排,每一层更新时都能用到最新的判决信息,能最大程度地发挥分层译码迭代收敛快的优势,迭代次数受限时能达到较好的译码性能,提升了系统吞吐量,减小了流水线处理中的“停止等待”时延和调度冲突,提高硬件处理速度,精简了基矩阵的存储信息,减小了硬件资源损耗。
Description
技术领域
本发明涉及无线通信技术领域,具体为用于提升分层QC-LDPC译码器硬件处理性能的方法。
背景技术
QC-LDPC码(准循环LDPC码)是采用结构化构造方法构造的一类具有准循环结构的LDPC码,通过基矩阵HBG和扩展因子Z来构造奇偶校验矩阵H,HBG中的每一个非零元素都扩展为一个Z×Z维度的经循环右移后的单位矩阵,HBG中的每一个零元素都扩展为一个Z×Z维度的全零矩阵。该特性保证了由HBG中的一行扩展出来的H中的Z行之间是正交的,Z列之间也是正交的,可以并行处理,以H中的Z行为一层,可以对H进行分层处理。802.11协议和5G NR协议中的LDPC都是这一类QC-LDPC码,为了达到优异的译码性能,通常采用软判决译码算法对LDPC进行译码,置信度传播(BP)算法是最基本的软判决算法,即便在低信噪比下,仍可达到较好的纠错性能,且随着信噪比的增大,性能曲线收敛速度快,但是,该算法是在概率域上进行消息传递的,算法包含大量乘法运算,硬件实现复杂度很高,因此,在硬件实现中,通常对BP算法映射到对数域并进行近似简化,最典型的两种简化算法是标准最小和算法。
与泛洪迭代相比,分层迭代更适合在硬件中实现并行译码,且收敛速度更快。分层迭代能取得上述优势需要满足这两个条件:1)、同一层内部的行之间是正交的;2)在每一层更新时,都能用到最新的软判决信息。QC-LDPC码的构造方法保证了其满足条件1,但是不一定能满足条件2。传统的分层译码算法采用固定的层处理顺序进行译码,默认是从H矩阵的第一层开始按层依次进行消息更新,并不总是能满足条件2。
目前有两大类方法来解决分层迭代中收敛速度的问题:第一类是基于H矩阵行处理顺序动态变化的算法,该算法在每次迭代中都需要对H矩阵所有行进行最佳译码层处理顺序排序,优先处理发生错误可能性最大的校验节点;第二类是预先对基矩阵的的各行进行乱序处理,根据重排后的基矩阵扩展得到H矩阵,然后按照H矩阵中各行的自然顺序逐层迭代译码。
现有技术中,第一类动态LDPC译码方案的译码步骤非常繁杂,每次迭代中,都需要计算各行的校验信息的残差值并进行排序。当H矩阵较大时,按此方法进行消息传递,计算量很大,译码时间长,不适用于吞吐量要求高的无线通信系统;第二类的LDPC乱序译码方案,目前只提出了按照行重进行降序重排的方案,方案简单,适合硬件实现,但还是没有充分发挥出分层迭代的优势,也没有考虑到层并行处理中的流水线冲突,因此,提出用于提升分层QC-LDPC译码器硬件处理性能的方法以解决上述问题。
发明内容
针对现有技术的不足,本发明提供了用于提升分层QC-LDPC译码器硬件处理性能的方法,以解决上述背景技术中提出的问题。
为实现上述目的,本发明提供如下技术方案:用于提升分层QC-LDPC译码器硬件处理性能的方法,包括以下步骤:
S1、对基矩阵按照一定的原则进行重排,进行大量搜索后得到一个最优的重排序列;
S2、将重排后的基矩阵以适合硬件实现的紧凑形式存储;
S3、根据接收到的软信息序列,对软判决信息进行初始化;
S4、逐层更新,将每一层的更新分为“前向处理”和“后向处理”两步,采用流水线结构对“前向处理”和“后向处理”并行计算;
S5、硬判决和校验检测。
进一步优化本技术方案,所述步骤S1中基矩阵最优重排序列的生成算法:首先给出“顺序序列”的定义,“顺序序列”是指将基矩阵中非零元素所在的位置按照行优先的顺序升序排列,一个重排后的序列需要满足以下两个条件才能称之为“好序列”:第一在对某一层更新时,总是能用到最近更新的软判决信息;第二采用流水线结构对层并行处理时,“停止等待”时间最小。
进一步优化本技术方案,所述步骤S1中为了得到一个“最优的重排序列”,基本的行排列原则为:第一将基矩阵中拥有相同行重的行连续排列,这样可以降低层并行处理中的“停止等待”时间;第二将行重大的行排列顺序靠前,这是因为先处理行重大的行会尽可能多地更新软判决信息值,从而在后面层的更新中,会更大概率地用到最新的软判决信息值,加快迭代收敛过程;第三使第一行和最后一行的相关性最小,所谓相关性是指两行在相同列位置处都拥有非零元素,相关性最小可以保证调度冲突最小,从而使两次迭代之间的延时最小。
进一步优化本技术方案,所述步骤S1中为了得到一个“最优的重排序列”,基本的列排列原则为:第一将基矩阵中列重大的列排列顺序靠前;第二如果一行中某非空元素所在的列,其前一行在该列上也有非空元素,那么该非空元素在本行的排列顺序应该和前一行中该列上非空元素的处理顺序相同或是更靠后。
进一步优化本技术方案,所述步骤S2中将重排后的基矩阵以适合硬件实现的紧凑形式存储:LDPC码的校验矩阵是一个MxN维的稀疏矩阵,M为校验比特的个数,N为码长,直接存储的话效率太低,由于QC-LDPC码可以通过基矩阵和提升因子扩展得到,因此只需要存储基矩阵中非零元素的位置及对应的循环移位系数即可,为了表述方便,用宏元素来表述基矩阵中的非零元素,用宏行来表述基矩阵的行,用宏列来表述基矩阵的列。
进一步优化本技术方案,所述步骤S2中用码表来存储基矩阵中宏元素的信息,每个宏元素需要存储其在重排后的基矩阵中的行号、列号以及循环移位系数,将各宏元素按照重排后的顺序存储在码表中,通过进一步分析发现,与宏元素相关存储信息可以进一步精简,分析如下:
宏元素的行号表示与其相关的校验方程编号,只要保证参与校验方程的各个宏元素是按照基矩阵选取的即可,并不需要对所有的校验方程都按照基矩阵的顺序进行计算,基于该分析,不需要存储宏元素的行号,只需要将处于同一个宏行的宏元素s都连续存储,同时标明哪个宏行是该行的最后一个即可,用1bit便可表示该信息。
宏元素的列号对应的是变量节点,需要存储其在基矩阵中的列位置。在迭代过程中,需要知道每个变量节点信息第一次和最后一次使用分别是哪个宏元素调用的,因此,用1bit表示宏元素是否是其所处宏列的第一个宏元素,用1bit表示该宏元素是否是其所处宏列的最后一个宏元素。
进一步优化本技术方案,所述步骤S3和步骤S5中对软判决信息进行初始化算法具体步骤如下:
步骤1.初始化:
L(ci):信道初始接收消息
L1(Qi)=L(ci)
L0(rji)=0
步骤2.以HBG的一行为一层,HBG:基矩阵
,编号为j,j={1,…,m},逐层进行迭代:
计算更新当前编号为j的子层的变量响应:
P(ci=0|yi)表示在接收到消息yi后得到发送端码字对应比特ci=0的后验概率;P(ci=1yi)表示在接收到消息yi后得到发送端码字对应比特ci=1的后验概率;L(ci)表示对数域的概率信息。
Ll(rji)表示在第l次迭代时,由第j个校验节点传给第i个变量节点的外部信息,称为校验响应(check response)。
Ll(Qi):第l次迭代过程中的软判决消息,称为变量度量;
Ll(qij)=Ll(Qi)-Ll-1(rji)
计算更新当前编号为j的子层的校验响应:
Ll(qij)表示在第l次迭代时,由第i个变量节点传给第j个校验节点的外部信息,称为变量响应。
Ll(qij)=Cl(Ll(qij),HBG(i,j))
Ll(rji)=Cr(Ll(rji),HBG(i,j))
其中,β为补偿因子,Cl(Ll(qij),HBG(i,j)):对长度为Zc的序列Ll(qij)完成循环左移的操作,循环左移的位数为HBG(i,j)除以Zc的余数;
Cr(Ll(rji),HBG(j,i)):对长度为Zc的序列Ll(rji)完成循环右移的操作,循环右移的位数为HBG(j,i)除以Zc的余数。
计算更新当前编号为j的子层的软判决消息:
Ll(Qi)=Ll(qij)+Ll(rji)
步骤3.硬判决:
得到软判决消息序列:
L(Qi)=(Ll(Q1),Ll(Q2),…,Ll(Qn))=(L(Q1),L(Q2),…,L(QN))
硬判决:
步骤4.迭代译码终止判断:
步骤5.输出译码消息:
进一步优化本技术方案,所述步骤S4中将分层迭代的补偿最小和的LDPC译码算法的步骤2中对每行的处理分解为“前向处理”和“后向处理”两部分;在第一个时钟周期,只对第一层进行“前向处理”,在最后一个时钟周期,只对最后一层进行“后向处理”,在中间的时钟周期中,同时进行对当前层的“前向处理”和前一层的“后向处理”,“后向处理”始终比“前向处理”延迟一层,且它们要同时切换到对下一层的处理,每一层的处理时延都和该层的行重有关系,如果相邻两层的行重相差过大,则流水线“停止等待”的时间就会很大。
假设相邻两层都有相同的变量节点,但他们在这两层中排列的顺序不同,如果在前一层中排列的顺序比较靠后,那么在对当前层进行“前向处理”时,前一层的“后向处理”还没有对该变量节点的信息进行更新,当前层用到的就不是最新的信息。
与现有技术相比,本发明提供了用于提升分层QC-LDPC译码器硬件处理性能的方法,具备以下有益效果:
该用于提升分层QC-LDPC译码器硬件处理性能的方法,在不增加硬件开销的前提下,通过对基矩阵进行行重排和列重排:一方面保证了在每一层更新时都能用到最新的判决信息,从而能最大程度地发挥分层译码迭代收敛快的优势,保证了在迭代次数受限时能达到较好的译码性能,提升了系统吞吐量;另一方面尽量减小了流水线处理中的“停止等待”时延和调度冲突,从而能减小译码时延,提高硬件处理速度,此外,通过对译码算法的深入分析,精简了基矩阵的存储信息,采用紧凑方式来存储基矩阵,减小了硬件资源损耗。
附图说明
图1为本发明提出的用于提升分层QC-LDPC译码器硬件处理性能的方法的流程示意图;
图2为本发明提出的用于提升分层QC-LDPC译码器硬件处理性能的方法的层迭代的补偿最小和的LDPC译码算法流程示意图;
图3为本发明提出的用于提升分层QC-LDPC译码器硬件处理性能的方法的基矩阵中非零元素的重排算法流程。
具体实施方式
下面将结合本发明的实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1-图3,本发明公开了用于提升分层QC-LDPC译码器硬件处理性能的方法,包括以下步骤:
S1、对基矩阵按照一定的原则进行重排,进行大量搜索后得到一个最优的重排序列,基矩阵最优重排序列的生成算法:首先给出“顺序序列”的定义,“顺序序列”是指将基矩阵中非零元素所在的位置按照行优先的顺序升序排列,一个重排后的序列需要满足以下两个条件才能称之为“好序列”:第一在对某一层更新时,总是能用到最近更新的软判决信息;第二采用流水线结构对层并行处理时,“停止等待”时间最小;
第一将基矩阵中拥有相同行重的行连续排列,这样可以降低层并行处理中的“停止等待”时间;第二将行重大的行排列顺序靠前,这是因为先处理行重大的行会尽可能多地更新软判决信息值,从而在后面层的更新中,会更大概率地用到最新的软判决信息值,加快迭代收敛过程;第三使第一行和最后一行的相关性最小,所谓相关性是指两行在相同列位置处都拥有非零元素,相关性最小可以保证调度冲突最小,从而使两次迭代之间的延时最小;
基本的列排列原则为:第一将基矩阵中列重大的列排列顺序靠前;第二如果一行中某非空元素所在的列,其前一行在该列上也有非空元素,那么该非空元素在本行的排列顺序应该和前一行中该列上非空元素的处理顺序相同或是更靠后,基于上述原则,再进行大量随机搜索可以得到最优的重排序列。
S2、将重排后的基矩阵以适合硬件实现的紧凑形式存储,将重排后的基矩阵以适合硬件实现的紧凑形式存储:LDPC码的校验矩阵是一个MxN维的稀疏矩阵,M为校验比特的个数,N为码长,直接存储的话效率太低,由于QC-LDPC码可以通过基矩阵和提升因子扩展得到,因此只需要存储基矩阵中非零元素的位置及对应的循环移位系数即可,为了表述方便,用宏元素来表述基矩阵中的非零元素,用宏行来表述基矩阵的行,用宏列来表述基矩阵的列;
用码表来存储基矩阵中宏元素的信息,每个宏元素需要存储其在重排后的基矩阵中的行号、列号以及循环移位系数,将各宏元素按照重排后的顺序存储在码表中,通过进一步分析发现,与宏元素相关存储信息可以进一步精简,分析如下:
宏元素的行号表示与其相关的校验方程编号,只要保证参与校验方程的各个宏元素是按照基矩阵选取的即可,并不需要对所有的校验方程都按照基矩阵的顺序进行计算,基于该分析,不需要存储宏元素的行号,只需要将处于同一个宏行的宏元素s都连续存储,同时标明哪个宏行是该行的最后一个即可,用1bit便可表示该信息。
宏元素的列号对应的是变量节点,需要存储其在基矩阵中的列位置。在迭代过程中,需要知道每个变量节点信息第一次和最后一次使用分别是哪个宏元素调用的,因此,用1bit表示宏元素是否是其所处宏列的第一个宏元素,用1bit表示该宏元素是否是其所处宏列的最后一个宏元素;
综上所述,一个宏元素需要存储的信息为:列号,行尾标志,列首标志,列尾标志。这种紧凑存储方式可以有效节省硬件资源。
S3、根据接收到的软信息序列,对软判决信息进行初始化算法具体步骤如下:
步骤1.初始化:
L1(Qi)=L(ci)
L0(rji)=0
P(ci=0|yi)表示在接收到消息yi后得到发送端码字对应比特的后ci=0验概率;P(ci=1yi)表示在接收到消息yi后得到发送端码字对应比特ci=1的后验概率;L(ci)表示对数域的概率信息。
Ll(rji)表示在第l次迭代时,由第j个校验节点传给第i个变量节点的外部信息,称为校验响应。
Ll(Qi):第l次迭代过程中的软判决消息,称为变量度量;
步骤2.以HBG的一行为一层,编号为j,j={1,…,m},逐层进行迭代:
计算更新当前编号为j的子层的变量响应:
Ll(qij)=Ll(Qi)-Ll-1(rji)
计算更新当前编号为j的子层的校验响应:
Ll(qij)=Cl(Ll(qij),HBG(i,j))
Ll(rji)=Cr(Ll(rji),HBG(i,j))
其中,β为补偿因子,Cl(Ll(qij),HBG(i,j)):对长度为Zc的序列Ll(qij)完成循环左移的操作,循环左移的位数为HBG(i,j)除以Zc的余数;
Cr(Ll(rji),HBG(j,i)):对长度为Zc的序列Ll(rji)完成循环右移的操作,循环右移的位数为HBG(j,i)除以Zc的余数。
计算更新当前编号为j的子层的软判决消息:
Ll(Qi)=Ll(qij)+Ll(rji)
步骤3.硬判决:
得到软判决消息序列:
L(Qi)=(Ll(Q1),Ll(Q2),…,Ll(Qn))=(L(Q1),L(Q2),…,L(QN))
硬判决:
步骤4.迭代译码终止判断:
译码器接受到来自信道的码字序列为y=(y1,y2,…,yN),长度为N,对其按照长度Zc分组得到y=(y1,y2,…,yn),送入原模图中n个变量节点,其中N=Zc×n,N:码字序列的长度,对应校验矩阵H的列数;
Zc:提升因子;
HBG:基矩阵;
n:基矩阵的变量节点数;
m:基矩阵的校验节点数;
i:基矩阵中的变量节点索引,i={1,…,n};
j:基矩阵中的校验节点索引,j={1,…,m};
L(ci):HBG中变量节点i收到来自信道的长度为Zc的消息序列,因为在基矩阵中的一个变量/校验节点同时处理一组消息序列,长度为Zc;
Ll(Qi):第l次迭代过程中的软判决消息;
Ll(rji):第l次迭代过程中,由第j个校验节点传递给第i个变量节点的外部信息,称为校验响应;
Ll(qij):第l次迭代过程中,由第i个变量节点传递给第j个校验节点的外部信息,称为变量响应;
Cl(L,HBG(j,i)):对一维长度为Zc信息序列L完成循环左移的操作,循环移位的位数为HBG(j,i)%Zc;
Cr(L,HBG(j,i)):对一维长度为Zc信息序列L完成循环右移的操作,循环移位的位数为HBG(j,i)%Zc。
S4、逐层更新,将每一层的更新分为“前向处理”和“后向处理”两步,采用流水线结构对“前向处理”和“后向处理”并行计算,将分层迭代的补偿最小和的LDPC译码算法的步骤2中对每行的处理分解为“前向处理”和“后向处理”两部分;在第一个时钟周期,只对第一层进行“前向处理”,在最后一个时钟周期,只对最后一层进行“后向处理”,在中间的时钟周期中,同时进行对当前层的“前向处理”和前一层的“后向处理”,“后向处理”始终比“前向处理”延迟一层,且它们要同时切换到对下一层的处理,每一层的处理时延都和该层的行重有关系,如果相邻两层的行重相差过大,则流水线“停止等待”的时间就会很大。
假设相邻两层都有相同的变量节点,但他们在这两层中排列的顺序不同,如果在前一层中排列的顺序比较靠后,那么在对当前层进行“前向处理”时,前一层的“后向处理”还没有对该变量节点的信息进行更新,当前层用到的就不是最新的信息。
本发明的有益效果是:在不增加硬件开销的前提下,通过对基矩阵进行行重排和列重排:一方面保证了在每一层更新时都能用到最新的判决信息,从而能最大程度地发挥分层译码迭代收敛快的优势,保证了在迭代次数受限时能达到较好的译码性能,提升了系统吞吐量;另一方面尽量减小了流水线处理中的“停止等待”时延和调度冲突,从而能减小译码时延,提高硬件处理速度,此外,通过对译码算法的深入分析,精简了基矩阵的存储信息,采用紧凑方式来存储基矩阵,减小了硬件资源损耗。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (4)
1.用于提升分层QC-LDPC译码器硬件处理性能的方法,其特征在于,包括以下步骤:
S1、对基矩阵按照一定的原则进行重排,进行大量搜索后得到一个最优的重排序列;
S2、将重排后的基矩阵以适合硬件实现的紧凑形式存储;
S3、根据接收到的软信息序列,对软判决信息进行初始化;
S4、逐层更新,将每一层的更新分为“前向处理”和“后向处理”两步,采用流水线结构对“前向处理”和“后向处理”并行计算;
S5、硬判决和校验检测;
所述步骤S1中基矩阵最优重排序列:首先给出“顺序序列”的定义,“顺序序列”是指将基矩阵中非零元素所在的位置按照行优先的顺序升序排列,一个重排后的序列需要满足以下两个条件才能称之为“好序列”:第一在对某一层更新时,总是能用到最近更新的软判决信息;第二采用流水线结构对层并行处理时,“停止等待”时间最小;
所述步骤S1中为了得到一个“最优的重排序列”,基本的行排列原则为:第一将基矩阵中拥有相同行重的行连续排列,这样可以降低层并行处理中的“停止等待”时间;第二将行重大的行排列顺序靠前,这是因为先处理行重大的行会尽可能多地更新软判决信息值,从而在后面层的更新中,会更大概率地用到最新的软判决信息值,加快迭代收敛过程;第三使第一行和最后一行的相关性最小,所谓相关性是指两行在相同列位置处都拥有非零元素,相关性最小可以保证调度冲突最小,从而使两次迭代之间的延时最小;
所述步骤S1中为了得到一个“最优的重排序列”,基本的列排列原则为:第一将基矩阵中列重大的列排列顺序靠前;第二如果一行中某非空元素所在的列,其前一行在该列上也有非空元素,那么该非空元素在本行的排列顺序应该和前一行中该列上非空元素的处理顺序相同或是更靠后;
所述步骤S2中将重排后的基矩阵以适合硬件实现的紧凑形式存储:LDPC码的校验矩阵是一个MxN维的稀疏矩阵,M为校验比特的个数,N为码长,直接存储的话效率太低,由于QC-LDPC码可以通过基矩阵和提升因子扩展得到,因此只需要存储基矩阵中非零元素的位置及对应的循环移位系数即可,为了表述方便,用宏元素来表述基矩阵中的非零元素,用宏行来表述基矩阵的行,用宏列来表述基矩阵的列。
2.根据权利要求1所述的用于提升分层QC-LDPC译码器硬件处理性能的方法,其特征在于,所述步骤S2中将重排后的基矩阵以适合硬件实现的紧凑形式存储,用码表来存储基矩阵中宏元素的信息,每个宏元素需要存储其在重排后的基矩阵中的行号、列号以及循环移位系数,将各宏元素按照重排后的顺序存储在码表中,通过进一步分析发现,与宏元素相关存储信息可以进一步精简,分析如下:
宏元素的行号表示与其相关的校验方程编号,只要保证参与校验方程的各个宏元素是按照基矩阵选取的即可,并不需要对所有的校验方程都按照基矩阵的顺序进行计算,基于该分析,不需要存储宏元素的行号,只需要将处于同一个宏行的宏元素s都连续存储,同时标明哪个宏行是该行的最后一个即可,用1bit便可表示该信息;
宏元素的列号对应的是变量节点,需要存储其在基矩阵中的列位置,在迭代过程中,需要知道每个变量节点信息第一次和最后一次使用分别是哪个宏元素调用的,因此,用1bit表示宏元素是否是其所处宏列的第一个宏元素,用1bit表示该宏元素是否是其所处宏列的最后一个宏元素。
3.根据权利要求1所述的用于提升分层QC-LDPC译码器硬件处理性能的方法,其特征在于,所述步骤S3中对软判决信息进行初始化算法具体步骤如下:
步骤1.初始化:
L1(Qi)=L(ci)
L0(rji)=0
P(ci=0|yi)表示在接收到消息yi后得到发送端码字对应比特ci=0的后验概率;P(ci=1yi)表示在接收到消息yi后得到发送端码字对应比特ci=1的后验概率;L(ci)表示对数域的概率信息;
Ll(rji)表示在第l次迭代时,由第j个校验节点传给第i个变量节点的外部信息,称为校验响应;
Ll(Qi):第l次迭代过程中的软判决消息,称为变量度量;
步骤2.以HBG的一行为一层,HBG:基矩阵,
编号为j,j={1,…,m},逐层进行迭代:
计算更新当前编号为j的子层的变量响应:
Ll(qij)=Ll(Qi)-Ll-1(rji)
计算更新当前编号为j的子层的校验响应:
Ll(qij)=Cl(Ll(qij),HBG(i,j))
Ll(rji)=Cr(Ll(rji),HBG(i,j))
其中,β为补偿因子,Cl(Ll(qij),HBG(i,j)):对长度为Zc的序列Ll(qij)完成循环左移的操作,循环左移的位数为HBG(i,j)除以Zc的余数;
Cr(Ll(rji),HBG(j,i)):对长度为Zc的序列Ll(rji)完成循环右移的操作,循环右移的位数为HBG(j,i)除以Zc的余数;
计算更新当前编号为j的子层的软判决消息:
Ll(Qi)=Ll(qij)+Ll(rji)
Ll(qij)表示在第l次迭代时,由第i个变量节点传给第j个校验节点的外部信息,称为变量响应;
步骤3.硬判决:
得到软判决消息序列:
L(Qi)=(Ll(Q1),Ll(Q2),…,Ll(Qn))=(L(Q1),L(Q2),…,L(QN))
硬判决:
步骤4.迭代译码终止判断:
步骤5.输出译码消息:
4.根据权利要求1所述的用于提升分层QC-LDPC译码器硬件处理性能的方法,其特征在于,所述步骤S4中逐层更新,将分层迭代的补偿最小和的LDPC译码算法的步骤2中对每行的处理分解为“前向处理”和“后向处理”两部分;在第一个时钟周期,只对第一层进行“前向处理”,在最后一个时钟周期,只对最后一层进行“后向处理”,在中间的时钟周期中,同时进行对当前层的“前向处理”和前一层的“后向处理”,“后向处理”始终比“前向处理”延迟一层,且它们要同时切换到对下一层的处理,每一层的处理时延都和该层的行重有关系,如果相邻两层的行重相差过大,则流水线“停止等待”的时间就会很大;
假设相邻两层都有相同的变量节点,但他们在这两层中排列的顺序不同,如果在前一层中排列的顺序比较靠后,那么在对当前层进行“前向处理”时,前一层的“后向处理”还没有对该变量节点的信息进行更新,当前层用到的就不是最新的信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110454536.0A CN113328756B (zh) | 2021-04-26 | 2021-04-26 | 用于提升分层qc-ldpc译码器硬件处理性能的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110454536.0A CN113328756B (zh) | 2021-04-26 | 2021-04-26 | 用于提升分层qc-ldpc译码器硬件处理性能的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113328756A CN113328756A (zh) | 2021-08-31 |
CN113328756B true CN113328756B (zh) | 2023-04-11 |
Family
ID=77413713
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110454536.0A Active CN113328756B (zh) | 2021-04-26 | 2021-04-26 | 用于提升分层qc-ldpc译码器硬件处理性能的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113328756B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115037412B (zh) * | 2022-05-23 | 2023-11-17 | 山东大学 | 高动态通信系统中联合载波同步的自适应迭代译码方法 |
CN117375636B (zh) * | 2023-12-07 | 2024-04-12 | 成都星联芯通科技有限公司 | 提高qc-ldpc译码器吞吐率的方法、装置及设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103259545A (zh) * | 2013-04-26 | 2013-08-21 | 西安理工大学 | 基于振荡的准循环低密度奇偶校验码置信传播译码方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101924564A (zh) * | 2009-06-17 | 2010-12-22 | 中国科学院微电子研究所 | 行列节点同步更新的部分并行准循环ldpc码译码器结构 |
US9413390B1 (en) * | 2014-07-16 | 2016-08-09 | Xilinx, Inc. | High throughput low-density parity-check (LDPC) decoder via rescheduling |
CN110289933B (zh) * | 2018-03-19 | 2022-04-12 | 华为技术有限公司 | 通信方法、通信装置和系统 |
CN109309502B (zh) * | 2018-08-03 | 2021-05-04 | 西安电子科技大学 | 5g nr标准的分层ldpc基矩阵处理译码方法 |
CN112583420B (zh) * | 2019-09-30 | 2024-01-09 | 上海华为技术有限公司 | 一种数据处理方法和译码器 |
-
2021
- 2021-04-26 CN CN202110454536.0A patent/CN113328756B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103259545A (zh) * | 2013-04-26 | 2013-08-21 | 西安理工大学 | 基于振荡的准循环低密度奇偶校验码置信传播译码方法 |
Also Published As
Publication number | Publication date |
---|---|
CN113328756A (zh) | 2021-08-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3381128B1 (en) | Memory management and path sorting in a polar code successive cancellation list decoder | |
CN113328756B (zh) | 用于提升分层qc-ldpc译码器硬件处理性能的方法 | |
KR100891782B1 (ko) | 고속 데이터 전송 시스템에서 순방향 오류 정정 장치 및방법 | |
CN111162797B (zh) | 一种速率兼容的5g ldpc码的编码装置及编码方法 | |
JP2008507240A (ja) | 低密度パリティ検査(ldpc)符号用の階層的復号方式の改善 | |
CN110233628B (zh) | 极化码的自适应置信传播列表译码方法 | |
CN107809303B (zh) | 一种基于awgn子信道优化的极化码译码方法 | |
CN107565978B (zh) | 基于Tanner图边调度策略的BP译码方法 | |
JP4526450B2 (ja) | 復号装置と方法並びにプログラム | |
CN110784232A (zh) | 一种空间耦合ldpc码滑窗译码方法 | |
CN108833052B (zh) | 信道极化译码路径度量值排序方法 | |
WO2016029405A1 (zh) | 一种基于多目标遗传的译码方法及装置 | |
CN106656214A (zh) | 一种基于串行抵消列表极化码译码的动态分布排序算法 | |
Shen et al. | Low-latency software successive cancellation list polar decoder using stage-located copy | |
CN110995279A (zh) | 一种极化码联合scf球形列表翻转译码方法 | |
CN108566211B (zh) | 基于H矩阵层处理顺序动态变化的layered LDPC译码方法 | |
CN103856218B (zh) | 译码处理方法及译码器 | |
CN108933604B (zh) | 一种变量节点处理方法及装置 | |
WO2020001212A1 (zh) | 译码器、译码方法和计算机存储介质 | |
CN113131950B (zh) | 一种极化码的自适应连续消除优先译码方法 | |
CN112653474B (zh) | 一种降低平均迭代次数的紧缩型ldpc-cc译码器设计方法 | |
CN112332868B (zh) | 一种基于DVB-RCS2的turbo并行译码方法 | |
KR20130068171A (ko) | 무선 통신 시스템에서의 반복적 검출 및 복호 방법 및 이의 장치 | |
KR101112121B1 (ko) | 저밀도 패리티 검사 부호를 위한 복잡도와 대기시간을 줄인 동적 스케줄링 기법을 이용한 복호 방법 및 장치 | |
CN110855298A (zh) | 基于子信道冻结条件的低迭代次数极化码bp译码方法 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |