【技术实现步骤摘要】
稀疏校验矩阵的存储方法和读取方法
本专利技术属于编解码
,特别是涉及一种稀疏校验矩阵的存储方法、一种稀疏校验矩阵的存储装置、一种稀疏校验矩阵的读取方法、一种稀疏校验矩阵的读取装置、一种解码器及一种计算机可读存储介质。
技术介绍
二进制LDPC(BinaryLow-Density-Parity-Check,简称B-LDPC)码是一种具有稀疏校验矩阵的分组纠错码,适用于几乎所有的信道,可以以码长指数的形式快速接近香农理论的信道容量,是编码界近年来的研究热点。然而,当码长相对较短时,B-LDPC码的性能会出现一定程度的降低。因此,有学者在B-LDPC码的基础上提出了多进制LDPC(Non-BinaryLow-Density-Parity-Check,简称NB-LDPC)码。相对于B-LDPC码,特别是当码长较短时,NB-LDPC码理论上具有更优异的性能,目前,NB-LDPC码也开始逐渐被相关行业采纳为编码标准。例如,北斗卫星导航系统(BDS)。但是,NB-LDPC码的应用也带来了更为复杂的解码算法。总体而言,NB-LDPC解码算法是一种基于置信度传播的迭代算法,常见的包括基本的置信度传播算法(BeliefPropagation,BP)、基于快速傅里叶变换的置信度传播算法(FFT-BP)和扩展最小和算法(ExtendedMinimumSum,EMS)等。如图1所示,是现有技术中NB-LDPC迭代解码算法的流程示意图。该流程包括如下步骤:(1.1)初始化:初始化符号置信度,设置最大迭代次数等;r>(1.2)变量节点更新(又称为水平更新或后向更新):利用属于同一校验节点下的其他变量节点的信息更新当前变量节点的置信度;(1.3)校验节点更新(又称垂直更新或前向更新),利用属于同一变量节点的其他校验节点的信息更新当前校验节点的置信度;(1.4)符号判决:选择置信度最大的符号输出;(1.5)校验计算:对输出的符号进行校验,若通过校验,则解码成功,否则重复步骤(1.2)和(1.3),继续进行迭代直至迭代次数超过设置的最大迭代次数。对于NB-LDPC迭代解码算法,变量节点更新和校验节点更新需要频繁访问稀疏校验矩阵的整行和整列。其中,变量节点更新需要对稀疏校验矩阵逐列地进行计算,而校验节点更新则需要对稀疏校验矩阵逐行地进行计算。但在实际中,针对稀疏校验矩阵,为了节省其存储空间,通常利用其稀疏特性按照行或列的顺序存储其非0元素以及对应行和列序号。如图2所示,便是现有技术中常见的稀疏校验矩阵的存储示意图,上述存储方法根本不利于NB-LDPC迭代解码算法对稀疏校验矩阵逐行和逐列的非0元素进行快速索引。因此,为了降低NB-LDPC迭代解码算法的复杂度,有必要对稀疏校验矩阵的存储及读取方式进行优化。
技术实现思路
有鉴于此,本专利技术实施例提供了一种稀疏校验矩阵的存储方法和读取方法,以解决现有技术中采用NB-LDPC迭代解码算法进行编解码时,对于稀疏校验矩阵的存储及读取方式过于复杂的问题。本专利技术实施例的第一方面提供了一种稀疏校验矩阵的存储方法,包括:获取在多进制LDPC码的编解码过程中使用的稀疏校验矩阵;确定所述稀疏校验矩阵中的非0元素,任一所述非0元素在所述稀疏校验矩阵中均具有相应的位置信息,所述位置信息包括行序号和列序号;针对所述稀疏校验矩阵的每一行,逐行存储所述每一行中的非0元素、所述非0元素的列序号,以及所述每一行的行分隔符;针对所述稀疏校验矩阵的每一列,逐列存储所述每一列中的非0元素、所述非0元素的行序号,以及所述每一列的列分隔符。本专利技术实施例的第二方面提供了一种稀疏校验矩阵的读取方法,包括:获取待读取的稀疏校验矩阵;逐行或逐列读取所述待读取的稀疏校验矩阵中的非0元素;其中,所述待读取的稀疏校验矩阵按照如下方式进行存储获得:针对原始稀疏校验矩阵的每一行,逐行存储所述每一行中的非0元素、所述非0元素的列序号,以及所述每一行的行分隔符;针对所述原始稀疏校验矩阵的每一列,逐列存储所述每一列中的非0元素、所述非0元素的行序号,以及所述每一列的列分隔符。本专利技术实施例的第三方面提供了一种稀疏校验矩阵的存储装置,包括:获取模块,用于获取在多进制LDPC码的编解码过程中使用的稀疏校验矩阵;确定模块,用于确定所述稀疏校验矩阵中的非0元素,任一所述非0元素在所述稀疏校验矩阵中均具有相应的位置信息,所述位置信息包括行序号和列序号;逐行存储模块,用于针对所述稀疏校验矩阵的每一行,逐行存储所述每一行中的非0元素、所述非0元素的列序号,以及所述每一行的行分隔符;逐列存储模块,用于针对所述稀疏校验矩阵的每一列,逐列存储所述每一列中的非0元素、所述非0元素的行序号,以及所述每一列的列分隔符。本专利技术实施例的第四方面提供了一种稀疏校验矩阵的读取装置,包括:获取模块,用于获取待读取的稀疏校验矩阵;读取模块,用于逐行或逐列读取所述待读取的稀疏校验矩阵中的非0元素;其中,所述待读取的稀疏校验矩阵通过调用如下模块进行存储获得:逐行存储模块,用于针对原始稀疏校验矩阵的每一行,逐行存储所述每一行中的非0元素、所述非0元素的列序号,以及所述每一行的行分隔符;逐列存储模块,用于针对所述原始稀疏校验矩阵的每一列,逐列存储所述每一列中的非0元素、所述非0元素的行序号,以及所述每一列的列分隔符。本专利技术实施例的第五方面提供了一种解码器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述稀疏校验矩阵的存储方法的步骤。本专利技术实施例的第六方面提供了一种解码器,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述稀疏校验矩阵的读取方法的步骤。本专利技术实施例的第七方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述稀疏校验矩阵的存储方法的步骤。本专利技术实施例的第八方面提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述稀疏校验矩阵的读取方法的步骤。与
技术介绍
相比,本专利技术实施例包括以下优点:本专利技术实施例,根据NB-LDPC迭代解码算法逐行或逐列访问稀疏校验矩阵的特点,可以同时按照行和列的方式存储稀疏元素,其中按行存储时保存每行的列序号及行分隔符,按列存储时保存每列的行序号及列分隔符,在不明显增加存储空间的前提下,能够在采用NB-LDPC迭代解码算法时显著提高稀疏校验矩阵的索引效率和访问速度。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性本文档来自技高网...
【技术保护点】
1.一种稀疏校验矩阵的存储方法,其特征在于,包括:/n获取在多进制LDPC码的编解码过程中使用的稀疏校验矩阵;/n确定所述稀疏校验矩阵中的非0元素,任一所述非0元素在所述稀疏校验矩阵中均具有相应的位置信息,所述位置信息包括行序号和列序号;/n针对所述稀疏校验矩阵的每一行,逐行存储所述每一行中的非0元素、所述非0元素的列序号,以及所述每一行的行分隔符;/n针对所述稀疏校验矩阵的每一列,逐列存储所述每一列中的非0元素、所述非0元素的行序号,以及所述每一列的列分隔符。/n
【技术特征摘要】
1.一种稀疏校验矩阵的存储方法,其特征在于,包括:
获取在多进制LDPC码的编解码过程中使用的稀疏校验矩阵;
确定所述稀疏校验矩阵中的非0元素,任一所述非0元素在所述稀疏校验矩阵中均具有相应的位置信息,所述位置信息包括行序号和列序号;
针对所述稀疏校验矩阵的每一行,逐行存储所述每一行中的非0元素、所述非0元素的列序号,以及所述每一行的行分隔符;
针对所述稀疏校验矩阵的每一列,逐列存储所述每一列中的非0元素、所述非0元素的行序号,以及所述每一列的列分隔符。
2.根据权利要求1所述的方法,其特征在于,所述每一行的行分隔符为所述每一行非0元素的数量,所述每一列的列分隔符为所述每一列非0元素的数量;或者,
所述每一行的行分隔符为所述每一行非0元素的起始位置或结束位置,所述每一列的列分隔符为所述每一列非0元素的起始位置或结束位置。
3.一种稀疏校验矩阵的读取方法,其特征在于,包括:
获取待读取的稀疏校验矩阵;
逐行或逐列读取所述待读取的稀疏校验矩阵中的非0元素;
其中,所述待读取的稀疏校验矩阵按照如下方式进行存储获得:
针对原始稀疏校验矩阵的每一行,逐行存储所述每一行中的非0元素、所述非0元素的列序号,以及所述每一行的行分隔符;
针对所述原始稀疏校验矩阵的每一列,逐列存储所述每一列中的非0元素、所述非0元素的行序号,以及所述每一列的列分隔符。
4.根据权利要求3所述的方法,其特征在于,所述逐行或逐列读取所述待读取的稀疏校验矩阵中的非0元素的步骤包括:
针对所述待读取的稀疏校验矩阵的每一行,顺序读取所述每一行中的非0元素以及所述非0元素的列序号;
当读取到行分隔符时,对当前的行序号递增并转入下一行中进行读取。
5.根据权利要求3所述的方法,...
【专利技术属性】
技术研发人员:朱永辉,沈梓荣,文宇波,高峰,许祥滨,
申请(专利权)人:泰斗微电子科技有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。