用于编码和译码LDPC码的方法和装置与流程

文档序号:17933348发布日期:2019-06-15 01:06阅读:169来源:国知局
用于编码和译码LDPC码的方法和装置与流程

本公开涉及通信领域,尤其涉及用于编码和译码数据的技术。



背景技术:

低密度奇偶校验(lowdensityparitycheck,ldpc)码是在前向纠错(forwarderrorcorrecting,fec)方案中使用的信道编码。ldpc码因其良好的性能而众所周知,近年来受到了极大的关注。这是因为它们能够实现接近香农极限的性能,能够设计出在硬件中实现高并行化的编码,以及它们对高数据速率的支持。因此,当前许多有效的电信标准都在其物理层fec方案中使用了ldpc码。ldpc码被认为是下一代通信系统的编码标准。

准循环低密度奇偶校验(quasi-cycliclow-densityparity-check,qc-ldpc)码基于不规则qc-ldpc矩阵的基矩阵,所述基矩阵由多个列和多个行构成,所述列可分成对应于打孔变量节点(即,与信息比特相对应的变量节点,所述信息比特被编码器使用,但不被发送至译码器,或者实质认为没有被所述译码器接收)的一个或多个列,以及对应于非打孔(not-punctured)变量节点的列,而所述行可分成高密度行(即行的权重高于第一权重)和低密度行(即行的权重低于第二权重,其中所述第二权重等于或小于所述第一权重)。

虽然现有的信道编码方法已经证明在各种场景中表现良好,但是针对提供利用适当的编码/译码资源实现高数据吞吐量的成熟解决方案的研究仍在继续进行。



技术实现要素:

根据本发明的第一方面,提供了一种方法,该方法包括提供用于编码或译码信息比特序列的不规则qc-ldpc码的基矩阵的元素(entry),其中所述元素表示不规则qc-ldpc矩阵的块,每个块表示循环移位矩阵或者零矩阵;将所述基矩阵的行分为第一集合和第二集合,其中所述第一集合的行具有比所述第二集合的行更高的权重;选择由所述第二集合的行形成的矩阵的多个列,其中将由选择的列形成的子矩阵的行分为不同的组,每组包括最大数量的正交行,其中所述选择基于多个不同的组;对应于未选择的列的信息比特被指示为打孔。

对不规则qc-ldpc矩阵的一个或多个高权重列相对应的信息比特进行打孔允许对于不同组的“剩余”正交子行(或行向量)的分层译码和对于高权重列的全并行译码(floodingdecoding)相结合,从而在译码期间实现高并行度,同时保持高质量的代码。因此,选择的列不被打孔,并尽量保持不同组的正交子行(或行向量)的数量尽可能高,以避免对应于过多列(例如,多于给定的阈值)的信息比特被打孔。

在这方面,应注意,在整个说明书和权利要求中使用的术语“循环矩阵”是指大小为n×n的二次(quadratic)矩阵,例如,单位矩阵,其中每个行向量相对于前一行向量向右被移位一个元素。此外,术语“循环尺寸”是指循环的大小n。此外,在整个说明书和权利要求中使用的术语“基矩阵”是指用移位值标记的阵列。所述基矩阵的每个移位值给出循环矩阵(例如,单位矩阵)将被循环移位(向右循环移位)的次数,以生成由所述基矩阵定义的qc-ldpc矩阵的对应子矩阵。

此外,应注意,qc-ldpc码和ldpc码经常交替使用,但是本领域技术人员可以理解它们的含义。在整个说明书和权利要求中使用的术语“权重”指基矩阵的行或列中用移位值标记的元素的数量,即基矩阵的行或列中不表示零矩阵(zeromatrices)的元素,其等于qc-ldpc矩阵的对应行和列中的“1”的数量。在这方面,应注意,在整个说明书和权利要求中使用的术语“权重(weight)”可以与具有相同或相似含义的术语“节点度”或“密度”互换。此外,在整个说明书和权利要求中使用的与信息比特(或对应的变量节点或对应的列)有关的术语“打孔”表示信息比特被编码器使用,但不被发送至译码器,或者实质认为没有被所述译码器接收。更进一步地,在整个说明书和权利要求中使用的与列、节点和信息比特有关的术语“对应”表示qc-ldpc矩阵的基图(tanner图)的列和变量节点/信息比特之间的映射。

此外,应注意,用于形成“矩阵”的值在涉及该矩阵的过程中不一定必须以矩阵(或阵列)形式物理存储或呈现,或者用于矩阵代数。在整个说明书和权利要求中使用的术语“矩阵”也可以指代具有指定的行索引和列索引的(整数)值的集合或者存储在(逻辑)存储器阵列中的(整数)值集合。此外,如果不涉及矩阵代数,或者如果适当地重新定义对应的矩阵代数例程(routine),那么甚至可以改变或自由选择行和列的概念。然而,在整个说明书和权利要求书中,遵循本领域中经常使用的数学概念和符号,它们应被理解为包含等同的数学概念和符号。

根据第一方面的方法,在第一种可能的实施方式中,未选择的列的数量是一个或两个。

因此,可能存在相对少量的、却具有相对高权重(例如,超过所选列的平均权重的两倍或三倍)的未选择的列,从而提供正交子行(或行向量)组的良好“连接性”,同时,因为该相对少量的列“分离”(或分成非重叠的集合或组)以实现在其余(被选)子行(或行向量)组中的正交性,在译码期间有效地允许高并行度。

根据第一方面本身或根据第一方面的第一实施方式,在所述方法的第二种可能的实施方式中,选择所述由所述第二集合的行形成的矩阵的多个列包括:按照权重对所述由所述第二集合的行形成的矩阵的所述列进行排序或分组,并选择具有低于阈值的权重的列。

因此,可以实现具有大量正交子行(或行向量)的组,这允许在译码期间更高的并行度。

根据第一方面本身或根据第一方面的第一或第二种实施方式,在所述方法的第三种可能的实施方式中,对于由所述第一集合的行形成的矩阵,该矩阵的列的子集所组成的矩阵具有双对角或三角结构。

因此,不规则qc-ldpc矩阵的高密度部分通过具有双对角或三角结构的奇偶校验部分来促进编码。这也提高了编码对速率自适应性的敏感度,因为从低密度部分移除的行数(以及对应的列数,例如,如果移除行将留下空列的话)允许改变码率,但不会实质触及高密度部分的编码/译码特性。在这方面,该方法还可以包括移除该不规则qc-ldpc矩阵的第二集合的多个行(和对应的列)以适应该不规则qc-ldpc的码率。

根据第一方面或根据第一方面的第一至第三种实施方式中的任何一种,在所述方法的第四种可能的实施方式中,对于由所述第二集合的行形成的矩阵,该矩阵的列的子集所组成的矩阵具有三角或单位矩阵结构。

因此,编码可以按两步过程执行,包括基于高密度部分的子列(或列向量)对输入序列进行编码,并基于低密度部分的子列(或列向量)对已编码的输出序列进行编码,从而利用类raptor(raptor-like)的编码过程。

根据第一方面本身或根据第一方面的第一至第四种实施方式中的任何一种,在所述方法的第五种可能的实施方式中,对于非打孔信息比特列对应的所述第一集合的行形成的矩阵,该矩阵的行分为不同的组,每组由正交行组成。

因此,可以在高密度集和低密度集中形成正交子行(或行向量)的组(或子集),这实现了译码期间的更高并行度。

根据第一方面本身或根据第一方面的第一至第五种实施方式中的任何一种,在所述方法的第六种可能的实施方式中,该方法还包括基于所提供的所述基矩阵的元素,确定对应于所述信息比特序列的码字;以及发送除了被指示为打孔的信息比特之外的码字。

因此,可以增加qc-ldpc的码率。

根据第一方面本身或根据第一方面的第一至第六种实施方式中的任何一种,在所述方法的第七种可能的实施方式中,该方法还包括基于所提供的所述基矩阵的元素和关于哪些信息比特为打孔的信息,对接收的信息比特序列进行译码,其中所述译码包括全并行(flooding)译码和分层译码操作,其中,层对应所述不同的组。

因此,可以在保持译码处理的高并行度的同时提高译码收敛(convergence)。在这方面,应注意,在整个说明书和权利要求中使用的术语“分层译码”是指一种译码过程,其中一个层的行(rowsofalayer)被并行处理,而多层(layers)(基本上)是被连续处理。

根据本发明的第二方面,提供了一种译码器,该译码器包括:非暂时性存储器,其存储不规则qc-ldpc码的基矩阵的元素,其中所述基矩阵的列分为第一集合和第二集合,所述第一集合包括一列或多列,所述第二集合的列形成包括正交行组的矩阵;其中,所述译码器被配置为基于全并行译码过程和分层译码过程对接收的信息比特序列进行译码,所述全并行译码过程针对对应于所述第一集合的所述一列或多列的变量节点,所述分层译码过程针对对应于所述第二集合的列的节点。

因此,在允许维持编码质量和译码处理的高并行度的同时,可以提高译码收敛,从而以低误码率实现高吞吐量。

根据第二方面,在所述译码器的第一种可能的实施方式中,对应于所述第一集合的所述一列或多列的变量节点被指示为打孔。

因此,可以增加不规则qc-ldpc的码率。

根据第二方面本身或根据第二方面的第一种实施方式,在所述译码器的第二种可能的实施方式中,所述第一集合中的列数是一列或二列。

因此,在所述第一集合中可以存在相对少量、却具有较高权重(例如,大于所述第二集合的列的平均权重的两倍或三倍)的列,从而改善所述层的“连接性(connectivity)”。

根据第二方面本身或根据第二方面的第一或第二种实施方式,在所述译码器的第三种实施方式中,所述基矩阵的行分为第一集合和第二集合,其中所述第一集合的行具有比所述第二集合的行更高的权重。

这使得编码甚至更容易通过移除(或忽略)所述第二集合的行(以及所述第二集合的行对应的列)来进行速率适应,而基本不会降低编码的质量。

根据第二方面的第三种实施方式,在所述译码器的第四种可能的实施方式中,对于所述第一集合的行构成的矩阵,该矩阵的列的子集所组成的矩阵具有双对角或三角结构。

因此,不规则qc-ldpc矩阵的高密度部分通过具有双对角或三角结构的奇偶校验部分来促进编码。

根据第二方面的第三或第四种实施方式,在所述译码器的第五种可能的实施方式中,对于所述第二集合的行构成的矩阵,该矩阵的列的子集所组成的矩阵具有三角或单位矩阵结构。

因此,可以利用类raptor的编码过程来执行编码,减少或消除了译码器请求重传的需要。

根据第二方面的第三至第五种实施方式中的任一种,在所述译码器的第六种可能的实施方式中,对于第二集合的列与第二集合的行相交叠的元素组成的矩阵,其行分为不同的组,每个组由正交行组成。

因此,可以实现在译码期间更高的并行度。

根据本发明的第三方面,提供了一种非暂时性计算机可读介质,其上存储有指令,当所述指令由计算机执行时,使所述计算机提供不规则qc-ldpc矩阵的基矩阵,所述基矩阵由多个列和多个行组成,所述列可分为一个或多个对应于打孔变量节点的列和对应于非打孔变量节点的列,而所述行可分为第一类行和第二类行,其中,所述第一类行具有的权重高于第一权重,所述第二类行具有的权重低于第二权重,所述第二权重等于或小于所述第一权重,其中所述第二类行和所述对应于非打孔变量节点的列的相交叠的部分,可分为多个正交行向量组。

对与不规则qc-ldpc矩阵的基矩阵的一个或多个高权重列相对应的变量节点进行打孔,允许对于“剩余”正交子行(或行向量)的不同组的分层译码和对于高权重列的全并行译码相结合,从而在译码期间实现高并行度,同时保持高质量的编码。

附图说明

图1示出了根据本发明的可能的应用场景的示意图;

图2示出了数字通信系统的示意图;

图3示出了提供用于编码或译码信息比特序列的不规则qc-ldpc码的过程的流程图;

图4示出了不规则qc-ldpc码的基矩阵的结构;

图5示出了不规则qc-ldpc码的基矩阵;

图5a示出了不规则qc-ldpc码的另一基矩阵;

图6为基矩阵的基本图;

图7为基矩阵的另一基本图;

图8示出了译码过程的流程图的第一部分;

图9示出了所述译码过程的流程图的第二部分;

图10示出了所述译码过程的流程图的第三部分;

图11示出了所述译码过程的第一硬件实施方式的时间表(schedule);以及

图12示出了所述译码过程的第二硬件实施方式的时间表。

具体实施方式

图1示出了根据本公开的可能的应用场景。如图1所示,终端(例如,用户设备(userequipment),简称ue)中的至少一个连接到无线接入网(radioaccessnetwork,简称ran)和核心网(corenetwork,简称cn)。本公开描述的技术可以应用于5g通信系统或使用各种无线接入技术的其他无线通信系统,例如,使用码分多址、频分多址、时分多址、正交频分多址、单载波频分多址以及其他无线接入技术的系统。另外,本公开描述的技术还可以应用于演进的通信系统。在可能的实施方式中,该终端可以通过该无线接入网和该核心网连接到互联网协议(internetprotocol,ip)多媒体子系统网络。

本发明所涉及的术语“终端”可以包括手持设备、车载设备、可穿戴设备、计算设备,或连接到无线调制解调器的其他处理设备,其中该设备具有无线通信功能,以及各种形式的用户设备(简称ue)、移动台(mobilestation,简称ms)、终端(terminal)、终端设备(terminalequipment)等。

该无线接入网包括至少一个基站。基站(basestation,简称bs)是部署在无线接入网中的装置,被配置为为ue提供无线通信功能。该基站可以包括各种形式的宏基站、微基站、中继站、接入点等。对于不同的无线接入技术,具有基站功能的设备的名称可能是不同的。

图2示出了数字通信系统10的框图,在数字通信系统10中可以实现本公开的过程。数字通信系统10包括发送侧和接收侧,该发送侧包括编码器12,该接收侧包括译码器14。所述编码器或所述译码器可以由至少一个处理器实现,例如,由芯片组实现。所述至少一个处理器或所述芯片组可以安装在基站或终端中。所述发送侧的编码器12的输入为,例如,k比特的信息序列is1,其中,在编码器12执行的编码操作中将r比特的冗余序列添加到所述k比特的信息序列is1,从而产生k+r=n比特的编码信息序列is2,编码的信息序列is2可以被转发到调制器16。

调制器16可以将编码的序列is2变换为调制信号向量ch_in,该调制信号向量ch_in又通过有线或无线信道18,例如导线、光纤、无线信道、微波信道或红外线信道,进行传输。由于信道18通常受噪声干扰,因此信道输出ch_out可能与信道输入ch_in不同。

在所述接收侧,信道输出向量ch_out可以由解调器20处理,解调器20产生一些似然比。在由译码器14执行的译码操作中,译码器14可以使用接收信息序列is3中的冗余来校正接收信息序列is3中的错误,并产生译码信息序列is4(参见m.p.cfossorier等,“基于信任传播的低密度奇偶校验码的降低复杂度的迭代译码(reducedcomplexityiterativedecodingoflow-densityparitycheckcodesbasedonbeliefpropagation)”,ieee通信会刊,1999年5月,第47卷,第5期,第673-680页;以及j.chen等,“用于不规则ldpc码的改进的最小和译码算法(improvedmin-sumdecodingalgorithmsforirregularldpccodes)”,2005年ieee国际信息论研讨会的会议纪要,第449-453页,2005年9月)。译码信息序列is4是编码的信息序列is2的估计,从中可以提取信息序列is1(的估计)。

可以由ldpc码控制编码操作和译码操作。在信道编码的一般公式中,ldpc码可以使用生成矩阵g用于由编码器12执行的编码操作,而使用奇偶校验矩阵h用于由译码器14执行的译码操作。对于具有大小为1×k的信息序列is1、大小为1×n的码字is2、r=(n-k)比特的冗余(奇偶校验)序列的ldpc码,生成矩阵g的大小为k×n,奇偶校验矩阵h大小为r×n=(n-k)×n。

奇偶校验矩阵hr×n和生成矩阵gk×n享有正交性,这表明对于具有k个线性独立行的任何生成矩阵gk×n,存在具有r=(n-k)个线性独立行的奇偶校验矩阵hr×n。因此,生成矩阵gk×n的任一行与奇偶校验矩阵hr×n的行正交,使得满足以下等式:

可以通过信息序列is1与生成矩阵gk×n相乘来执行所述编码操作,其中相乘的结果为编码的信息序列is2:

is2=is1·gk×n(2)

在所述接收侧,由于生成矩阵gk×n与奇偶校验矩阵hr×n之间的正交性,以下等式被满足:

其中is4是大小为1×n的译码的接收信息序列。如果上述等式得到验证,则可以假设信息序列估计is4是正确的。

一旦生成奇偶校验矩阵hr×n,就可能得到生成矩阵gk×n,反之亦然。因此,确定奇偶校验矩阵hr×n的任何过程可以被映射到获得生成矩阵gk×n的等效过程,反之亦然,从而在整个说明书和权利要求中公开的关于确定奇偶校验矩阵hr×n的任何过程应理解为包含获得生成矩阵gk×n的等效过程,反之亦然。

此外,应当注意,具有特定结构的奇偶校验矩阵hr×n(例如,具有双对角结构的奇偶校验部分的奇偶校验矩阵hr×n)的ldpc码允许(仅)使用奇偶校验矩阵hr×n进行信息序列is1的编码,因此可以不需要获得生成矩阵gk×n(参见t.j.richardson和r.l.urbanke,“低密度奇偶校验码的高效编码(efficientencodingoflow-densityparity-checkcodes)”,ieee信息论会刊,第47卷,第2期,第638-656页,2002年8月)。

奇偶校验矩阵hr×n的一种特定形式是常规qc-ldpc矩阵其可以被分成二次子矩阵i(pj,l),即循环矩阵(或简称“循环(circulant)”),可以通过对n×n的单位矩阵i(0)循环右移pj,l个位置得到

其中,n=n/l(参见m.p.c.fossorier,“来自循环置换矩阵的准循环低密度奇偶校验码(quasi-cycliclow-densityparity-checkcodesfromcirculantpermutationmatrices)”,ieee信息论会刊,第50卷,第8期,第1788-1793页,2004年8月)。因此,可以由基矩阵b定义常规qc-ldpc矩阵其中,该基矩阵b满足:

此外,可以通过得到不规则qc-ldpc矩阵的基矩阵b,其中“ο”表示哈达玛积(hadamardproduct),并且

表示具有mj,l∈{0,1}的掩模矩阵。或者,可以通过(或仅通过)用移位值pj,l∈{0…n}标记基矩阵b的部分元素来得到不规则qc-ldpc矩阵的基矩阵b,所述基矩阵b还包括未被标记的元素(notlabelledentries),其中未被标记的元素(有时也用值“-1”或星号“*”表示)表示大小为n×n的零矩阵。

因此,为了在编码器12和译码器14中采用qc-ldpc码,可以向编码器12和译码器14提供循环移位值,即,与基矩阵b的标记元素相对应的值以及(可选地)掩模矩阵mmask。例如,被配置为选择用于确定qc-ldpc矩阵的移位值的装置可以将该移位值提供给编码器12和/或译码器14。此外,还可以向编码器12和译码器14提供掩模矩阵mmask,以生成一个或多个不规则的qc-ldpc矩阵

此外,要注意的是,qc-ldpc矩阵hqc(更一般地的说,任何ldpc码)也可以通过其等效二分图(“tanner图”)来描述,其中tanner图的每个边将多个变量节点中的一个变量节点连接到多个校验节点中的一个校验节点。例如,r行、n列的qc-ldpc矩阵可以用其等效二分图表示,该二分图具有r个校验节点和n个变量节点,其中如果在qc-ldpc矩阵中存在对应的“1”的元素(非零元素),则校验节点和变量节点之间具有边(参见r.tanner,“低复杂度码的递归方法(arecursiveapproachtolowcomplexitycodes)”,ieee信息论会刊,第27卷,第5期,第533-547页,1981年9月)。在这方面,要注意所述变量节点表示码字比特,而所述校验节点表示奇偶校验方程。

图3示出了提供用于编码或译码信息比特序列(例如,分别为信息序列is1和is3)的不规则qc-ldpc码的过程22的流程图。过程22可以为,例如,由计算机实现的。比如,过程22可以通过持久存储的计算机可读指令来实现,当由计算机执行时,该指令使该计算机执行过程22。所提供的不规则qc-ldpc码的基矩阵b可以,例如,被提供给数字通信系统10的编码器12和译码器14,并用于编码器12和译码器14分别执行的编码或译码操作,即用于编码或译码所述信息比特序列。

提供用于编码或译码信息比特序列的不规则qc-ldpc码的过程22可以从步骤24开始,提供不规则qc-ldpc码的基矩阵b的元素,其中该些元素代表不规则qc-ldpc矩阵的块,每个块表示循环移位矩阵或零矩阵。图4示出了基矩阵b的一种可能结构。它包括高密度部分中的“核心”基矩阵(在图4的左上方以灰色显示)。该核心基矩阵具有带有双对角结构的奇偶校验部分,以便于编码。如果需要最高速率,那么可以根据该核心基矩阵的移位值来编码信息序列。如果较低的速率是可接受的,则可以将额外的行和列附加到该基矩阵。如图4所示,所述额外的行和列之间的交叠部分可以形成单位矩阵,尽管形成下三角形也是可能的。所述额外的行通常具有比该核心基矩阵的行更低的权重,并且(与所添加的“对应”列一起)为待发送的码字提供额外的奇偶校验比特。

应注意,所述基矩阵b是具有m行和n列的矩阵,其中m和n是整数。可以通过包括更多列和行来扩展所述基矩阵b。例如,所述基矩阵b是具有46行和68列的矩阵,或者所述基矩阵b是具有90行和112列的矩阵等。本公开对基矩阵的大小不做限制。

延伸部分包括一个、两个、三个或更多个高权重列,所述一个、两个、三个或更多个高权重列通常具有比该延伸部分的所有其他列高得多的权重。例如,一个、两个或所有高权重列可以没有空的单元格(cell),即没有表示零矩阵的元素。如图4所示,对应于两个高权重列的变量节点被指示为打孔,而“剩余”子行被分组为正交子行(或行向量)的(非重叠)层。

图5示出了大小为19×35(19行和35列)的基矩阵b的所提供元素的数字示例,其中该基矩阵b的标记元素(单元格)由对应的移位值表示,而未标记的元素(对应于零矩阵)留空。如图5所示,该基矩阵b的行可分为上部和下部,其中该上部具有17以上的权重,该下部具有9以下的权重,即小于该上部的行的权重的一半。因此,图5中所示的基矩阵b可分为包括行1至行3的高密度部分,以及包括行4至行19的低密度部分,如图3的过程22中步骤26所示。

此外,如图5所示,对于列2至列35和该低密度部分行交叠所形成的子矩阵,该子矩阵的行可以分为正交行的层(或组),其中每层包括大约相同数量的单元格。另外,该高密度部分包括双对角子矩阵,使得容易地编码该高密度部分的非零列对应的信息比特序列。此外,该低密度部分提供具有奇偶校验部分的类raptor扩展,该奇偶校验部分具有较低的三角形式,这使得易于对码字进行编码。

图5a示出了大小为46×68(46行和68列)的基矩阵b的所提供元素的数字示例。在图5a中,第1列和第2列为打孔列。对于第3至68列,从第9行开始存在多组正交行。从列的角度看,该些正交行的标记元素是不重叠的行。例如,行9和行10是正交的,行11和行12是正交的。

图6和图7示出了基矩阵的基图的不同设计。本公开中的术语“基图”包括多个方框,每个方框表示奇偶校验矩阵中的元素。该奇偶校验矩阵中的每个非零元素由标记的框表示。每个标记的框与该基矩阵中的移位值相关联。在图6和图7中,列1和列2是打孔列。应注意,打孔列可以是一列或多列。

具体地,图6示出了具有14行和36列的基矩阵的基图的示例。对于非打孔列(即,除了列1和列2之外的列),从行7开始,即从行7至行14,这样的行是非冲突的准正交的。从行7开始,每组的行(例如,每两个相邻行)是非冲突的准正交的。从图6中可以看出,标记的框(标记元素)不重叠。例如,行7和行8是正交的,行9和10是正交的,行11和行12是正交的,行13和行14是正交的。那些行,行(7,8)、(9,10)和(11,12)称为正交行。对于正交行,从列的角度看,每行的标记框(标记元素)不重叠。该组也可以称为正交组。

在该实施例中,第一集合的行是从行1至行6,而第二集合的行从行7至行14。在该设计中,如果认为行1至行6是核心基矩阵的行,并认为行7至行14是扩展部分的行,那扩展部分的所有行都是非冲突的准正交行。如果认为行1至行5是核心基矩阵的行,并认为行6至行14是扩展部分的行,那么扩展部分中远离该核心基矩阵的大多数行是非冲突的准正交行。

应注意,图6中的正交组包括两个行。该正交组还可以包括两行以上行。不同的正交组可以具有相同的行数或不同的行数。

图7示出了具有13行和35列的基矩阵的基图。在图7中,行扩展的正交组从行8开始。例如,对于非打孔列(即,除了列1和列2之外的列),行8和行9是正交的,行10和行11是正交的,行12和行13是正交的。图7中的正交组包括相邻的两个正交行,即行8和行9、行10和行11,以及行12和行13。在该实施例中,每组具有两个正交行。也可以修改为使每个组具有不同的行数,例如,三个正交行,或四个正交行等。

如图3中过程22的步骤28进一步所示,基矩阵b的列1被打孔。在编码器12基于所提供的基矩阵b的元素对信息比特序列进行编码,并经由信道18将对应的码字(除了对应于打孔节点的信息比特之外)发送给译码器14之后,编码器14可以使用结合了全并行译码和分层译码步骤的归一化最小和(min-sum)译码过程对所接收的信息比特进行迭代译码,如图8、图9和图10中的步骤a、b和c所示。此外,在该译码过程中,可以利用以下事实:可以使用行和列的移位操作将对应于矩阵的扩展部分(在图5中以深灰色示出)的打孔列的移位值设置为零。此外,通过在应用分层译码步骤的密集部分的部分(即与非打孔列对应的部分)中提供正交行组,可以增加译码操作的并行性。

如图8中的步骤a所示,使用以下公式计算打孔列的对数似然比(llr-s),其中llr、sg0j、sgj、minj、subminj、colj、v2cj、csgj、c2vj、nsg0j、сminj、psgj、pminj、psubminj、pcolj、nsgj、nminj、nsubminj、ncolj以及nc2vj是长度为n的向量,alpha表示归一化最小和译码过程的缩放参数:

·llr表示打孔节点的llr-s的向量,其可以存储在专用集成电路(application-specificintegratedcircuit,asic)寄存器中。

·sg0j表示用于检查打孔节点的消息(v2c)和组内第j行的变量的符号,其可以存储在随机存取存储器(randomaccessmemory,ram)中。

·sgj、minj、subminj、colj表示给定正交性组的第j行中符号、最小值、次小值(sub-minimums)和基于零的argminimum的乘法,其中1<=j<=n。可以在译码过程开始之前计算所有这些值并将其存储在存储器中。

·psgj、pminj、psubminj、pcolj表示当前正交性组的第j行中符号、最小值、次小值和argminimum的更新的乘法。将针对打孔列之外的每列确定这些值。

首先,通过以下公式对1<=j<=n计算csgj、|c2vj|和c2v:

·csgj=sgj*sg0j,

·|c2vj|=(colj==0)?subminj:minj以及

·c2v=csg*|c2v|。

然后,由以下公式计算nsg0j、сminj和v2cj:

·nsg0j=sign(v2cj),

·сminj=|v2cj|*alpha,

·v2cj=llr-c2vj。

现在,如图9中步骤b所示,通过以下公式对1<=j<=n计算当前正交组的每一行中打孔列的新的最小值、次小值、argminimum以及符号:

·sg0j=nsg0j,

·nsgj=nsg0j*psgj,

·ncolj=(сminj>pminj)?pcolj:0,

·nminj=(сminj>pminj)?pminj:cminj,以及

·nsubminj=(сminj>pminj)?((сminj>psubminj)?psubminj:сminj):pminj。

将这些值存储在存储器中,其中sgj、minj、subminj、colj和sg0j替换当前存储的值以用于下一次译码迭代。

最后,如图10中步骤c所示,计算打孔节点的psum、c2vsum和新的llr-s:

·psum=psg1*pmin1+…+psgn*pminn,

·c2vsum=c2v1+…+c2vn,以及

·llr=llr-c2vsum+psum。

此外,可以在硬件中有效地实现所提出的方案,这将从以下示例中变得明显,其中在3个时钟周期中处理每组正交行,将所有llr-s存储在寄存器中,可用处理器的数量可以等于qc-ldpc矩阵的列数,在第一时钟周期开始前将sgj、minj、subminj、colj加载至寄存器。

使用相同的方案完成对非打孔列的处理,根据上述公式完成对打孔列的处理:

时钟周期1、对于打孔列之外的所有列,计算c2v消息。从llr-s中减去计算的c2v消息,从而获得v2c消息,该v2c消息存储在存储llr-s的相同寄存器中。获得的v2c消息用于确定nsg0和сmin,nsg0和сmin用于确定部分最小值。此外,在时钟周期1,对应获得先前组的打孔列的11r-s。之后,这些llr-s被移位并存储在寄存器中。因此,计算打孔列的llr-s比计算其他列的llr-s晚一个时钟周期,但该些打孔列的llr-s也在1个时钟周期之后(在第二个时钟周期)使用。

时钟周期2、从所述部分最小值计算最小值(即psgj、pminj、psubminj、pcolj)。此外,计算打孔列的nsg0、сmin和c2v。之后,计算nsgj、nminj、nsubminj、ncolj的值并将其存储在存储器。

时钟周期3、通过获得的除打孔列之外的所有列的nsgj、nminj、nsubminj、ncolj的值,可以计算新的c2v消息。之后,将这些值与v2c消息相加,获得所有非打孔列的llr-s。然后将获得的llr-s存储在寄存器。此外,在该时钟周期,计算psum和c2vsum。

如果该基矩阵的不止一列被指示为打孔,则对应地扩展上述修改的最小和解码过程。例如,可以根据以下方案完成对两个打孔列的处理:

时钟周期1a)对于所有非打孔列,计算c2v消息。从llr-s中减去c2v消息。于是,得到v2c消息,其可以存储在与llr-s相同的寄存器上。这些v2c消息可用于获得nsg0和сmin的值。这些值用于获得部分最小值。

时钟周期1b)同样在第一个时钟周期,可以为先前的正交性组获得2个打孔列的llr-s。之后,这些llr-s可以被移位并被存储在寄存器。因此,可以在1个时钟之后获得打孔列的llr-s,但是这不会产生问题,因为在1个时钟之后才需要它们。

时钟周期2a)从部分最小值收集最小值,即得到psgj、pminj、psubminj、pcolj的值。

时钟周期2b)在此时钟周期,计算2个打孔列的nsg0、сmin和c2v。之后,计算nsgj、nminj、nsubminj、ncolj的值并将其存储在存储器。

时钟周期3a)根据获得的所有非打孔列的nsgj、nminj、nsubminj、ncolj的值,计算消息c2v,在将c2v与v2c消息相加之后,给出所有非打孔列的llr-s。该些llr-s被移位并被存储在寄存器。

时钟周期3b)在此时钟周期,计算消息nc2v以及总和c2vsum和nc2vsum。

如果使用上述方案,则步骤1a)、2a)、3a)可能需要用于打孔节点的特殊处理器,并且对于执行操作1b)、2b)、3b)的每个非打孔列也可能需要处理器。如果该qc-ldpc矩阵具有m组正交子行,则每迭代可能需要3*m个时钟。每个子处理器1a)、2a)、3a)、1b)、2b)、3b)将从3个可用时钟中具有2个时钟的停顿(stall)。

另一个存储器效率更高的方案可以使用每处理器4个时钟,但是使用更少的处理器(1个处理器用于打孔列,1个处理器用于四个非打孔列)。

时钟ia)对于非打孔列的第一个四分之一执行1a)的计算。

时钟ib)计算先前组的第一行的打孔列的llr-s。之后,llr-s被移位并被存储在寄存器。

时钟iia)对非打孔列执行2a)的动作,对非打孔列的第二个四分之一执行1a)的动作。

时钟iib)对打孔列计算nsg0、сmin和c2v,得到nsgj、nminj、nsubminj、ncolj并将其存储在寄存器。

时钟iiia)对非打孔列的第一个四分之一执行3a)的动作。对非打孔列的第二个四分之一执行2a)的动作。对非打孔列的第三个四分之一执行1a)的动作。

时钟iiib)确定nsgj、nminj、nsubminj、ncolj的值并将其存储在存储器。此外,计算c2vsum总和。

时钟iva)对非打孔列的第二个四分之一执行3a)的动作。对非打孔列的第三个四分之一执行2a)的动作。对非打孔列的第四个四分之一执行1a)的动作。

时钟ivb)计算消息nc2v和总和nc2vsum。

如果,例如,处理器的数量减少并且吞吐量对应地降低,则该方法的普及(generalization)是可能的。

用字母a-i表示处理步骤时:

·a——为非打孔节点计算c2v。确定并将v2c存储在寄存器中替换在llr-s。计算nsg0和сmin。计算部分最小值。

·b——通过部分最小值得到最小值,即psgj、pminj、psubminj、pcolj。

·c——通过nsgj、nminj、nsubminj、ncolj计算所有非打孔节点的新c2v,将它们与v2c求和以获得这些列的llr-s,对这些llr-s进行移位并存储在寄存器。

·d——为打孔节点计算nsg0、сmin和c2v。

·e——确定nsgj、nminj、nsubminj、ncolj。

·f——计算c2vsum。

·g——计算nc2vsum。

·h——计算nc2v。

·i——计算打孔列的llr-s。将它们进行移位并存储在寄存器。

以及具有,例如,三组正交子行(在高密度和低密度部分中),每组包括两个正交行,表示为:

·1-2——第1组

·3-4——第2组

·5-6——第3组

12个非打孔列,其中:

·j.1——第j行中的非空单元格的前半部分,1<=j<=6以及

·j.2——第j行的非空单元格的后半部分,1<=j<=6,

其中对非打孔列执行动作a、b和c,对打孔列执行动作d、e、f、g、h和i,图11和12描述了3时钟周期方案的时间表和4时钟周期方案的时间表。从图11和12中可以看出,可以实现高并行性。

此外,要注意的是,除了使编码器12和译码器14能够基于所提供的基矩阵b执行编码和译码操作之外,编码器12和译码器14还可以使用所提供的基矩阵b来根据不同的传输场景导出不同速率的不规则qc-ldpc子码,例如,在信道质量和/或吞吐量要求方面彼此不同的传输场景下,例如,通过移除(或忽略)所提供的基矩阵b的低密度部分的行和/或奇偶校验部分的列。

被配置为执行本发明中编码器或解码器、或基站、终端或核心网装置的功能的至少一个处理器可以是中央处理单元(centralprocessingunit,cpu)、通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(application-specificintegratedcircuit,asic)、现场可编程门阵列(fieldprogrammablegatearray,fpga)或其他可编程逻辑器件、晶体管逻辑器件、硬件组件或它们的任意组合。控制器/处理器可以实现或执行参考本发明中公开的内容描述的各种示例逻辑块、模块和电路。或者,该处理器可以是实现计算功能的处理器的组合,例如,一个或多个微处理器的组合,或dsp和微处理器的组合。

参考本发明中公开的内容描述的方法或算法的步骤可以直接通过使用硬件、由处理器执行的软件模块或其组合来实现。该软件模块可以位于ram存储器、闪存、只读存储器(read-onlymemory,rom)存储器、可擦除可编程只读存储器(erasableprogrammableread-onlymemory,eprom)存储器、电可擦除可编程只读存储器(electrically-erasableprogrammableread-onlymemory,eeprom)存储器、寄存器、硬盘、便携式盘、cd-rom或任何本领域已知的其他形式的存储介质中。例如,存储介质耦合到处理器,使得处理器可以从存储介质读取信息或将信息写入存储介质。当然,该存储介质也可以是该处理器的组件。该处理器和该存储介质可以位于asic中。此外,该asic可以位于用户装置中。当然,该处理器和该存储介质也可以作为分立组件存在于用户装置中。

与所述基矩阵的参数,或者基矩阵,或者基于所述基矩阵的扩展矩阵可以存储在存储器中。该存储器可以与至少一个处理器独立设置。该存储器也可以集成在所述至少一个处理器中。该存储器是一种计算机可读存储介质。

可以借助于软件、硬件、固件或其任何组合来实现所有或一些前述实施例。当软件程序用于实现该实施例时,该实施例可以完全或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。当在计算机上加载并执行该计算机程序指令时,全部或部分地生成根据本发明实施例的过程或功能。该计算机可以是通用计算机、专用计算机、计算机网络或其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者可以从一计算机可读存储介质发送到另一计算机可读存储介质。例如,该计算机指令可以从网站、计算机、服务器或数据中心以有线(例如,同轴电缆、光纤或数字用户线路(digitalsubscriberline,dsl))或无线(例如,红外、无线电和微波等)的方式发送到另一网站、计算机、服务器或数据中心。该计算机可读存储介质可以是可由计算机或者是数据存储设备访问的任何可用介质,例如,服务器或数据中心,集成一个或多个可用介质。该可用介质可以是磁介质(例如,软盘、硬盘或磁带)、光学介质(例如,数字化通用光盘(digitalversatiledisc,dvd))、半导体介质(例如,固态硬盘(solidstatedisk,ssd)等。

提供先前对本公开的描述是为了使本领域的技术人员能够实现或使用本发明。对于本领域技术人员来说,对本公开的各种修改是显而易见的,并且在不脱离本公开的精神或范围的情况下,本文定义的一般原理可以应用于其他变型。因此,本公开不旨在限于本文描述的示例和设计,而是与符合本文公开的原理和新颖特征的最宽范围相一致。

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