准循环低密度奇偶校验编码方法及装置与流程

文档序号:14914184发布日期:2018-07-11 00:14阅读:186来源:国知局

本发明涉及通信技术领域,尤其涉及一种准循环低密度奇偶校验(Low Density Parity Check,LDPC)编码方法及装置。



背景技术:

图1是根据相关技术的数字通信系统的结构框图。如图1所示,数字通信系统中一般包括三个部分:发送端、信道和接收端。发送端可对信息序列进行信道编码从而获取编码码字,对编码码字进行交织,并将交织后的比特映射成调制符号,然后可以根据通信信道信息来处理和发送调制符号。在信道中,由于多径、移动等因素导致特定的信道响应,这些都会使数据传输失真,同时由于噪声和干扰也会进一步恶化数据传输。接收端接收通过信道后的调制符号数据,此时的调制符号数据已经失真,需要进行特定处理才能恢复原始信息序列。

根据发送端对信息序列的编码方法,接收端可以对接收数据进行相应处理从而可靠地恢复原始信息序列。所述的编码方法必须是收发两端都是可见的。一般地,所述编码处理方法是基于前向纠错(Forward Error Correction,FEC)编码,其中,前向纠错编码在信息序列中添加一些冗余信息。接收端可以利用该冗余信息来可靠地恢复原始信息序列。

在发送端,需要对待传输的传输块进行码块分割获得多份小传输块,然后对多份小传输块分别进行FEC编码,所述待传输的传输块长度简称为TBS是Transport Block Size的缩写。FEC编码码率一般定义为进入编码器的比特数目比上实际传输比特的比值。在长期演进(Long Term Evolution,LTE)系统中,非常灵活的传输块大小可以支持LTE系统的各种包长度需求,以及采用调制编码方案(Modulation and Coding Scheme,MCS)索引来指示不同调制阶数和编码码率R以及确定TBS索引,以及根据资源块(Resource Block,RB)数目(Number of Resource Block,NRB)和传输块大小(TBS)索引来确定在不同的传输块大小,所述资源块大小是连续大小为12子载波在1个时隙上的资源,其中去除一些控制信号和参考信号所剩下的资源。信道类型中可以包括数据信道和控制信道。数据信道一般承载的是用户数据。控制信道承载控制信息,包括MCS索引号、信道信息等控制类信息。带宽尺寸一般是指系统分配给数据传输所占用的带宽宽度,LTE系统中分为20M、10M、5M等带宽。数据传输方向包括上行数据和下行数据,所述上行数据一般是指用户向基站传输数据,下行数据是指基站向用户传输数据。

一些常见的FEC编码包括:卷积码、Turbo码和低密度奇偶校验(Low Density Parity Check,LDPC)码。FEC编码过程中,对比特数目为k的信息序列进行FEC编码获得n比特的FEC编码码字(冗余比特为n-k),FEC编码码率为k/n。LDPC码是一种可以用非常稀疏的奇偶校验矩阵或者二分图定义的线性分组码,正是利用它的校验矩阵的稀疏性,才能实现低复杂度的编译码,从而使得LDPC走向实用化。经过各种实践和理论证明,LDPC码是在加性高斯白噪声(Additive White Gaussian Noise,AWGN)信道下性能最为优良的信道编码,性能非常靠近香农极限。

在通信协议IEEE802.11ac、IEEE802.11ad、IEEE802.11aj、IEEE802.16e、IEEE802.11n、微波通信以及光纤通信等通信协议中,LDPC码都获得大量应用。LDPC码的奇偶校验矩阵中,每一行都是一个奇偶校验码,每一行中如果某一索引位置元素值等于1则说明该比特参与到该奇偶校验码,如果等于0,则说明该位置比特不参与该奇偶校验码。而准循环LDPC码(quasi-cyclic LDPC)的奇偶校验矩阵H为mb×Z行和nb×Z列的矩阵。即H是由mb×nb个子矩阵构成,每个子矩阵都是为Z×Z的基本置换矩阵的不同幂次,也可以认为是大小为Z×Z单位阵的循环移位若干值所获得的子矩阵。此时,只要知道循环移位值以及子矩阵维度就可以确定一个准循环LDPC码,所述的所有移位值构成一个mb×nb矩阵,可以称为基础矩阵或者基础校验矩阵或者原模图(base photograph)。但是现有技术中的在进行LDPC编码时,总是很难在保证编码灵活性的情况下,确保编码性能,特别是在高码率下的性能。这里额编码灵活性值的是支持的编码码率和编码长度的可选择性。编码性能包括编码的正确性等。



技术实现要素:

有鉴于此,本发明实施例期望提供一种准循环LDPC编码方法及装置,以解决上述问题。

为达到上述目的,本发明的技术方案是这样实现的:

本发明实施例第一方面提供一种准循环低密度奇偶校验LPDC编码方法,包括:

基于一个基础矩阵和一个扩展因子值,对待编码信息进行准循环LDPC编码,得到LDPC编码输出序列;其中,所述基础矩阵中包括:第一类元素和第二类元素;所述基础矩阵中包括至少一个子矩阵;所述子矩阵的第i行的行重为g0,所述g0的取值位于预设范围内;所述子矩阵的第j行的行重不小于g0与Δg的和,其中,所述j不等于所述i;所述i和j均是所述子矩阵的行索引号,所述Δg是大于预设值的正整数,所述行重为所述子矩阵对应行所述第二类元素的个数;

从所述LDPC编码输出序列中选出速率匹配输出序列。

本发明实施例第二方面提供一种准循环低密度奇偶校验LPDC编码装置,包括:

编码单元,用于基于一个基础矩阵和一个扩展因子值,对待编码信息进行准循环LDPC编码,得到LDPC编码输出序列;其中,所述基础矩阵中包括:第一类元素和第二类元素;所述基础矩阵中包括至少一个子矩阵;所述子矩阵的第i行的行重为g0,所述g0的取值位于预设范围内;所述子矩阵的第j行的行重不小于g0与Δg之和,其中,所述j不等于所述i;所述i和j均是所述子矩阵的行索引号,所述Δg是大于预设值的正整数,所述行重为所述子矩阵对应行所述第二类元素的个数;

速率匹配单元,用于从所述LDPC编码输出序列中选出速率匹配输出序列。

本发明实施例提供的一种准循环LDPC编码方法及装置,用于进行编码的基础矩阵为特别设定的矩阵,该基础矩阵至少包括一个子矩阵;所述子矩阵列行数差小于或等于所述基础矩阵的列行数差,且所述子矩阵和所述基础矩阵的列数均大于行数;所述子矩阵的最小行重为g0,所述g0的取值位于预设范围内;子矩阵的其他行重都不小于g0与Δg的和;所述行重为所述子矩阵一行元素中替换非第二类元素的个数。利用这种基础矩阵进行编码的时候,因为最小行重为g0,则表示该子矩阵的所有行重都不小于g0与Δg的和,这样的行重分布会使得高译码率和低译码率都有较好的译码性能,从而在确保灵活性的前提下,确保译性能。

附图说明

图1是根据相关技术的数字通信系统的结构框图;

图2是本发明实施例提供的一种准循环LDPC编码方法的流程示意图;

图3是本发明实施例提供的一种基础矩阵及子矩阵的示意图;

图4是本发明实施例提供的一种准循环LDPC编码装置的结构示意图;

图5是本发明实施例提供第一种准循环LDPC编码的基础矩阵的示例图;

图6是本发明实施例提供的第二种基础矩阵的示例图

图7是本发明实施例的一种准循环LDPC编码的性能示意图;

图8是本发明实施例提供的第三种基础矩阵的示例图;

图9是根据本发明示例的一种基础矩阵对比示例2

图10是本发明实施例提供的另一种准循环LDPC编码的性能示意图

图11是本发明实施例提供的第三种基础矩阵的示例图;

图12是本发明实施例提供的一种基础矩阵的交织示例图;

图13是本发明实施例提供的第四种基础矩阵的示例图;

图14是本发明实施例提供的第五种基础矩阵的示例图;

图15是本发明实施例提供的一个子矩阵的示意图;

图16是本发明实施例提供的另一个子矩阵的示意图。

图17是本发明实施例提供的另一个子矩阵的示意图。

图18是本发明实施例提供的另一个子矩阵的示意图。

图19是本发明实施例提供的另一个子矩阵的示意图。

图20是本发明实施例提供的另一个子矩阵的示意图。

图21是本发明实施例提供的另一个子矩阵的示意图。

图22是本发明实施例提供的另一个子矩阵的示意图。

图23是本发明实施例提供的另一个子矩阵的示意图。

图24是本发明实施例提供的另一个子矩阵的示意图。

图25是本发明实施例提供的另一个子矩阵的示意图。

图26是本发明实施例提供的参考矩阵的示意图。

图27是本发明实施例提供的另一个子矩阵的示意图。

图28是本发明实施例提供的另一个参考矩阵的示意图。

具体实施方式

以下结合说明书附图及具体实施例对本发明的技术方案做进一步的详细阐述。

如图2所示,本实施例提供一种准循环LPDC编码方法,包括:

步骤S110:基于一个基础矩阵和一个扩展因子值,对待编码信息进行准循环LDPC编码,得到LDPC编码输出序列;

其中,所述基础矩阵中包括:第一类元素和第二类元素;所述基础矩阵中包括至少一个子矩阵;所述子矩阵的第i行的行重为g0,所述g0的取值位于预设范围内的正整数;所述子矩阵的第j行的行重不小于g0与Δg的和,其中,所述j不等于所述i;所述i和j均是所述子矩阵的行索引号,所述Δg是大于预设值的正整数,所述行重为所述子矩阵对应行所述第二类元素的个数;

步骤S120:从所述LDPC编码输出序列中选出速率匹配输出序列

本实施例所述LPDC编码方法为利用于发送端的方法。

在本实施例中将可包括获取一个扩展因子集合,所述扩展因子集合包括一个或多个扩展因子,进行LDPC编码的扩展因子值来自于所述扩展因子集合。所述扩展因子值集合包括至少一个扩展因子值,通常情况下为包括2个或2个以上的扩展因子值。所述扩展因子值的取值等于所述全零方阵和所述单位方阵的维度。在本实施例中所述全零方阵和所述单位方阵均为行数等于列数的矩阵。所述扩展因子值可为指示述全零方阵和所述单位方阵的行数或列数的值。

所述基础矩阵为非空矩阵,所述非空矩阵为包括至少一个元素的矩阵,即所述基础矩阵的行数和列数都不小于1。在本实施例中所述基础矩阵的行数可为mb,所述基础矩阵的列数为nb;且所述nb大于所述mb,且mb和nb都为正整数。这样的话,所述基础矩阵为列维度大于行维度的矩阵。

所述基础矩阵中的元素可分为两大类,一类是第一类元素,另一类为所述第一类元素以外的第二类元素。例如,在本实施例中所述第一类元素可为取值为预定值的元素,在本实施例中所述第一类元素可为取值为-1的元素;所述第二类元素可为非-1的元素,为0或正整数。所述第一类元素,用于为替换全零方阵的元素;所述第二类元素为替换为预定矩阵的元素,且用于指示形成所述预设矩阵的单位方阵循环位移的位移步长;所述扩展因子值集合,包括至少一个扩展因子值;在一些实施例中,所述子矩阵列行数差小于或等于所述基础矩阵的列行数差,且所述子矩阵和所述基础矩阵的列数均大于行数。

所述g0的取值可为不大于5的正整数,例如,2,3,5等。所述Δg的取值可为3、2或4等取值。

在一些实施例中,在步骤S110之前,还可包括步骤S100;所述步骤S100可包括:获取所述基础矩阵和所述扩展因子值集合,具体可包括:在发送端的存储介质中查询所述基础矩阵和所述扩展因子值集合。当然,在一些实施例中,所述步骤S110还可包括:从外设接收所述基础矩阵或拓展因子值集合,例如,从通信对端接收所述基础矩阵和拓展因子值,利用从通信对端接收的基础矩阵和拓展因子值集合进行编码,方便通信对端利用对应的基础矩阵和拓展因子值集合进行解码。

在本实施例中所述基础矩阵和所述拓展因子值可用于形成奇偶校验矩阵。所述基础矩阵中一个元素替换为一个所述全零矩阵或单位方阵循环移位后的预设方阵。这里循环位移的步长等于一个所述第二类元素的取值。所述第二类元素的取值可为0或正整数;当一个所述第二类元素为x,则所述循环位移的位移步长就等于x。

所述基础矩阵的特定行及特定列的元素可以构成上述子矩阵,这里的子矩阵的最小行重小于指定值,其他行重都不小于预设值,具体不小于指定值与Δg的和。这里的预设值可为任意取值,在本实施例中所述指定值取值为4或5等各种取值。

例如,基础矩阵Hb为2行4列的矩阵,具体如下:

假设扩展因子等于4,则在编码过程中形成奇偶校验矩阵时,利用行数和列数均等于4的全零矩阵,或行数和列数均等于4的单位矩阵循环位移后矩阵替换基础矩阵中的元素。

上述基础矩阵对应的奇偶校验矩阵H为:

在上述基础矩阵Hb中非-1元素等于0,则单位方阵不进行循环位移,若非-1元素为2,则单位方阵循环位移之后的预设矩阵为:

在步骤S110中将待编码信息对应到所述奇偶校验矩阵中。通常所述待编码信息中一个比特块对应于基础矩阵中的一列元素S,即对应于该奇偶校验矩阵与S对应的子矩阵。在完成待编码信息的对应之后,所述奇偶校验矩阵中未与待编码信息进行对应的列均作为该待编码信息的校验码,完成对应之后进行编码,变么得到LDPC编码输出序列;输出的LDPC编码序列的维度等于所述奇偶校验码的维度。

准循环LDPC编码的基础矩阵一般包括2部分:系统列部分矩阵和校验列部分矩阵。一个mb×nb的基础矩阵,一般来说前(nb-mb)列是系统列部分矩阵,后mb列是校验列部分矩阵。校验列部分矩阵包括两种结构:下三角结构和双对角结构。其中,所述下三角结构是指矩阵中任意行索引号和任意列索引号所确定的元素在所述列索引号大于所述行索引号时都等于-1(用于指示替换为全零矩阵的元素,本发明实施例中描述为第一类元素);所述双对角结构是指:矩阵中,行索引号为0且列索引号为0所确定的元素是非-1元素(本实施例中描述为第二类元素),并且在列索引号为i情况下行索引号为i和(i+1)所确定的2个元素都是非-1元素,以及列索引号为i0和行索引号i1所所索引的元素值等于-1,其中。i0大于i1+1。本发明实施例中的所有下三角结构描述和双对角结构都与以上描述是一致的。若矩阵经过行置换和/或列置换之后,得到下三角结构和双对角结构,也包括矩阵也可以。在步骤S120中会选择LDPC编码输出序列中的部分序列输出。在执行步骤S130时,将会根据根据编码速率,选择出LDPC编码输出序列中有多少个部分输出;从而确保灵活性。

而在本实施例中由于所述基础矩阵包括一个满足上述条件的子矩阵,这样的话,编码信息对应的奇偶校验矩阵中非全零矩阵的分布满足子矩阵的行重分布,在进行编码时可以减少编码过程中的短4环或短6环现象导致的编码性能的降低,从而可以确保编码性能。

在一些实施例中所述子矩阵可为基础矩阵确定之后,通过挑选基础矩阵中的特定行和特定列的元素来构成,在有一些实施例中,所述基础矩阵是在子矩阵确定之后生成的。例如,生成所述基础矩阵的方法包括:确定所述子矩阵,基于所述子矩阵进行矩阵拓展,得到所述基础矩阵中所述子矩阵以外的元素,得到所述基础矩阵。在进行所述基础矩阵拓展时,可以随机添加第一类元素和第二类元素,通常添加的第一类元素较多。在本实施例中所述基础矩阵基于子矩阵的拓展可以采用现有的任意方法,在本实施例中可以不做限定。

如图3所示,基础矩阵302包括:mb0行nb0列的子矩阵301,标号303指示的元素为基础矩阵302中除所述子矩阵301的元素,均可是基于子矩阵301拓展而来的。

所述子矩阵为mb0行nb0列的矩阵,确定所述子矩阵的方式有多种,以下提供两种可选方式:

可选方式一:

所述子矩阵为mb0行nb0列的矩阵,所述i等于0,且所述子矩阵为:

其中,所述A为mb0行(nb0-mb0)列的矩阵,所述B是1行1列的矩阵,所述C是(mb0-1)行1列的矩阵,所述D是1行(mb0-1)列的矩阵,所述E是(mb0-1)行(mb0-1)列的矩阵;所述A中首行的行重最小且首行的行重等于g0-1;所述B中包括1个所述第二类元素;所述C包括(mb0-1)个所述第一类元素;所述D包括:(mb0-1)个所述第一类元素;所述E是下三角结构或者双对角结构子矩阵。子矩阵可选方式二:

所述子矩阵为mb1行nb1列的矩阵,所述i等于(mb1-1),且所述子矩阵为:

其中,所述A0是(mb1-1)行(nb1-mb1)列的矩阵,所述A1是(mb1-1)行(mb1-1)列的矩阵,所述A2是(mb1-1)行1列的矩阵,所述A3是1行nb1列的矩阵。

在某些实施例中,所述A1可是下三角结构或双对角结构,当所述A1为双对角结构时,所述mb1等于以下整数之一:3、4、5。

在另一些实施例中,所述A3的最后一个元素为所述第二类元素。

可选方式三:

所述子矩阵为:[B0B1],

所述B0为mb2行kb2列的矩阵,所述B1是mb2行mb2列的矩阵,所述B1是双对角结构;其中,mb2是所述子矩阵的行数,nb2是所述子矩阵的列数,kb2=nb2–mb2。

在一些实施例中,所述矩阵B1中最大行重所在行的元素在所述基础矩阵中的行索引号等于所述i。

可选方式三:

所述i等于0,且所述子矩阵为:

其中,所述C0为1行nb3列的矩阵,所述C1是(mb3-1)行(kb3+1)列的矩阵,所述C2是(mb3-1)行(mb3-1)列的矩阵;所述C2是下三角结构或者双对角结构;其中,所述mb3是所述子矩阵的行数,所述nb3是所述子矩阵的列数,kb3=nb3–mb3。

所述i=0,表明所述子矩阵的首行的行重最小。

以上方式都提供简便获得子矩阵的方法,当一个基础矩阵的子矩阵确定了之后,所述基础矩阵可以在所述子矩阵的基础上进行拓展,从而拓展得到所述子矩阵。当确定了所述子矩阵之后,可以通过随机添加所需个数的元素,从而得到所述基础矩阵,例如,在所述子矩阵的基础上,随机条件第一类元素和/或第二类元素得到所述基础矩阵。

子矩阵总之采用上述方式都可以快速的构建所述子矩阵,进而通过子矩阵的拓展快速得到所述基础矩阵。

所述基础矩阵为mb行nb列的矩阵,所述基础矩阵为[D0D1],其中,所述D0是mb行kb列的矩阵,所述D1是mb行mb列的矩阵;所述D1中第i行的所有第二类元素在所述基础矩阵中第i行的的列索引号形成集合Cset。

所述LDPC编码输出序列包括:nb个比特块;所述nb个比特块包括:比特块索引号为0至(kb-1)的kb个系统比特块和比特块索引号为kb至(nb-1)的mb个校验比特块。

所述步骤S120可包括:

对所述LDPC编码输出序列按预设交织序列进行交织,获得交织后输出序列,其中,所述预设交织序序列的第kb至第(kb+t-1)个元素等于所述集合Cset中的元素值;所述预设交织序列包括的元素数目小于或等于所述nb;所述t是所述集合Cset的元素数目;

对完成交织后的所述交织后输出序列进行选择,获得所述速率匹配输出序列。

所述预设交织序列可为预先设定的,可用于指示基础矩阵中的行列交换,通过所述行列交换可以得到所述交织后的输出序列。这里的交织可包括:可以根据所述预设交织序列先进行行交换,然后进行列交换;也可以根据所述预设交织序列先进行列交换,再进行行交换。

子矩阵所述步骤S120的可实现方式有多种,除了上述方式,本实施例还提供另一种可实现方式:

所述基础矩阵为mb行nb列的矩阵,所述基础矩阵为[D0D1],其中,所述D0是mb行kb列的矩阵,所述D1是mb行mb列的矩阵;所述D1中第i行的所有第二类元素在所述基础矩阵中第i行的的列索引号形成集合Cset;

所述步骤S120可包括:对所述基础矩阵进行矩阵的行列移位,获得修正后的基础矩阵,其中,所述修正后的基础矩阵的第kb列至第(kb+t-1)列等于所述集合Cset中所有元素指示所述基础矩阵中的列;所述修正后的基础矩阵的第(kb+t)列至第(kb+t1-1)列等于集合Cset’中所有元素指示所述基础矩阵的列,其中,所述集合Cset’是集合{kb,kb+1,…,(kb+t1-1)}与所述集合Cset的差集,t1是所述集合Cset中的最大元素值减去(nb-mb)获得的数值,所述t是所述集合Cset的元素数目;采用所述修正后的基础矩阵对待编码信息序列进行准循环LDPC编码。

子矩阵在本实施例中进行所述行列位移,包括:先进行行位移,然后进行列位移;或者,先进行列位移,在进行行位移。但是位移的目的是是的修正后的基础矩阵,相对于修正前的矩阵,上述行列元素之间的位置交换。

所述子矩阵中元素在所述基础矩阵中的行索引号形成集合Rset0,所述子矩阵中元素在所述基础矩阵中的列索引号形成集合Cset0;其中,所述行索引号和所述列索引号连续分布。

例如,根据所述Rset的行索引号和所述Cset的列索引号,选择出对应的元素构成了所述子矩阵。在本实施例中所述Rset的行索引号和Cset中的列索引号都连续分布。例如,从x1,x1+1…x1+y。在本实施例中进一步优选为Rset和Cset的索引号都连续分布,且都从0开始取值。这样的话,子矩阵就为基础矩阵中左上角的一部分元素构成。这样可以简化LDPC编码,降低编码延时,提升通信系统的鲁棒性。

在还有一些实施例中,所述集合Rset0为0到(mb’-1)构成的集合,所述集合Cset0为0到(nb’-1)构成的集合,其中,mb’是所述集合Rset0的元素数目,nb’是所述集合Cset0的元素数目。

在还有一些实施例中,所述步骤S120可包括:

去除所述待编码信息序列的E个比特块,基于所述待编码信息序列中的剩余编码信息序列确定出所述速率匹配输出序列;

其中,所述E个比特块对应于所述基础矩阵的列索引号构成集合T0;所述子矩阵中第i行中第二类元素的列索引号构成集合T1;其中所述集合T0是所述集合T1的子集。

所述E个比特块对应于所述基础矩阵的列索引号构成集合T0;所述子矩阵中的行重等于所述g0的行中第二类元素在所述基础矩阵中所在列索引号,构成集合T1;所述集合T0是所述集合T1的子集。例如,子矩阵最小行重的行中第二类元素在所述基础矩阵中的第3,5,7,8列,则所述T1包括3,5,7,8。所述T0为3,5,7,8中的一个或多个元素构成。

这里的E取值为0或正整数,小于所述待编码信息包括的总比特块数。去除了部分传输的比特块,则剩余的为需要输出的满足编码速率的速率匹配输出序列。当E大于2时,所述E个比特块为所述待编码信息中连续分布的多个比特块。

在一些实施例中,mb4为所述子矩阵的行数;nb4为所述子矩阵的列数;所述mb4和所述nb4满足:(nb4-mb4)/nb4==R0,其中,所述R0是大于0.5且小于1的实数,R0的取值为大于0.5且小于1的实数,这样的限定可以确保高码率编码的编码性能。

若所述mb4等于所述mb0,则所述nb4等于所述nb0,若所述mb4等于所述mb1,则所述nb1等于所述nb1。

在一些实施例中,所述基础矩阵中第二类元素的位置至少有预设比例的元素位置与参考矩阵中‘1’的位置相同,所述参考矩阵从以下矩阵中截取;所述参考矩阵截取以下矩阵的行索引号构成集合Set0,且所述参考矩阵截取以下矩阵的列索引号构成集合Set1;

所述集合Set0包括的元素数目为mb,所述集合Set1包括的元素数目为nb,nb大于mb。

这里的预设比例的取之可为80%、75%或60%或85%等。

如图4所示,本实施例提供一种准循环LPDC编码装置,包括:

编码单元110,用于基于一个基础矩阵和一个扩展因子值,对待编码信息进行准循环LDPC编码,得到LDPC编码输出序列;其中,所述基础矩阵中包括:第一类元素和第二类元素;所述基础矩阵中包括至少一个子矩阵;所述子矩阵的第i行的行重为g0,所述g0的取值位于预设范围内;所述子矩阵的第j行的行重不小于g0与Δg之和,其中,所述j不等于所述i;所述i和j均是所述子矩阵的行索引号,所述Δg是大于预设值的正整数,所述行重为所述子矩阵对应行所述第二类元素的个数;

速率匹配单元120,用于从所述LDPC编码输出序列中选出速率匹配输出序列。

本实施例所述装置可为实现前述方法的装置,可用于发送端的装置。在本实施例中所述编码单元110和速率匹配单元120都可对应于处理器或处理电路。所述处理器可包括中央处理器(CPU)、数字信号处理(DSP)、应用处理器(AP)、微处理器(MCU)或可编程阵列(PLC)等。所述处理电路可包括专用集成电路(ASIC)。所述编码单元110还可对应于专用的编码器等。所述处理器或处理电路,可通过特定指令的执行,实现上述操作。

在本实施例中、编码单元110和速率匹配单元120可对应于同一个处理器或处理电路,也可以对应于不同的处理器或处理电路。当这些功能单元对应于不同的处理器时,这些处理器之间相互连接,可以实现上述操作,从而进行灵活编码的同时,确保编码性能。

所述子矩阵为mb0行nb0列的矩阵,所述处理器或处理电路可以根据函数关系,计算得到所述子矩阵,再根据子矩阵拓展得到基础矩阵。当然,所述处理或处理电路,也可以先获得到基础矩阵,再确定出所述基础矩阵中是否可以选择出满足上述要求的子矩阵。

所述子矩阵为mb0行nb0列的矩阵,所述i等于0,且所述子矩阵为:

其中,所述A为mb0行(nb0-mb0)列的矩阵,所述B是1行1列的矩阵,所述C是(mb0-1)行1列的矩阵,所述D是1行(mb0-1)列的矩阵,所述E是(mb0-1)行(mb0-1)列的矩阵;所述A中首行的行重最小且首行的行重等于g0-1;所述B中包括1个所述第二类元素;所述C包括(mb0-1)个所述第一类元素;所述D包括:(mb0-1)个所述第一类元素;所述E是下三角结构或者双对角结构。

在一些实施例中,所述子矩阵为mb1行nb1列的矩阵,所述i等于(mb1-1),且所述子矩阵为:

其中,所述A0是(mb1-1)行(nb1-mb1)列的矩阵,所述A1是(mb1-1)行(mb1-1)列的矩阵,所述A2是(mb1-1)行1列的矩阵,所述A3是1行nb1列的矩阵。

可选地,所述A1是下三角结构或双对角结构,当所述A1为双对角结构是,则所述mb1等于以下整数之一:3、4、5。

可选地,所述A3的最后一个元素为所述第二类元素。

在另一个实施例中,所述子矩阵为:[B0B1],其中,所述B0为mb2行kb2列的矩阵,所述B1是mb2行mb2列的矩阵,所述B1是双对角结构;其中,mb2是所述子矩阵的行数,nb2是所述子矩阵的列数,kb2=nb2–mb2。

进一步地,所述矩阵B1中最大行重所在行的元素在所述基础矩阵中的行索引号等于所述i。

在另一个实施例中中,所述i等于0,且所述子矩阵为:

所述C0为1行nb3列的矩阵,所述C1是(mb3-1)行(kb3+1)列的矩阵,所述C2是(mb3-1)行(mb3-1)列的矩阵;所述C2是下三角结构或者双对角结构;其中,所述mb3是所述子矩阵的行数,所述nb3是所述子矩阵的列数,kb3=nb3–mb3。

在一些实施例中,所述基础矩阵为mb行nb列的矩阵,所述基础矩阵为[D0 D1],其中,所述D0是mb行kb列的矩阵,所述D1是mb行mb列的矩阵;所述D1中第i行的所有第二类元素在所述基础矩阵中第i行的的列索引号形成集合Cset;

所述LDPC编码输出序列包括:nb个比特块;

所述nb个比特块包括:比特块索引号为0至(kb-1)的kb个系统比特块和比特块索引号为kb至(nb-1)的mb个校验比特块;

所述速率匹配单元120,具体用于对所述LDPC编码输出序列按预设交织序列进行交织,获得交织后输出序列,其中,所述预设交织序序列的第kb至第(kb+t-1)个元素等于所述集合Cset中的元素值;所述预设交织序列包括的元素数目小于或等于所述nb;所述t是所述集合Cset的元素数目;对完成交织后的所述交织后输出序列进行选择,获得所述速率匹配输出序列。

在另一些实施例中,所述基础矩阵为mb行nb列的矩阵,所述基础矩阵为[D0 D1],其中,所述D0是mb行kb列的矩阵,所述D1是mb行mb列的矩阵;所述D1中第i行的所有第二类元素在所述基础矩阵中第i行的的列索引号形成集合Cset;所述编码单元120,具体用于对所述基础矩阵进行矩阵的行列移位,获得修正后的基础矩阵,其中,所述修正后的基础矩阵的第kb列至第(kb+t-1)列等于所述集合Cset中所有元素指示所述基础矩阵中的列;所述修正后的基础矩阵的第(kb+t)列至第(kb+t1-1)列等于集合Cset’中所有元素指示所述基础矩阵的列,其中,所述集合Cset’是集合{kb,kb+1,…,(kb+t1-1)}与所述集合Cset的差集,t1是所述集合Cset中的最大元素值减去(nb-mb)获得的数值,所述t是所述集合Cset的元素数目;采用所述修正后的基础矩阵对待编码信息序列进行准循环LDPC编码。

此外,所述子矩阵中元素在所述基础矩阵中的行索引号形成集合Rset0,所述子矩阵中元素在所述基础矩阵中的列索引号形成集合Cset0;其中,所述行索引号和所述列索引号连续分布。

在一些实施例中,所述集合Rset0为0到(mb’-1)构成的集合,所述集合Cset0为0到(nb’-1)构成的集合,其中,mb’是所述集合Rset0的元素数目,nb’是所述集合Cset0的元素数目。

此外,所述速率匹配单元120,具体用于去除所述待编码信息序列的E个比特块,基于所述待编码信息序列中的剩余编码信息序列确定出所述速率匹配输出序列;其中,所述E个比特块对应于所述基础矩阵的列索引号构成集合T0;所述子矩阵中第i行中第二类元素的列索引号构成集合T1;其中所述集合T0是所述集合T1的子集。

当mb4为所述子矩阵的行数,nb4为所述子矩阵的列数;所述mb4和所述nb4满足:(nb4-mb4)/nb4==R0,其中,所述R0是大于0.5且小于1的实数。这样可以确保编码的鲁棒性。

在一些实施例中,所述子矩阵的列行数差等于所述基础矩阵的列行数差,且所述子矩阵的列数大于所述子矩阵的行数,所述基础矩阵的列数大于所述基础矩阵的行数。

此外,所述g0的取值位于预设范围内,包括:所述g0是不大于5的正整数;所述预设值等于3或4。

在一些实施例中,所述基础矩阵中第二类元素的位置至少有预设比例的元素位置与参考矩阵中‘1’的位置相同,所述参考矩阵从以下矩阵中截取;所述参考矩阵截取以下矩阵的行索引号构成集合Set0,且所述参考矩阵截取以下矩阵的列索引号构成集合Set1;

所述集合Set0包括的元素数目为mb,所述集合Set1包括的元素数目为nb,nb大于mb。

这里的预设比例的取之可为80%、75%或60%或85%等。

以下结合上述任意实施例提供几个具体示例:

示例1:

本示例提供一种准循环LDPC编码的方法,包括以下步骤:

步骤1、从存储模块中获取准循环LDPC编码所用的一个基础矩阵和一个扩展因子值;所述基础矩阵中包含用于指示全零方阵的元素和用于指示单位阵循环移位的移位步长的元素,所述扩展因子值用于指示所述全零方阵或所述单位阵的行数,所述扩展因子值是大于0的整数。这里的的存储模块对应于前述的,具体可对应于存储介质。

所述基础矩阵中子矩阵。该子矩阵包括的元素在基础矩阵中的行索引号够为集合Rset;该子矩阵包括的元素在基础矩阵中的列索引号构成集合Cset。子矩阵的最小行重为g0,其中,g0是大于1且小于5的整数,子矩阵的其他行的行重等于5或大于5。所述集合Rset是所述基础矩阵的所有行索引号所构成集合的一个子集,所述集合Cset是所述基础矩阵的所有列索引号所构成集合的一个子集。所述子矩阵的列数减去所述子矩阵的行数所获得的数值小于或等于所述基础矩阵的列数减去所述基础矩阵的行数所获得的数值;

步骤2、基于所述一个基础矩阵和一个扩展因子值,对待编码信息序列进行准循环LDPC编码,得到LDPC编码输出序列;

步骤3、从所述LDPC编码输出序列中,选择出速率匹配输出序列。

步骤1中,所述基础矩阵为如下:

进一步地,所述子矩阵是一个mb0行nb0列的矩阵Hb0mb0×nb0,包括:

其中,A为A mb0行(nb0-mb0)列的矩阵,B是1行1列的矩阵,C是(mb0-1)行1列的矩阵,D是1行(mb0-1)列的矩阵,E E是(mb0-1)行(mb0-1)列的矩阵。A中首行的行重最小且首行的行重等于g0-1,B中包括1个用于指示单位阵循环移位的移位步长的元素,D中包括(mb0-1)个用于指示全零方阵的元素,E是下三角结构或者双对角结构。

在图5中所述的一个基础矩阵的示例,所处存储模块中存储所述基础矩阵,所述基础矩阵是mb=18行nb=26列的矩阵,对应的最大扩展因子值为1024,矩阵中的取值为‘-1’元素是指用于指示全零方阵的第一类元素,对应的准循环LDPC码的奇偶校验矩阵的一个全零方阵的子块,而其他元素都是指用于指示单位阵循环移位的移位步长的元素。

行索引号为集合Rset={0,1,2,3,4}且列索引号为集合Cset={0,1,2,3,4,5,6,7,8,9,10,11,12},所述行索引号为集合Rset且列索引号为集合Cset所索引的子矩阵为mb0=5行nb0=13列的子矩阵。如图5所示的子矩阵401,其中所述子矩阵中包括:最小行重为g0,其中g0都小于所述子矩阵中的其他行。而所述子矩阵中,包括mb0=5行(nb0-mb0)=8列的Amb0×(nb0-mb0)404,1行1列的B 402,(mb0-1)=4行1列的C 406,1行(mb0-1)=4列的D 403,(mb0-1)=4行(mb0-1)=4列的E 405,E是下三角结构,所述下三角结构是:指矩阵中任意行索引号和任意列索引号所确定的元素在所述列索引号大于所述行索引号时都为第一类元素的矩阵。

所述基础矩阵的行重分布设计的有益效果在于:首先有利于准循环LDPC编码译码性能较好,由于高码率的准循环LDPC编码用到的基础矩阵基本完全和所述的子矩阵有关,所述子矩阵设计可以保证性能较好;如图5所示的基础矩阵一个示例。在图5所示的基础矩阵示例的基础上增加首行行重,形成如图6所示的基础矩阵。图6所示的基础矩阵的子矩阵502的首行501的行重相对于图5中的子矩阵401的首行的行重增加了。

图7为图5和图6所示的基础矩阵的进行编码后的性能比对图。图7的横坐标表示的为信噪比(SNR);纵坐标为块误码率(BLER)。图7中实线表示的利用图5所示基础矩阵编码的性能变化曲线,虚线表示的为利用图6所示的基础矩阵编码的性能变化曲线。产生如图7所示的性能为,待编码信息的长度为1024,对应扩展因子值为128,所述存储模块中保存的一组扩展因子值为{4,6,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,256,320,384,448,512,640,768,896,1024}。所述准循环LDPC编码过程中,基于所述一个基础矩阵和一个扩展因子值Z=128,对待编码信息序列进行准循环LDPC编码,得到LDPC编码输出序列。由于所述基础矩阵是对应最大扩展因子为Zmax=1024,需要转换成扩展因子值为Z=128的基础矩阵,才能进行准循环LDPC编码,所述转换方法为如下公式:

其中,所述式子中,(hijb)uniform是所述基础矩阵的第i行第j列元素值,(hijb)modified是所述转换后的基础矩阵(即对应于扩展因子值为128的基础矩阵)中第i行第j列元素值,计算公式表示对实数x进行向下取整(即取小于或等于x的最大整数)。从而可以获得用于当前准循环LDPC编码所使用的基础矩阵,基于所述修正后的基础矩阵进行准循环LDPC编码,获得长度为nb×Z=26×128=3328比特的LDPC编码输出序列,总共有26个比特块,所述比特块的长度为128(与扩展因子值相等)比特,如图5所示的400,第0个连续和基础矩阵的第0列相关,第1个连续和基础矩阵的第1列相关,第2个连续和基础矩阵的第2列相关,后面依次类推。所述速率匹配过程中,从所述LDPC编码输出序列中,选择出速率匹配输出序列。所述图7性能示例中的码率为8/9,所以可以知道速率匹配输出的速率匹配输出序列的长度为1024/8×9=1152比特。所述速率匹配过程中,是从第Z×2=256比特(首比特为第0比特)开始进行顺序选择。

准循环LDPC编码后,进行速率匹配不需要对准循环LDPC编码输出的LDPC编码输出序列的校验比特进行交织,直接从对应起始比特位置开始进行顺序选择,从而减少交织操作,发送端和接收端的时延较少,有益于增加通信系统的鲁棒性。由于在速率匹配过程中,对应于首行的校验比特块(对应图5中的410,LDPC编码输出序列的第8个比特块)必须得传输,可以保证性能比较好,由于此时所述第8个比特块已经位于比较靠前(所有校验比特中的最前面),所以在进行顺序选择时无需再进行交织到最前面,可以减少交织模块,从而降低速率匹配时延,提高系统的反应速度,进而提高系统的鲁棒性。

进一步地,所述C中包括(mb0-1)=4个用于指示全零方阵的元素,如图5所示,基础矩阵示例的第8列中的406,其中所有元素值都等于-1(即用于指示全零方阵的元素)。所述的C中也不限于所述都等于-1,所述C包含w个非-1元素(用于指示单位阵循环移位的移位步长的元素),其中,w是大于0小于4的整数,如下所述基础矩阵示例中,所述子矩阵中的C为2个非-1元素,即w=2。

所述A中除了首行以外其他任意行的行重都大于nb0-mb0-3,所述nb0-mb0-3=5,及所述A中非首行的行重大于5。所述行重是所述矩阵中指定行中的用于指示单位阵循环移位的移位步长的元素的数目,所述子矩阵只是一种优选方案。所述约束基础矩阵中的子矩阵的行重,即需要增加除了最轻行重以外的其他行的行重,有益效果在于:可以增加长码长的性能,保证长码长的性能较优。

可选地,所述集合Rset是由大于或等于0且小于所述集合Rset的元素数目的所有整数构成的集合,所述集合Cset是由大于或等于0且小于所述集合Cset的元素数目的所有整数构成的集合。从上述基础矩阵示例中可以看出,集合Rset={0,1,2,3,4},集合Cset={0,1,2,3,4,5,6,7,8,9,10,11,12}。所述子矩阵直接对应所述基础矩阵的一部分连续元素块(连续行索引号和连续列索引号共同索引获得),有益效果在于:可以使得所述准循环LDPC编码实现比较简单,无需其他操作,延时较少,可以增加系统通信鲁棒性。所述基础矩阵中由行索引号为集合Rset和列索引号为集合Cset共同索引的子矩阵只是一种优选方案,当然在其他基础矩阵设计中,集合Rset中航索引号不一定是连续的和集合Cset的列索引号也不一定是连续的。

可选地,以上所述的mb0和nb0满足:(nb0-mb0)/nb0==R0,其中R0是大于0.5且小于1的实数。以上所述基础矩阵示例中的R0等于(nb0-mb0)/nb0=8/13=0.6154,所述R0的确定也是一个优选方案,所述R0不限于所述基础矩阵示例的值,一般来说R0越小,说明在实际编码码率越低情况下就可以实现最高吞吐量的要求。所述的子矩阵可以认为是所述准循环LDPC码的核心(core)矩阵,它可以支持任意大于或等于R0且小于1的码率,但是在接收端译码时需要采用所述子矩阵(核心矩阵)进行译码。对所述子矩阵(核心矩阵)的约束的有益效果在于:即约束子矩阵的行数mb0和列数nb0,可以使得所述子矩阵相对比较小,在进行高码率准循环LDPC译码时,进行更新的行数比较少,即计算复杂度比较少,译码速度快,峰值译码吞吐量较高。

所述基础矩阵中除了所述子矩阵以外的元素是基于所述子矩阵的基础上进行扩展获得。如上所述基础矩阵的设计过程中,其实是先设计码率为R0的子矩阵,然后再由所述子矩阵逐步扩展出更低码率的基础矩阵元素。在准循环LDPC编码的基础矩阵设计时,子矩阵是为了高码率性能比较好,由于在统一基础矩阵设计时,高码率的基础矩阵是嵌在低码率的基础矩阵中,如图3所示,基础矩阵为mb行nb列的矩阵302,而子矩阵为所述基础矩阵的左上mb0行nb0列所构成的矩阵301,基础矩阵中除了所述子矩阵外的其他元素303(基础矩阵中的其他空白部分)都是在子矩阵的基础上扩展而来,以支持更低码率设计,有益效果在于:可以使得高码率的准循环LDPC码性能良好,而扩展出来的元素是支持更低码率的,并不影响子矩阵的性能,只要子矩阵设计好了,就可以保证高码率性能优异,由于低码率的矩阵比较大,所以子矩阵对低码率性能影响较小,从而可以保证在连续码率下的性能良好。

可选地,还有一个基础矩阵示例如图8所示,所述基础矩阵示例和以上所述的基础矩阵示例维数是一样的,本示例基础矩阵也是mb=18行nb=26列的矩阵,对应的最大扩展因子值为1024。其中,行索引号为集合Rset={0,1,2,3,4}且列索引号为集合Cset={0,1,2,3,4,5,6,7,8,9,10,11,12},所述行索引号为集合Rset且列索引号为集合Cset所索引的子矩阵为mb0=5行nb0=13列的子矩阵,如图8所示的子矩阵701。所述子矩阵中,包括(mb0-1)=4行1列的C 706,(mb0-1)=4行(mb0-1)=4列的E 705,E是双对角结构,所述双对角结构是指:矩阵中,行索引号为0且列索引号为0所确定的元素是非-1元素,并且在列索引号为i情况下行索引号为i和(i+1)所确定的2个元素都是非-1元素。如图9是不同于图8所示的另一个基础矩阵。图9所示的基础矩阵的子矩阵802的首行802的行重增加了。图10是相应的性能对比,可以发现增加对应所述的首行的行重性能下降(性能曲线中,实线为图8所示基础矩阵示例,虚线为图9基础矩阵对比示例),可以发现本示例提供的方案的性能较好。图10的横坐标也为信噪比(SNR),纵坐标为块误码率(BLER)。图7和图10中的dB均为单位分贝。

示例2:

本示例还提供一种准循环LDPC编码方法的基础矩阵示例,所述基础矩阵包括一个子矩阵,该子矩阵的满足的条件可以参见示例1,在此就不重复了。在本示例中,所述子矩阵是一个mb1行nb1列的矩阵,可通过如下函数关系得到:

其中,A0是(mb1-1)行(nb1-mb1)列的矩阵,A1是(mb1-1)行mb1列的矩阵,A2是1行nb1列的矩阵。A1是下三角结构,A2的行重为g0,A2中的最后一个元素是用于指示单位阵循环移位的移位大小的元素。所述对基础矩阵的子矩阵进行部分约束,例如较优部分的矩阵(对应于A1)是下三角结构,有益效果在于:使得LDPC编码实现非常简单,直接计算出对应校验比特,无需联合其他未知校验比特进行计算,所以编码简单以及速度较快,可以提高准循环LDPC编码速度,提高编码效率。

图11是本示例中的一个基础矩阵示例,所述基础矩阵示例是一个mb=23行nb=35列的基础矩阵,对应的最大扩展因子值为Zmax=512,其中,行索引号为集合Rset={0,1,2,3,4}且列索引号为集合Cset={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},根据行索引号为集合Rset且列索引号为集合Cset所索引的mb1=5行nb1=17列的子矩阵。如图11所示子矩阵1001,包括:(mb1-1)=4行(nb1-mb1)=12列的A0 1002。如图11中的A1 1003为(mb1-1)=4行mb1=5列的矩阵。如图11中A2 1004为1行nb1=17列的矩阵。A1是下三角结构,所述下三角结构是指矩阵中任意行索引号和任意列索引号所确定的元素在所述列索引号大于所述行索引号时都等于-1。所述A2的行重为g0,g0=3,也是整个所述子矩阵中的最小行重。

在一些实施例中,所述A0和A1构成的(mb1-1)=4行nb1=17列A3,A3=[A0 A1]。如图11中的A1 1002和A2 1003合并一起构成的矩阵,所述A3中任一行的行重都大于或等于nb1-mb1-2=10。如图11所示的基础矩阵示例中,A3的行重分布为{10,12,11,10}。所述子矩阵的行重,即需要增加除了最轻行重以外的其他行的行重(即A3的行重较重),有益效果在于:可以增加长码长的性能,保证长码长的性能较优。

所述基础矩阵中的第(mb2-1)行元素中列索引号为(nb-mb)至nb-1的所有元素中只有列索引号为(nb-mb+mb2-1)的元素是用于指示单位阵循环移位的移位大小的元素,所述mb2是所述基础矩阵中行重等于所述最小行重为g0的行索引号,且mb2是集合Rset中的一个元素值。从图11所示的基础矩阵示例中可以看出,所述的mb2等于5,即所述基础矩阵中的第(mb2-1)=4行元素中列索引号为(nb-mb)=12至nb-1=34的所有元素中只有列索引号为(nb-mb+mb2-1)=16的元素是用于指示单位阵循环移位的移位大小的元素。所述列索引号为(nb-mb)至nb-1其实是对应准循环LDPC码的校验比特部分,最轻行重的行中,参与本行校验方程的校验比特部分中只有第(mb2-1)=4个元素(基础矩阵中是第(nb-mb+mb2-1)=16元素)是用于指示单位阵循环移位的移位大小的元素,目的是让本行校验比特更容易实现,以及经过以上所述的矩阵行移位和矩阵列移位后不影响矩阵的编码特性。

所述集合Rset是由大于或等于0且小于所述集合Rset的元素数目的所有整数构成的集合,即以上所述的集合Rset的数目为5,集合Rset={0,1,2,3,4};所述集合Cset是由大于或等于0且小于所述集合Cset的元素数目的所有整数构成的集合,即以上所述的集合Rset的数目为17,列索引号为集合Cset={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}。所述子矩阵直接对应所述基础矩阵的一部分连续元素块(连续行索引号和连续列索引号共同索引获得),有益效果在于:可以使得所述准循环LDPC编码实现比较简单,无需其他操作,延时较少,可以增加系统通信鲁棒性。

可选地,以上所述的mb0和nb0满足:(nb0-mb0)/nb0==R0,R0=12/17=0.7059。所述的子矩阵可以认为是所述准循环LDPC码的核心矩阵,它可以支持任意大于或等于R0且小于1的码率,但是在接收端译码时需要采用所述子矩阵(核心矩阵)进行译码。对所述子矩阵的约束的有益效果在于:即约束子矩阵的行数mb0和列数nb0,可以使得所述子矩阵相对比较小,在进行高码率准循环LDPC译码时,进行更新的行数比较少,即计算复杂度比较少,译码速度快,峰值译码吞吐量较高。

本示例中,所述基础矩阵中除了所述子矩阵以外的元素是基于所述子矩阵的基础上进行扩展获得。

示例3

对于示例2中的基础矩阵示例,基于所述一个基础矩阵和一组扩展因子值Zset={8,16,32,64,128,256,512},若待编码信息序列长度为K=1536比特,那么需要采用的编码扩展因子值为Z=128(一般是从Zset中获取大于或等于K/(nb-mb)的最小值作为编码使用的扩展因子值,所述K是待编码信息序列的比特数目,nb是所述基础矩阵的列数,mb是所述基础矩阵的行数),获取编码使用的扩展因子值为128。由于所述基础矩阵示例是针对与扩展因子Zmax为512的,需要将基础矩阵修正为对应扩展因子值为Z=128的新基础矩阵,所述基础矩阵修正方法如下:

式中的mod(x,y)是指x对y求余操作,例如mod(133,128)=5或mod(100,128)=100等。基于所述新基础矩阵和扩展因子值Z=128,,对待编码信息序列进行准循环LDPC编码,得到LDPC编码输出序列。所述准循环LDPC编码的基础矩阵中,每个元素相当于一个子方阵,每个子方阵的维数等于扩展因子值Z=128,所述基础矩阵总共有35列,所以对应准循环LDPC码的基础矩阵中每行有35个子方阵块;对应的,所述LDPC编码输出序列也包括35个比特块(包括12个系统比特块对应基础矩阵的前12列,和23个校验比特块对应于基础矩阵的后23列),每个比特块的长度为Z=128比特,一般来说,由于准循环LDPC码的结构化特性,对于处于同一个比特块中的Z=128比特的可靠性是相同的,所以一般进行交织的话,是按比特块为单位进行交织的,比特块的长度等于扩展因子值,在本示例中扩展因子值Z=128,所以本示例中的比特块的长度都等于128。

在速率匹配过程中,一般需要对LDPC编码输出序列进行交织,所述交织方法包括:

1、对LDPC编码输出序列的校验比特块单独进行交织;

2、对对LDPC编码输出序列的系统比特块单独进行交织;

3、对LDPC编码输出序列进行交织。所述对所述LDPC编码输出序列中的校验比特序列进行交织获得交织后校验比特序列,所述交织后校验比特序列中,所述LDPC编码输出序列的校验比特序列中的第(mb2-1)=4个比特块位于所述交织后校验比特序列中的首位;然后进行比特选择获得所述速率匹配输出序列,所述比特选择从第2×Z=256比特开始进行选择,即从第3个比特块进行选择;其中,所述比特块的比特数目等于所述扩展因子值,所述mb2是所述基础矩阵中行重等于所述最小行重为g0的行索引号,且mb2是集合Rset中的一个元素值,即所述的mb2=5。

或者,在速率匹配过程中,对整个LDPC编码输出序列进行交织,所述交织后输出序列中,所述LDPC编码输出序列中校验比特的第(mb2-1)=4个比特块在所有其他校验比特块的前面,这样可以使得速率匹配时,顺序比特选择优先选择所述的LDPC编码输出序列中校验比特的第(mb2-1)=4个比特块。

所述的速率匹配过程中,将第(mb2-1)个比特块,置于校验比特的最前面,在进行速率匹配过程中,有益效果在于:由于是采用从某一起始比特开始进行顺序选择的,所以在不管在任何码率下,所述为最前面比特块永远是优先被选择中的,以保证准循环LDPC编码的性能。

示例4

本示例基于示例2所述的基础矩阵示例,在编码过程中,包括:对所述基础矩阵进行修正获得新基础矩阵,所述修正方法包括:先进行矩阵列移位然后进行矩阵行移位;所述修正方法还可包括:先进行矩阵行移位然后进行矩阵列移位,获得所述新基础矩阵。

所述矩阵列移位是将基础矩阵的第(nb-mb+mb3-1)=16列移至第(nb-mb)=12列,如图12所示的1101,然后将基础矩阵的第(nb-mb)=12列至第(nb-mb+mb3-2)=15列顺序后移1列到第{13,14,15,16}列,如图12所示1104;所述矩阵行移位是将基础矩阵的第(mb3-1)=4行移至第0行,如图12所示1102,然后将基础矩阵的第0行至第(mb3-2)=3行顺序下移1行到第{1,2,3,4}行,如图12所示1103。其中,所述mb3是所述基础矩阵中行重等于所述最小行重为g0的行索引号,且mb3是集合Rset中的一个元素值,可以知道所述的mb3等于5;进行矩阵列移位和矩阵行移位后获得的新基础矩阵如图11所示的1105。从图12所示的新基础矩阵1105来看,可以发现其结构和示例1的基础矩阵示例是一样的,如图5所示的基础矩阵示例,只是本示例的新基础矩阵的系统列数为kb=12(nb-mb=12)。采用所述新基础矩阵对待编码信息序列进行准循环LDPC编码。所述将修正基础矩阵方法,所实现的效果和以上所述的交织方法是一致的,即将第(mb3-1)=4个比特块,置于校验比特的最前面,在进行速率匹配过程中,有益效果在于:由于是采用从某一起始比特开始进行顺序选择的,所以在不管在任何码率下,所述为最前面比特块永远是优先被选择中的,以保证准循环LDPC编码的性能;由于新基础矩阵本身已经进行列和行置换,所以在进行速率匹配时就无需再进行交织操作,可以使得编码端减少交织操作,节省发送时间提高效率。如上所述的进行的矩阵列移位和矩阵行移位,也可以先进行矩阵行移位然后进行矩阵列操作,效果相同,不影响本专利保护范围;以及,如上所述的矩阵列移位和矩阵行移位操作只是针对矩阵的某一行或者某一列来移位1个比特块,如果需要移位多个比特块的话,可以进行多次矩阵列移位和矩阵行移位操作来实现,本示例不限于实行一次矩阵列移位和矩阵行移位操作,可以进行多次操作。

示例5:

本示例基于示例2所述的基础矩阵示例,编码步骤如下:

步骤1、从存储模块中获取准循环LDPC编码所用的一个基础矩阵和一个扩展因子值;所述存储模块存储的一个基础矩阵如示例2所述,存储的一组扩展因子值为Zset={4,6,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,92,224,256,320,384,448,512,640,768,896,1024},获取的一个扩展因子值为Z=40。

步骤2、基于所述一个基础矩阵和一个扩展因子值,对待编码信息序列进行准循环LDPC编码,得到LDPC编码输出序列;其中,包括:1).对所述基础矩阵进行修正,获得对应于扩展因子值为Z=40的编码基础矩阵,所述修正方法如下:

获得编码基础矩阵如图13所示。

2).基于所述编码基础矩阵和一个扩展因子值Z=40,对长度为Z×12=480比特的待编码信息序列进行准循环LDPC编码,获得长度为Z×35=40×35=1400比特的LDPC编码输出序列,所述LDPC编码输出序列包括35个比特块,所述比特块的比特数目等于扩展因子值Z=40。

步骤3、先对所述LDPC编码输出序列包括35个比特块进行按比特块为单位进行交织,35个比特块的顺序索引序号{0,1,2,….,34}(索引编号为0至11是待编码信息序列中的12个比特块,索引编号为12至34是所述LDPC编码输出序列中校验比特块的23个比特块)变为交织索引号为{0,1,2,3,4,5,6,7,8,9,10,11,16,14,15,12,13,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34},从所述交织后的LDPC编码输出序列中,从第2个比特块开始进行选择,选择出速率匹配输出序列,即速率匹配输出序列小于或等于40×33=1320比特时,所述速率匹配输出序列是不会包括所述待编码的前2个比特块。其中,所述速率匹配过程中,所述速率匹配输出序列不包括所述待编码信息序列的E=2个比特块,所述E=2个比特块对应于基础矩阵的列索引号构成集合T0={0,1};所述基础矩阵中子矩阵中行重等于所述最小行重为g0的行中所有用于指示单位阵循环移位的移位大小的元素的列索引号构成集合T1={0,1,16};可以发现,所述集合T0是所述集合T1的子集。有益效果在于:由于在速率匹配过程中,一般是按传输版本号获得比特选择的起始位置,待编码信息序列中有些比特(或比特块)是不传输的,即使在首次数据传输中也不传,所以在准循环LDPC编码的基础矩阵设计时需要将所述比特块对应的基础矩阵最小行重参与到所述比特块校验中,并且让其有一定的保护作用,以增加准循环LDPC码的性能,进而提高通信系统的鲁棒性。

示例6:

本示例提供一种准循环LDPC编码的基础矩阵示例,所述基础矩阵示例是一个mb=23行nb=35列的基础矩阵,对应的最大扩展因子值为Zmax=512,其中,行索引号为集合Rset={0,1,2,3,4,5}且列索引号为集合Cset={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17},根据行索引号为集合Rset且列索引号为集合Cset所索引的mb1=6行nb1=18列的子矩阵,所述基础矩阵示例如图14所示。所述子矩阵为如图15所示。

若行索引号集合Rset重新排序为{1,0,3,2,4,5},则所述子矩阵变为如图16所示。可发现所述子矩阵中包括最小行重为g0=3。

示例7:

本示例提供一种准循环LDPC编码的基础矩阵示例,所述基础矩阵示例是一个mb=25行nb=37列的基础矩阵,对应的最大扩展因子值为Zmax=512,其中,行索引号为集合Rset={0,1,2,3,4}且列索引号为集合Cset={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},根据行索引号为集合Rset且列索引号为集合Cset所索引的mb1=5行nb1=17列的子矩阵,所述基础矩阵示例如图17所示,其中所述mb1=5行nb1=17列的子矩阵为如图17所示的1701;所述子矩阵为如图17所示,且所述子矩阵为:

其中,所述A0是(mb1-1)=4行(nb1-mb1)=12列的矩阵1702,所述A1是(mb1-1)=4行(mb1-1)=4列的矩阵1703,所述A2是(mb1-1)=4行1列的矩阵1704,所述A3是1行nb1=17列的矩阵1705,所述A1是下三角结构,所述A3的最后一个元素为所述第二类元素。所述子矩阵示例中,i=4,即所述子矩阵中第i=4行最轻,行重为所述第i=4行中第二类元素(矩阵为非-1元素)的个数,如本示例第i=4行的行重为3。

示例8:

本示例提供一种准循环LDPC编码的基础矩阵示例,所述基础矩阵示例是一个mb=25行nb=37列的基础矩阵,对应的最大扩展因子值为Zmax=512,其中,行索引号为集合Rset={0,1,2,3,4}且列索引号为集合Cset={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16},根据行索引号为集合Rset且列索引号为集合Cset所索引的mb1=5行nb1=17列的子矩阵,所述基础矩阵示例如图18所示,其中所述mb1=5行nb1=17列的子矩阵为如图18所示的1801;所述子矩阵为如图19所示,且所述子矩阵为:

其中,所述A0是(mb1-1)=4行(nb1-mb1)=12列的矩阵1901,所述A1是(mb1-1)=4行(mb1-1)=4列的矩阵1902,所述A2是(mb1-1)=4行1列的矩阵1903,所述A3是1行nb1=17列的矩阵1904,所述A1是双对角结构,所述A3的最后一个元素为所述第二类元素。所述子矩阵示例中,i=4,即所述子矩阵中第i=4行最轻,行重为所述第i=4行中第二类元素(矩阵为非-1元素)的个数,如本示例第i=4行的行重为3。

以及还提供一种基础矩阵示例,如图20所示,子矩阵2001为基础矩阵中的第0行到第3行以及第0列到第15列构成,即所述子矩阵示例为mb1=4行nb1=16列。当然所述子矩阵也可以为3行的,在此不再赘述。

示例9:

本示例提供一种准循环LDPC编码的基础矩阵示例,所述基础矩阵示例是一个mb=25行nb=37列的基础矩阵,对应的最大扩展因子值为Zmax=512,其中,行索引号为集合Rset={0,1,2,3}且列索引号为集合Cset={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},根据行索引号为集合Rset且列索引号为集合Cset所索引的mb2=4行nb2=16列的子矩阵,所述基础矩阵示例如图21所示的2102,其中所述mb2=4行nb2=16列的子矩阵为如图21所示的2101;所述子矩阵为如图21所示的2101,且所述子矩阵为:

[B0 B1],

其中,所述B0 2103为mb2=4行kb2=12列的矩阵,所述B1 2104是mb2=4行mb2=2列的矩阵,所述B1是双对角结构;其中,kb2=nb2–mb2=16-4=12。所述子矩阵中,i=3,即所述子矩阵中第i=3行最轻,行重为所述第i=3行中第二类元素(矩阵为非-1元素)的个数,如本示例第i=3行的行重为4。

以及还提供一种基础矩阵示例,如图22所示,子矩阵2201为基础矩阵中的第0行到第3行以及第0列到第15列构成,即所述子矩阵示例为mb2=4行nb2=16列。所述子矩阵中,i=0,即所述子矩阵中第i=0行最轻,行重为所述第i=0行中第二类元素(矩阵为非-1元素)的个数,如本示例第i=0行的行重为4。

以及还提供一种基础矩阵示例,如图23所示,子矩阵2301为基础矩阵中的第0行到第3行以及第0列到第15列构成,即所述子矩阵示例为mb2=4行nb2=16列。所述子矩阵中,i=2,即所述子矩阵中第i=2行最轻,行重为所述第i=2行中第二类元素(矩阵为非-1元素)的个数,如本示例第i=2行的行重为5。以及,所述矩阵B1(图23所示的2304)中最大行重(等于3)的行索引号为2,即正好等于所述i。标号2304为组成子矩阵2301的另一个矩阵B0。

示例10:

本示例提供一种准循环LDPC编码的基础矩阵示例,所述基础矩阵示例是一个mb=25行nb=37列的基础矩阵,对应的最大扩展因子值为Zmax=512,其中,行索引号为集合Rset={0,1,2,3}且列索引号为集合Cset={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},根据行索引号为集合Rset且列索引号为集合Cset所索引的mb3=4行nb3=16列的子矩阵,所述基础矩阵示例如图24所示的2402,其中所述mb3=4行nb3=16列的子矩阵为如图24所示的2401;所述子矩阵为如图24所示的2401,且所述子矩阵为:

其中,所述C0为1行nb3=16列的矩阵2403,所述C1是(mb3-1)=3行(kb3+1)=13列的矩阵2404,所述C2是(mb3-1)=3行(mb3-1)=3列的矩阵2405;所述C2是下三角结构。以及提供一种基础矩阵示例,对应所述的矩阵C2是双对角结构,如图25所示,子矩阵2501中,i=0,即所述子矩阵中第i=0行最轻,行重为所述第i=0行中第二类元素(矩阵为非-1元素)的个数,如本示例第i=0行的行重为3。

示例11:

本示例提供一种准循环LDPC编码的基础矩阵示例,所述基础矩阵中第二类元素的位置至少有80%的元素位置与参考矩阵中‘1’的位置相同,所述参考矩阵从矩阵(如图26)中按行索引号为集合Set0且列索引号为集合Set1截取获得,如图26矩阵是一个26行38列的矩阵。其中一个例子,集合Set0={0,1,2,…,25},集合Set1={0,1,2,…,37},即所述参考矩阵示例与如图26中的矩阵相等,如图27给出一个基础矩阵示例,包括子矩阵2701,所述基础矩阵示例中第二类元素的位置有100%的元素位置与所述参考矩阵中‘1’的位置相同。当然也可以获得其他基础矩阵示例,其第二类元素的位置有80%(或者%80到%100之间)的元素位置与所述参考矩阵中‘1’的位置相同。以及还提供一种矩阵示例(如图28),所述参考矩阵从矩阵(如图28)中按行索引号为集合Set0且列索引号为集合Set1截取获得,如图28矩阵是一个34行50列的矩阵。其中一个例子,集合Set0={0,1,2,…,33},集合Set1={0,1,2,…,49},即所述参考矩阵示例与如图28中的矩阵相等。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本发明各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1