CN114124108A - 基于低密度奇偶校验的编码方法、译码方法和相关装置 - Google Patents
基于低密度奇偶校验的编码方法、译码方法和相关装置 Download PDFInfo
- Publication number
- CN114124108A CN114124108A CN202010876461.0A CN202010876461A CN114124108A CN 114124108 A CN114124108 A CN 114124108A CN 202010876461 A CN202010876461 A CN 202010876461A CN 114124108 A CN114124108 A CN 114124108A
- Authority
- CN
- China
- Prior art keywords
- llr
- row
- information bit
- rows
- column
- 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.)
- Pending
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
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
Abstract
一种基于低密度奇偶校验的编码方法包括:获取第一预设数量的信息比特行,每个信息比特行包括多个连续的信息比特块,每个信息比特块包括第二预设数量的信息比特;使用第一LDPC矩阵对每个信息比特行进行编码得到行码字;根据全部信息比特行中信息比特块构造信息比特列;使用第二LDPC矩阵对信息比特列进行编码,得到列冗余比特组。本申请在行向LDPC码字的基础上增加列向LDPC编码,这样不仅具有行向纠错能力,还有列向纠错能力,因此能够提高译码成功率,增强译码的可靠性,从而减少重传次数,降低信息传输时延。本申请还提供能够实现上述编码方法的编码装置。
Description
技术领域
本申请涉及无线通信领域,尤其涉及基于低密度奇偶校验的编码方法、译码方法和相关装置。
背景技术
通信系统存在干扰和衰落问题,信号传输会出现差错,故对数字信号必须采用纠错和检错技术,以增强数据在信道中传输时抵御各种干扰和衰落的能力,提高系统的可靠性,而对要在信道中传送的数字信号进行的纠错和检错编码就是信道编码。信道编码的一般做法就是在原信息的基础上添加一些冗余信息,通常冗余信息都和原信息有一定的约束关系,所以在接收机中可以利用冗余信息检验或纠正原信息中的错误部分,以达到降低错误率的效果。
低密度奇偶校验(low density parity check,LDPC)是一种应用广泛的信道编码方法。LDPC码是一种线性分组码,各码字之间是相互独立的。当LDPC码字通过深衰信道到达接收机时,接收机收到的LDPC码字可能有错误,LDPC码字间的错误率并不均衡,有些码字错误率极高,有些码字无错。目前需要依赖重传机制保证更高的可靠性,但是重传会增加传输时延。
对此,目前有一种编码方法大致如下:发送端使用母矩阵对待传输序列进行编码。当接收端译码失败时,向发送端发送重传请求,发送端根据重传请求使用扩展矩阵对待传输序列进行编码,再将编码数据发送给接收端。其中,扩展矩阵是在高码率的母矩阵的基础上扩展所得。例如,母矩阵为M×N的矩阵,M为行数,N为列数。扩展矩阵为(M+M1)×(N+N1)的矩阵。如果根据第一扩展矩阵仍然译码失败,接收端向发送端发送第二重传请求,发送端根据第二重传请求生成第二扩展矩阵为(M+M2)×(N+N2)的矩阵。M1和M2都是增加的行数,N1和N2都是增加的列数,M,N,M1,M2,N1和N2都是正整数。
在实际应用中,随着重传次数的增加,扩展矩阵逐渐增大,编码效率随着重传次数的增加而降低。以及,由于扩展矩阵的稀疏性不如现有标准中经过严格设计的LDPC基图,因此基于扩展矩阵的译码方法也会导致译码性能不佳。
发明内容
有鉴于此,本申请提供基于低密度奇偶校验的编码方法、译码方法和相关装置,能够提高译码的可靠性,由此能够减少重传次数,降低信息传输时延。
第一方面提供一种基于LDPC的编码方法,在该方法中,获取第一预设数量的信息比特行,使用第一LDPC矩阵对每个信息比特行进行编码得到行码字;根据全部信息比特行中信息比特块构造信息比特列;使用第二LDPC矩阵对信息比特列进行编码,得到列冗余比特组。每个信息比特行包括多个连续的信息比特块,每个信息比特块包括第二预设数量的信息比特,第二预设数量是正整数且不大于在一个信息比特行中信息比特的总数。
依此实施,不仅能够编码得到行码字,而且能够编码得到列冗余比特组,列冗余比特组和相应的信息比特列可以构成列码字。这样译码装置收到无线信号后,可以对无线信号译码得到行码字和列码字,然后可以分别根据行码字和列码字恢复出信息比特。这样不仅具有行向纠错能力,还有列向纠错能力,因此能够提高译码成功率,增强译码的可靠性,而且可以减少重传次数,降低信息传输时延。
在一种可能的实现方式中,根据全部信息比特行中信息比特块构造信息比特列包括:按照信息比特行的次序从每个信息比特行的同一位置选取信息比特块;将选取的信息比特块组成信息比特列。根据信息比特块构造信息比特列,进而编码得到列码字,这样能够建立信息比特行的约束关系,这样能够提高译码成功率,增强译码可靠性。
在另一种可能的实现方式中,根据全部信息比特行中信息比特块构造信息比特列包括:根据每个信息比特行中同一位置的信息比特块确定多个信息比特子序列,每个信息比特子序列包括按照行序排列的多个信息比特且多个信息比特在所属信息比特块中的位置相同;将多个信息比特子序列组成信息比特列。其中信息比特子序列的数量等于信息比特块包括的信息比特的数量。第二预设数量为大于1的正整数。具体的,信息比特行的数量记为T,一个信息比特块包括s个信息比特,那么根据全部信息比特行的第1个信息比特块,可以得到s个信息比特子序列。s个信息比特子序列可以记为(x11,x21,...,xT1),…,(x1s,x2s,...,xTs)。按照信息比特子序列的顺序将s个信息比特子序列可以组成信息比特列。信息比特子序列的顺序可以是1~s,s和T为正整数。
在另一种可能的实现方式中,在使用第一LDPC矩阵对每个信息比特行进行编码得到行码字后,依次发送行码字对应的无线信号;从发送完最后一个行码字对应的无线信号开始计时;在预设时间内未收到确认帧的情况下,发送列冗余比特组对应的无线信号。依此实施,列冗余比特组可以认为是增量冗余,这样可以通过增量冗余混合自动重传请求(incremental redundancy hybrid automatic repeat request,IR-HARQ)方法发送行码字和列冗余比特组。
在另一种可能的实现方式中,使用第一LDPC矩阵对每个信息比特行进行编码得到行码字;依次发送行码字对应的无线信号;在使用第二LDPC矩阵对信息比特列进行编码得到列冗余比特组之后,发送列冗余比特组对应的无线信号。依此实施,可以连续发送行码字和列冗余比特组,提高了信息发送的灵活性。
在另一种可能的实现方式中,获取第一预设数量的信息比特行包括:获取第三预设数量的源数据包,根据第三预设数量的源数据包生成第四预设数量的冗余数据包,根据第三预设数量的源数据包和第四预设数量的冗余数据包生成第一预设数量的信息比特行。可选的,第三预设数量与第四预设数量之和等于第一预设数量。依此实施,能够进行网络层编码。当接收端收到部分源数据包和一些冗余数据包时,可以根据部分源数据包和冗余数据包恢复出全部的源数据包,这样能够进一步提高信息传输的可靠性。
第二方面提供一种基于LDPC的译码方法,在该译码方法中,接收第一无线信号;根据第一无线信号获取第一LLR集合,第一LLR集合包括第一预设数量的LLR行;使用第一LDPC矩阵修改第一LLR集合的LLR行;在修改得到的第一修改LLR集合包括不正确LLR行的情况下,接收第二无线信号;根据第二无线信号获取至少一个LLR组;将第二LLR集合的全部LLR列作为待处理LLR列,使用第二LDPC矩阵对待处理LLR列进行列向修改;将列向修改后的第二LLR集合的不正确LLR行作为待处理LLR行;使用第一LDPC矩阵对待处理LLR行进行行向修改;当行向修改后的第二LLR集合包括不正确LLR行时,将行向修改后的的第二LLR集合中的不正确LLR列作为待处理LLR列,触发使用第二LDPC矩阵对待处理LLR列进行列向修改的步骤;当行向修改后的第二LLR集合中的LLR行全部通过校验时,根据行向修改后的第二LLR集合确定信息比特行。每个LLR列包括一个LLR组以及在第一修改LLR集合中的多个LLR块,在LLR列中每个LLR块在所属LLR行的位置与LLR组在全部LLR组中的位置相同。例如,全部LLR行的第i个LLR块与第i个LLR组构成第i个LLR列。
依此实施,可以使用第一LDPC矩阵修改LLR行,以及使用第二LDPC矩阵修改LLR列,当修改后的LLR行为正确LLR行时,可以根据正确LLR行获得行码字,并且可以形成包括正确LLR的LLR列,在修改LLR列时能够提高列向纠错能力。当修改后的LLR列为正确LLR列时,可以根据正确LLR列获得列码字,并且可以形成包括正确LLR的LLR行,在修改LLR行时能够提高行向纠错能力。随着列向修改次数和行向修改次数的增加,错误LLR行和错误LLR列越来越少,直至消失。与行向译码方法相比,本申请的译码方法具有更高的译码成功率和译码可靠性。
在一种可能的实现方式中,使用第二LDPC矩阵对待处理LLR列进行列向修改包括:使用第二LDPC矩阵更新待处理LLR列;当更新后的待处理LLR列包括正确LLR列和不正确LLR列时,将更新后的待处理LLR列中正确LLR列的每个LLR放大。这样,列向修改后的第二LLR集合的LLR行包含放大LLR。与未放大的LLR相比,放大的LLR被更新为不正确LLR的概率更低,当放大LLR为最大LLR时,将最大LLR更新为错误LLR的概率为0,由此可以降低将正确LLR更新为错误LLR的概率。对于列向修改后的第二LLR集合,在更新包含放大的LLR和不正确LLR的LLR行时,能够将错误LLR更新为正确LLR的概率提高。因此,放大LLR能够加快LLR行收敛。
和/或,使用第一LDPC矩阵对待处理LLR行进行行向修改包括:使用第一LDPC矩阵更新待处理LLR行;当更新后的待处理LLR行包括正确LLR行和不正确LLR行时,将更新后的待处理LLR行中正确LLR行的每个LLR放大;这样,行向修改后的第二LLR集合的LLR列包含放大LLR。与未放大的LLR相比,放大的LLR被更新为不正确LLR的概率更低,当放大LLR为最大LLR时,将最大LLR更新为错误LLR的概率为0,由此可以降低将正确LLR更新为错误LLR的概率。对于行向修改后的第二LLR集合,在更新包含放大的LLR和不正确LLR的LLR列时,能够将错误LLR更新为正确LLR的概率提高。因此,放大LLR能够加快LLR列收敛。
在一种可能的实现方式中,将更新后的待处理LLR行中正确LLR行的每个LLR放大包括:根据更新后的待处理LLR行中的正确LLR行确定行码字;根据第一公式和行码字确定在行向修改后的第二LLR集合中的LLR行;第一公式为:LLR′ij=(1-2xij)*(2w-1-1),LLR′ij为行向修改后的第二LLR集合中第j个LLR行的第i个LLR,xij为第j行的行码字中的第i个信息比特,第j行的行码字对应于在行向修改后的第二LLR集合中第j个LLR行。w为LLR位宽,i和j均为正整数。
对于一个正确的LLR行,可以确定与其对应的行码字,在行码字中每个信息比特为0或1,根据第一公式可以计算得到放大的LLR。例如,LLR位宽为8位,第一个比特位为符号位,例如0表示正号,1表示负号。后七位为数据位,这样放大LLR的绝对值等于127,可以看出该放大LLR是在位宽等于8的条件下的最大LLR。除了根据第一公式获得最大LLR之外,还可以根据实际需要将LLR放大为大于1的其他值,例如300,400,500等。放大的LLR与放大前的LLR具有相同的符号(如正号或负号),且放大的LLR的绝对值大于放大前的LLR的绝对值。
在另一种可能的实现方式中,在使用第二LDPC矩阵对待处理LLR列进行列向修改之后,当列向修改后的第二LLR集合中的LLR列全部通过校验时,根据列向修改后的第二LLR集合确定信息比特行。LLR组的数量等于在一个行码字中信息比特块的总数。
依此实施,当LLR组的数量等于在一个行码字中信息比特块的总数时,表明LLR列的数量等于在一个行码字中信息比特块的总数。当全部LLR列均为正确LLR列时,根据全部LLR列可以获得全部信息比特行的信息比特。
在另一种可能的实现方式中,上述译码方法还包括:根据行码字获取编码数据包;当编码数据包中源数据包的数量与冗余数据包的数量之和大于或等于预设包数时,将编码数据包进行网络译码,得到全部源数据包。预设包数大于或等于源数据包的数量。当收到的编码数据包的数量超过预设包数,表明可以根据收到的编码数据包恢复全部源数据包。这样不用解码全部行码字就可以获得全部源数据包。
第三方面提供一种基于LDPC的译码方法,在该译码方法中,接收无线信号;根据无线信号获取LLR集合,LLR集合包括第一预设数量的LLR行和至少一个LLR组;将LLR集合的全部LLR行作为待处理LLR行,使用第一LDPC矩阵对待处理LLR行进行行向修改;当行向修改后的LLR集合中的LLR行全部通过校验时,根据行向修改后的LLR集合确定信息比特行;当行向修改后的LLR集合包括不正确LLR行时,将行向修改后的LLR集合中的不正确LLR列作为待处理LLR列,使用第二LDPC矩阵对待处理LLR列进行列向修改;将列向修改后的LLR集合中的不正确LLR行作为待处理LLR行,触发使用第一LDPC矩阵对待处理LLR行进行行向修改的步骤。
其中,每个LLR列包括一个LLR组以及在行向修改后的LLR集合中的多个LLR块,在LLR列中每个LLR块在所属LLR行的位置与LLR组在全部LLR组中的位置相同。例如,全部LLR行的第i个LLR块和第i个LLR组构成第i个LLR列。
依此实施,译码装置可以连续接收LLR行和LLR组,其中LLR行与信息比特行对应,LLR组与列冗余比特组对应。使用第一LDPC矩阵修改LLR行以及使用第二LDPC矩阵修改LLR列之后,当修改后的LLR行为正确LLR行时,可以根据正确LLR行获得行码字,并且可以形成包括正确LLR的LLR列,在修改LLR列时能够提高列向纠错能力。当修改后的LLR列为正确LLR列时,可以根据正确LLR列获得列码字,并且可以形成包括正确LLR的LLR行,在修改LLR行时能够提高行向纠错能力。与行向译码方法相比,本申请的译码方法具有更高的译码成功率和译码可靠性。
在一种可能的实现方式中,使用第一LDPC矩阵对待处理LLR行进行行向修改包括:使用第一LDPC矩阵更新待处理LLR行;当更新后的待处理LLR行包括正确LLR行和不正确LLR行时,将更新后的待处理LLR行中正确LLR行的每个LLR放大,这样行向修改后的LLR集合中的LLR列包含放大LLR。与未放大的LLR相比,放大的LLR被更新为不正确LLR的概率更低,当放大LLR为最大LLR时,将最大LLR更新为错误LLR的概率为0,由此可以降低将正确LLR更新为错误LLR的概率。对于行向修改后的LLR集合,将包含放大的LLR和不正确LLR的LLR列进行更新时,能够将错误LLR更新为正确LLR的概率提高。因此,放大LLR能够加快LLR列收敛。
和/或,使用第二LDPC矩阵对待处理LLR列进行列向修改包括:使用第二LDPC矩阵更新待处理LLR列;当更新后的待处理LLR列包括正确LLR列和不正确LLR列时,将更新后的待处理LLR列中正确LLR列的每个LLR放大。这样列向修改后的LLR集合中的LLR行包含放大的LLR。与包含放大LLR的LLR列相似,放大LLR能够加快LLR行收敛。
在另一种可能的实现方式中,将更新后的待处理LLR行中正确LLR行的每个LLR放大包括:根据更新后的待处理LLR行中的正确LLR行确定行码字;根据第一公式和行码字确定在行向修改后的LLR集合中的LLR行;第一公式为:LLR′ij=(1-2xij)*(2w-1-1),LLR′ij为在行向修改后的LLR集合中第j个LLR行的第i个LLR,xij为第j行的行码字中的第i个信息比特,第j行的行码字对应于在行向修改后的LLR集合中第j个LLR行。w为LLR位宽,i和j均为正整数。
对于一个正确的LLR行,可以确定与其对应的行码字,在行码字中每个信息比特为0或1,根据第一公式可以计算得到放大的LLR。例如,LLR位宽为8位,第一个比特位为符号位,例如0表示正号,1表示负号。后七位为数据位,这样放大LLR的绝对值等于127,可以看出该放大LLR是在位宽等于8的条件下的最大LLR。除了根据第一公式获得最大LLR之外,还可以根据实际需要将LLR放大为大于1的其他值,例如300,400,500等。放大的LLR与放大前的LLR具有相同的符号(如正号或负号),且放大的LLR的绝对值大于放大前的LLR的绝对值。
在另一种可能的实现方式中,当列向修改后的LLR集合中的LLR列全部通过校验时,根据列向修改后的LLR集合确定信息比特行。LLR组的数量等于在一个行码字中信息比特块的总数。
依此实施,当LLR组的数量等于在一个行码字中信息比特块的总数时,表明LLR列的数量等于在一个行码字中信息比特块的总数。当全部LLR列均为正确LLR列时,根据全部LLR列可以获得全部信息比特行的信息比特。
在另一种可能的实现方式中,上述译码方法还包括:根据行码字获取编码数据包;当编码数据包中源数据包的数量与冗余数据包的数量之和大于或等于预设包数时,将编码数据包进行网络译码,得到全部源数据包。预设包数大于或等于源数据包的数量。当收到的编码数据包的数量超过预设包数,表明可以根据收到的编码数据包恢复出全部源数据包。这样不用解码全部行码字就可以获得全部源数据包。
第四方面提供一种编码装置,该编码装置具有实现第一方面的编码方法的功能。对于第四方面的编码装置执行的步骤和有益效果均可以参考第一方面以及第一方面中各种可能的实现方式中的描述,此处不再一一赘述。
第五方面提供一种译码装置,该译码装置具有实现第二方面的译码方法的功能。对于第五方面的译码装置执行的步骤和有益效果均可以参考第二方面以及第二方面中各种可能的实现方式中的描述,此处不再一一赘述。
第六方面提供一种译码装置,该译码装置具有实现第三方面的译码方法的功能。对于第六方面的译码装置执行的步骤和有益效果均可以参考第三方面以及第三方面中各种可能的实现方式中的描述,此处不再一一赘述。
第七方面提供一种终端,其包括基带处理器,射频收发器,天线,存储器和应用处理器,存储器用于存储信息比特、LLR和码字等;基带处理器用于实现第一方面中任意一种实施方式的编码方法、第二方面中任意一种实施方式的译码方法或者第三方面中任意一种实施方式的译码方法。
第八方面提供一种基站,其包括室内基带处理单元,射频拉远单元,天线和存储器,存储器用于存储信息比特、LLR和码字等;室内基带处理单元用于实现第一方面中任意一种实施方式所述的编码方法、第二方面中任意一种实施方式所述的译码方法或者第三方面中任意一种实施方式所述的译码方法。
第九方面提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面的方法。
第十方面提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面的方法。
附图说明
图1为本申请中采用LDPC码通信的一个应用场景;
图2为本申请中采用LDPC码通信的另一个应用场景;
图3为本申请中的一个Tanner图;
图4为本申请实施例中终端的一个结构图;
图5为本申请实施例中基站的一个结构图;
图6为本申请实施例中编码方法的一个流程图;
图7为本申请实施例中译码方法的一个流程图;
图8为本申请实施例中第一LDPC码和第二LDPC码经过同一个信道的增益图;
图9A为本申请实施例中第一LDPC码的迭代次数与误码率的一个关系图;
图9B为本申请实施例中第二LDPC码的迭代次数与误码率的另一个关系图;
图10为本申请实施例中译码方法的另一个流程图;
图11为本申请实施例中编码装置的一个结构图;
图12为本申请实施例中译码装置的一个结构图。
具体实施方式
下面对本申请的部分术语进行介绍:
码字包括信息位和冗余位。信息位也称为信息比特,冗余位也称为冗余比特。
行码字是指根据信息比特行生成的码字。行码字包括若干个信息比特和若干个行冗余比特,信息比特行包括行码字的全部信息比特,行冗余比特是指将行码字去除信息比特得到的比特。每个行冗余比特采用二进制数字0或1表示。对于信息比特行,可以将其划分为多个连续的信息比特块,不同信息比特块大小相等,每个信息比特块可以包含一个或多个信息比特,具体数量可以根据实际情况进行配置,本申请不作限定。
列码字是指根据信息比特列生成的码字。列码字包括若干个信息比特和若干个列冗余比特,信息比特列包括列码字的全部信息比特,列冗余比特是指将列码字去除信息比特得到的比特。信息比特列是根据不同信息比特行的信息比特块生成的。
对数似然比(log-likelihood ratio,LLR)可以用于表示无线信号的置信度,LLR也称为软比特信息。
LDPC基图是指无线保真(wireless fidelity,WIFI)标准规定的LDPC矩阵。LDPC基图的编码效率可以是但不限于1/2,2/3,3/4和5/6。LDPC基图的码长包括但不限于1944,1296等。第一LDPC矩阵和第二LDPC矩阵是从LDPC基图中选取的LDPC矩阵,第一LDPC矩阵与第二LDPC矩阵的行数和列数可以根据实际情况进行设置,本申请不作限定。
本申请的编码方法和译码方法可以用于采用LDPC码通信的有线通信网络或无线通信网络,例如以太网、蜂窝网络或WIFI网络。具体可以用于但不限于以下场景:工业通信场景、虚拟现实(virtual reality,VR)场景,增强现实(augmented reality,AR)场景、游戏和在线课堂等要求低时延和高可靠的场景,或者无线通信中的网页浏览,实时通信,收发邮件,网上支付,网上购物,音频或视频等多媒体应用,安全应用等其他通信场景。
参阅图1,以太网101与个人电脑102、个人电脑103和个人电脑104建立有线连接,个人电脑102、个人电脑103与个人电脑104之间采用LDPC码通信,或者以太网101的交换机与个人电脑102、个人电脑103与个人电脑104之间采用LDPC码通信。以太网101是一种局域网。
参阅图2,基站205与手机201、虚拟现实设备202、增强现实设备203和工业终端204建立有无线连接,基站205与手机201、虚拟现实设备202、增强现实设备203和工业终端204采用LDPC码通信。
下面对无线通信过程进行介绍,发送端将信息进行编码,将编码后的信息转换为无线信号,然后发送无线信号。接收端接收无线信号,接收无线信号是发送端的无线信号经过信道衰减的无线信号,因此接收无线信号可能包含错误信息。将接收无线信号进行解调和译码后,如果译码正确,那么可以根据译码得到的码字恢复出信息。当基站发送无线信号时,基站是发送端,终端是接收端。当终端发送信号时,终端是发送端,基站是接收端。
下面对LDPC码进行介绍,LDPC码是一种线性分组码,可以表示为[n,k],k表示信息位的数量,将一个信息比特行按照编码规则产生m位校验比特,m=n-k。n表示码字长度。
具体的,信息比特行x包括x1,x2,...,xk,码字y包括的码元为y1,y2,...,yn,码字y与信息比特行x之间的关系满足以下公式:
y=x*G。
G为生成矩阵,该生成矩阵的行数为k,列数为n。
并且,y还满足以下公式:
H*yT=0。
H为校验矩阵,该校验矩阵的行数为m,列数为n。
例如,[n,k]=[5,2]。
即,y1=x1,y2=x2,y3=x1+x2,y4=x1,y5=x1+x2,其中符号+为模2加。
根据以上关系可以推知以下公式:
1*y1+1*y2+1*y3+0*y4+0*y5=0;
1*y1+0*y2+0*y3+1*y4+0*y5=0;
1*y1+1*y2+0*y3+0*y4+1*y5=0。
将上述公式转化为矩阵相乘的如下形式:
根据以上描述可知,使用校验矩阵可以对接收信号进行校验,若通过校验,则表明接收信号正确。若未通过校验,则表明接收信号包含的信息与发送信号包含的信息不一致。
为了便于理解校验矩阵,常采用Tanner图表示校验矩阵中的非零元素。Tanner图包括两种节点,一种是变量节点,另一种是校验节点。变量节点用圆形节点表示,校验节点用方形节点表示。参阅图3,与上述校验矩阵对应的Tanner图包括校验节点301、校验节点302和校验节点303,变量节点304、变量节点305、变量节点306、变量节点307和变量节点308。
其中,校验节点301、校验节点302和校验节点303分别记为c1、c2和c3,变量节点304、变量节点305、变量节点306、变量节点307和变量节点308分别记为v1、v2、v3、v4和v5,c1~c3对应校验矩阵的1~3行,变量节点v1~v5对应校验矩阵的1~5列。对于校验方程中的1,用一条连线将其涉及的比特节点和校验节点连起来,所以Tanner图中的连线数与校验矩阵中的1的个数相同。在存储器中划分多个存储区域,以存储每个变量节点发送给各校验节点的值和每个校验节点发送给各变量节点的值。
下面对LDPC的译码方法进行介绍,LDPC的译码方法包括硬判决译码和软判决译码。当接收端收到无线信号时,将其量化后,无线信号的幅值在[-1,1]之间。如果接收到的某个比特幅值为+a,那么该比特为0的概率该比特为1的概率该比特的LLR为:对接收信号进行第一次计算得到的LLR值称为本征LLR,其可以记为LLR0。每当发送端发送一个信息比特行后,接收端将与该信息比特行对应的无线信号解调为一个LLR行,该LLR行包括多个本征LLR。
在硬判决译码过程中,如果无线信号的幅值为正值,那么表示接收到的比特为0;如果无线信号的幅值为负值,那么表示接收到的比特为1。硬判决译码的可靠性难以满足现有业务的可靠性要求。
下面结合tanner图对软判决译码进行介绍,在软判决译码过程中,根据本征LLR值计算变量节点发送给校验节点的初始值,校验节点发送给变量节点的初始值,然后根据以下公式更新变量节点发送给校验节点的值、校验节点发送给变量节点的值以及LLR的值:
其中,为第i个比特的本征LLR,A(i)表示与第i个变量节点相连的校验节点的编号集合,A(i)\j表示将A(i)去除了第j个校验节点所得的校验节点的编号集合,j′为A(i)\j中的任意一个值。为在第k′次迭代中第i个变量节点发送给第j个校验节点的值。是在第k次迭代中第j个校验节点发送给第i个变量节点的值。B(j)表示与第j个校验节点相连的变量节点的编号集合,B(j)\i表示将B(j)去除了第i个变量节点的编号集合,i′为B(j)\i中的任意一个值。表示第i′个变量节点发送给第j个校验节点的值。对于当时,当时,∏表示求乘积。是第k′次迭代更新后第i个变量节点对应的LLR值。
将第k′次迭代更新后的LLR行进行硬判决,将硬判决得到的信息比特行与预设校验矩阵相乘得到目标矩阵,如果目标矩阵的全部元素均为0,那么第k′次迭代更新后的LLR行通过校验,根据该LLR行可以确定码字。如果目标矩阵包括非零元素,那么表明软判定译码的结果包含了错误信息比特。如果在第k′次迭代更新后得到的LLR行通过校验且k′≤K,那么可以停止迭代更新。如果第K次迭代更新后的LLR行未通过校验,可以停止迭代更新,此次软判决译码失败。最大迭代次数可以根据实际情况进行设置,本申请不作限定。在软判决译码失败后,可以向发送端发送重传请求,以重新获取LLR行。其中,未通过校验的LLR行可以称为不正确LLR行或者错误LLR行。通过校验的LLR行也称为正确LLR行。
以上对本申请的术语和译码方法进行了介绍,下面介绍能够实现本申请的编码方法和译码方法的通信设备。
参阅图4,终端400的一个实施例包括:基带处理器401、射频收发器402、天线403、存储器404和应用处理器405,基带处理器401、存储器404和应用处理器405相互连接,射频收发器402分别与基带处理器401以及天线403连接。其中,基带处理器401、射频收发器402、天线403、存储器404和应用处理器405的数量可以是一个或多个。
基带处理器401,用于调制和解调,以及编码和解码。具体的,将二进制数据调制为基带信号,或者将基带信号解调为二进制数据。
射频收发器402,用于将基带信号转换为射频信号,或者将射频信号转换为基带信号。
天线403用于提供信号增益。天线403的数量可以是一个或多个。
存储器404用于存储信息比特、LLR和码字等。
应用处理器405用于网络层的编码或网络层的译码。
应理解,本实施例中提及的基带处理器401可以是数字信号处理器(digitalsignal processor,DSP)。应用处理器405可以是中央处理单元(central processingunit,CPU),还可以是其他通用处理器、专用集成电路(application specific integratedcircuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
还应理解,本实施例中提及的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。
需要说明的是,对于通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等处理器,存储器可以集成在上述处理器中。尽管未在图4示出,终端400还可以包括其他部件,例如电源,传感器,多媒体单元,输入输出设备等。
参阅图5,一种基站500包括:室内基带处理单元(building base band unit,BBU)501、射频拉远单元(remote radio unit,RRU)502和天线503。
BBU501用于实现调制功能,解调功能,编码功能,解码功能、存储功能以及信令处理功能。例如,将二进制数据调制为基带信号,或者将基带信号解调为二进制数据。
RRU502用于将基带信号转换为射频信号,或者将射频信号转换为基带信号。
天线503用于提供信号增益。天线503的数量可以是一个或多个。
尽管未在图5示出,基站500还可以包括其他部件,例如电源,输入输出设备等。
下面对以上通信设备进行编码的方法进行介绍,参阅图6,本申请的基于LDPC的编码方法的一个实施例包括:
步骤601、获取第一预设数量的信息比特行。
本实施例中,信息比特行也可以称为信息比特序列。每个信息比特行包括多个连续的信息比特块,每个信息比特块包括第二预设数量的信息比特。每个信息比特行包含的信息比特数量、第一预设数量和第二预设数量可以根据实际情况进行预先设置,本申请不作限定。
步骤602、使用第一LDPC矩阵对每个信息比特行进行编码得到行码字。
第一LDPC矩阵是从预设的LDPC基图中获取的校验矩阵,矩阵行数等于一个行冗余比特组包含的冗余比特数,矩阵列数等于行码字的码长。如果一个行冗余比特组包含的冗余比特数为m1,一个行码字的码长为n1,那么第一LDPC矩阵为m1×n1矩阵,n1=k1+m1,k1为一个信息比特行包含的信息比特数量。需要说明的是,第一LDPC矩阵是校验矩阵,根据预设对应关系可以确定与第一LDPC矩阵对应的生成矩阵,根据该生成矩阵对每个信息比特行进行编码得到行码字。
步骤603、根据全部信息比特行中信息比特块构造信息比特列。
一个信息比特行可以分为多个连续的信息比特块,多个信息比特块是按照顺序排列的且不同信息比特块包括相同数量的信息比特。每个信息比特块可以包括一个或多个信息比特。当一个信息比特块包括s个信息比特时,在一个信息比特行中信息比特块的数量小于或等于k/s。例如,当s=2,k=1296时,每个信息比特行可以分为648个信息比特块。
信息比特列的数量可以是一个或多个。具体的,从全部信息比特行选取第1个信息比特块构造第1个信息比特列,从全部信息比特行选取第2个信息比特块构造第2个信息比特列,依此类推可以构造多个信息比特列。当信息比特列的数量等于时,表明全部信息比特列包含了全部信息比特行的信息比特。
步骤604、使用第二LDPC矩阵对信息比特列进行编码,得到列冗余比特组。
列冗余比特组是指将列码字去除信息比特得到的比特集合,每个信息比特列对应一个列冗余比特组,一个信息比特列和一个列冗余比特组构成一个列码字。每个列冗余比特组包括多个列冗余比特,每个列冗余比特采用二进制数字0或1表示。
可以看出,预先设置信息比特行的长度、信息比特列的长度和列向编码效率后,s越小,列冗余比特的数量越多,该LDPC码的纠错性能越好。
应理解,步骤602为获取行码字的过程,步骤603和步骤604为获取列冗余比特组的过程,两个过程是独立的,因此步骤602可以在步骤603之后执行,或者在步骤604之后执行,本申请不作限定。
本实施例中,根据各信息比特行的信息比特块构建信息比特列,这样对独立的各信息比特行建立了约束关系。本申请在原始行向LDPC码字的基础上增加列向LDPC编码,这样不仅具有行向纠错能力,还有列向纠错能力,因此能够提高译码成功率,增强译码的可靠性。
其次,由于信息比特列是由信息比特行的信息比特块构成,因此能够获得交织增益。
再次,第一LDPC矩阵和第二LDPC矩阵是根据LDPC基图获取的,无需重新设计编码基图。通过预先配置信息比特块的大小和信息比特行的数量就能够调整编码块大小,无需打孔。
在一个可选实施例中,根据全部信息比特行中信息比特块构造信息比特列包括:按照信息比特行的次序从每个信息比特行的同一位置选取信息比特块,将选取的信息比特块组成信息比特列。
本实施例中,从每个信息比特行中选取第i个信息比特块,将选取的第i个信息比特块按照顺序排列,将排列后的信息比特块组成第i个信息比特列,i为小于或等于的正整数,k1为一个信息比特行中信息比特的总数,s为一个信息比特块包含的信息比特数。例如,第一预设数量记为T,从每个信息比特行选取第1个信息比特块,每个信息比特块包括2个信息比特,则第一个信息比特列为(x11,x12,x21,x22...,xT1,xT2)。依此类推可获得其他信息比特列。
在另一个可选实施例中,根据全部信息比特行中信息比特块构造信息比特列包括:据每个信息比特行中同一位置的信息比特块确定多个信息比特子序列,每个信息比特子序列包括多个信息比特且每个信息比特在所属信息比特块中的位置相同。
例如,第一预设数量记为T,从每个信息比特行中选取第1个信息比特块,每个信息比特块包括2个信息比特,则根据全部信息比特行中第1个信息比特块的第1个信息比特组成第一个信息比特子序列(x11,x21,...,xT1),根据全部信息比特行中第1个信息比特块的第2个信息比特组成第二个信息比特子序列(x12,x22,...,xT2),然后将第一个信息比特子序列和第二个信息比特子序列组成第一个信息比特列(x11,x21,...,xT1,x12,x22,...,xT2)。依此类推可以获得其他信息比特列。
需要说明的是,以上根据信息比特块构造信息比特列的方法是示意性的,还可以基于其他预设规则将信息比特块的信息比特进行排列形成信息比特列。
在另一个可选实施例中,上述编码方法还包括:依次发送行码字对应的无线信号;从发送完最后一个行码字对应的无线信号开始计时;在预设时间内未收到确认帧的情况下,发送列冗余比特组对应的无线信号。
本实施例中,编码得到行码字后,将行码字调制为无线信号。当接收端收到无线信号后,将无线信号解调为LLR行,每个行码字对应一个LLR行。一般要发送多个无线信号才能发送全部行码字。具体的,在一个传输时间间隔(transmission time interval,TTI)可以发送一个或两个行码字。一个TTI可传输的列冗余比特组的数量与列冗余比特组的比特数负相关,如果列冗余比特组的比特数越多,那么一个TTI可传输的列冗余比特组的数量越少;如果列冗余比特组的比特数越少,那么一个TTI可传输的列冗余比特组的数量越多。
从发送完最后一个行码字对应的无线信号开始计时;在预设时间内收到确认帧(如Block ACK)的情况下,表明接收端译码得到了第一预设数量的行码字,此时发送端无需发送冗余比特组。在预设时间内未收到确认帧的情况下,表明接收端没有解码出第一预设数量的行码字,此时发送端将列冗余比特组调制为无线信号,然后发送给接收端。以及,列冗余比特组可以认为是重传的增量冗余。这样可以通过IR-HARQ方法发送行码字和列冗余比特组。
在另一个可选实施例中,上述编码方法还包括:依次发送行码字对应的无线信号;发送列冗余比特组对应的无线信号。
本实施例中,发送端可以连续发送行码字和列冗余比特组。行码字的数量和列冗余比特组都可以根据实际情况进行设置,本申请不作限定。接收端可以连续接收行码字对应的无线和列冗余比特组对应的无线信号,这样提供了另一种发送行码字和列冗余比特组的方法。
在另一个可选实施例中,获取第一预设数量的信息比特行包括:获取第三预设数量的源数据包,根据第三预设数量的源数据包生成第四预设数量的冗余数据包,根据第三预设数量的源数据包和第四预设数量的冗余数据包生成第一预设数量的信息比特行。
例如,发送端要传输3个源数据包,分别记为P1,P2,P3。源数据包和冗余数据包属于应用层的数据包,源数据包是指实际需要传输的数据包,例如业务数据包,控制指令数据包等。并且采用3/5的网络编码效率,发送端根据上述3个数据包生成2个冗余数据包,分别为P4,P5。假设P4=P1+P3,P5=P2+P3,符号+为模2加。那么将网络层数据包P1,P2,P3,P4,P5分别转化为物理层的信息比特行。根据每个数据包可以生成一个或多个信息比特行。当根据每个数据包可以生成一个信息比特行时,第三预设数量与第四预设数量之和等于第一预设数量。应理解,本申请也可以在获取源数据包之后,根据源数据包生成信息比特行。
以上对本申请的编码方法进行了介绍,下面对本申请的译码方法进行介绍,参阅图7,本申请的基于LDPC的译码方法的一个实施例包括:
步骤701、接收第一无线信号。
步骤702、根据第一无线信号获取第一LLR集合,第一LLR集合包括第一预设数量的LLR行。
步骤703、使用第一LDPC矩阵修改第一LLR集合的LLR行。
可选的,使用第一LDPC矩阵修改第一LLR集合的LLR行包括:使用第一LDPC矩阵更新第一LLR集合的LLR行。具体的,使用第一LDPC矩阵更新第一LLR集合的LLR行可以包括:
步骤7031、根据第一LDPC矩阵确定Tanner图中与每个变量节点连接的校验节点集合,以及与每个校验节点连接的变量节点集合。
步骤7032、确定变量节点发送给校验节点的初始值,以及校验节点发送给变量节点的初始值。
其中,为第j个校验节点发送给第i个变量节点的初始值。B(j)表示与第j个校验节点相连的变量节点的编号集合,B(j)\i表示将B(j)去除了第i个变量节点的编号集合,i′为B(j)\i中的任意一个值。表示第i′个变量节点发送给第j个校验节点的值。对于当时,当时,
步骤7035、按照以下公式计算出第k′次更新后的变量节点发送给校验节点的值。
为在第k′次更新后第i个变量节点发送给第j个校验节点的值。A(i)表示与第i个变量节点相连的校验节点的编号集合,A(i)\j表示将A(i)去除第j个校验节点后得到的校验节点的编号集合,j′为A(i)\j中的任意一个值。为第k′-1次更新后第j′个校验节点发送给变量节点的值。
步骤7036、根据以下公式计算出第k′次更新后的校验节点发送给变量节点的值。
最大迭代次数K可以根据实际情况进行设置。当通过校验且k′≤K时,停止迭代更新,此时可以将正确LLR行保存在存储器。以及,可以根据确定行码字,行码字与通过校验的LLR行一一对应。当第K次迭代更新后的LLR行未通过校验时,停止迭代更新,此时可以将不正确LLR行保存在存储器,用于后续更新。
使用第一LDPC矩阵修改第一LLR集合的LLR行,得到第一修改LLR集合。如果第一修改LLR集合的LLR行全部通过校验,那么确定与每个LLR行对应的码字,完成译码,这样可以不执行步骤704~步骤711。需要说明的是,除了以上示出的最小和译码算法,本申请还可以采用其他迭代更新算法更新LLR,例如和积译码算法等。
步骤704、在修改得到的第一修改LLR集合包括不正确LLR行的情况下,接收第二无线信号。
当第一修改LLR集合包括不正确LLR行时,等待发送端发送第二无线信号。等待时长可以预先配置。当发送端发送第二无线信号之后,接收第二无线信号。
步骤705、根据第二无线信号获取至少一个LLR组。
每个LLR组对应一个列冗余比特组。例如,一个列冗余比特组包括m个比特,那么其对应的LLR组就包括m个LLR,m为正整数。
步骤706、将第二LLR集合的全部LLR列作为待处理LLR列,第二LLR集合包括至少一个LLR列,每个LLR列包括一个LLR组以及在第一修改LLR集合中的多个LLR块,在LLR列中每个LLR块在所属LLR行的位置与LLR组在全部LLR组中的位置相同。例如,第1个LLR列包括第一修改LLR集合的每个LLR行的第1个LLR块和第1个LLR组,第2个LLR列包括第一修改LLR集合的每个LLR行的第2个LLR块和第2个LLR组,依此类推可以得到其他LLR列。每个LLR列包括第一部分LLR和第二部分LLR,第一部分LLR在第二部分LLR之前。可选的,在第i个LLR列中,第一部分LLR由第一修改LLR集合中第i个LLR块构成,第二部分LLR为LLR组。第一部分LLR中LLR的排列顺序与信息比特列中信息比特块的排列方法相似,此处不再赘述。LLR块与信息比特块对应,每个LLR块包括第二预设数量的LLR。
步骤707、使用第二LDPC矩阵对待处理LLR列进行列向修改。
可选的,使用第二LDPC矩阵对待处理LLR列进行列向修改包括:使用第二LDPC矩阵更新待处理LLR列。具体的,使用第二LDPC矩阵更新待处理LLR列包括:
步骤7071、根据第二LDPC矩阵确定Tanner图中与每个变量节点连接的校验节点集合,以及与每个校验节点连接的变量节点集合。
步骤7072、确定变量节点发送给校验节点的初始值,以及校验节点发送给变量节点的初始值。
例如,LLR列为(LLR11,LLR12,LLR21,LLR22...,LLRT1,LLRT2),LLR11对应第1个变量节点,LLR12~LLRT1对应第2个变量节点~第2T-1个变量节点,LLRT2对应第2T个变量节点,1≤i≤2T。
在另一个例子中,LLR列为(LLR11,LLR21,...,LLRT1,LLR12,LLR22,...,LLRT2),第1个变量节点~第T个变量节点对应的LLR为LLR11~LLRT1,第T+1个变量节点~第2T个变量节点对应的LLR为LLR12~LLRT2,1≤i≤2T。
为第j个校验节点发送给第i个变量节点的初始值。B(j)表示与第j个校验节点相连的变量节点的编号集合,B(j)\i表示将B(j)去除了第i个变量节点的编号集合,i′为B(j)\i中的任意一个值。表示第i′个变量节点发送给第j个校验节点的值。对于当时,当时,
为第k′次迭代后第i个变量节点发送给第j个校验节点的值。A(i)表示与第i个变量节点相连的校验节点的编号集合,A(i)\j表示将A(i)去除第j个校验节点后得到的校验节点的编号集合,j′为A(i)\j中的任意一个值。为第k′-1次更新后第j′个校验节点发送给变量节点的值。
步骤7076、根据以下公式计算出第k′次更新后的校验节点发送给变量节点的值。
步骤7077、根据以下公式计算出第k′次更新后的LLR的值。
按照以上方法可以将LLR列进行迭代更新。对于通过校验的LLR列,可以确定与其对应的列码字,列码字与通过校验的LLR列一一对应。最大迭代次数K可以根据实际情况进行设置。当通过校验且k′≤K时,停止迭代更新,此时可以将正确LLR列保存在存储器。以及,可以根据确定列码字,列码字与通过校验的LLR列一一对应。当第K次迭代更新后的LLR列未通过校验时,停止迭代更新,此时可以将不正确LLR列保存在存储器,用于后续更新。
需要说明的是,更新LLR行和更新LLR列是独立的,也就是说,更新LLR行的次数与更新LLR列的次数可以相同,也可以不同。
步骤708、将列向修改后的第二LLR集合的不正确LLR行作为待处理LLR行。
步骤709、使用第一LDPC矩阵对待处理LLR行进行行向修改。
具体的,行向修改可以是一次更新或迭代更新。使用第一LDPC矩阵对待处理LLR行进行迭代更新的方法与步骤703相似。使用第一LDPC矩阵对待处理LLR行进行一次更新的过程与步骤7035~步骤7037相似,此处不再赘述。
步骤710、当行向修改后的的第二LLR集合包括不正确LLR行时,将行向修改后的的第二LLR集合中的不正确LLR列作为待处理LLR列,触发步骤707。
步骤711、当行向修改后的的第二LLR集合中的LLR行全部通过校验时,根据行向修改后的的第二LLR集合确定信息比特行。
当行向修改后的的第二LLR集合中的LLR行全部通过校验时,表明行向修改后的的第二LLR集合中的LLR都是正确LLR,根据行向修改后的的第二LLR集合的LLR行可以确定对应的行码字,根据行码字可以确定信息比特行。
在本实施例中,当修改后的LLR行属于正确LLR行时,可以根据该修改后的LLR行获得行码字,并且可以形成包括正确LLR的LLR列,在更新该LLR列时能够提高列向纠错能力。以及,当修改后的LLR列为正确LLR列时,可以根据该修改后的LLR列获得列码字,并且可以形成包括正确LLR的LLR行,在更新该LLR行时能够提高行向纠错能力。与行向译码方法相比,本申请的译码方法具有更高的译码成功率和译码可靠性。
其次,每次修改可能产生正确LLR行,随着修改次数的增加,不正确LLR行越来越少,当不正确LLR行的数量为0时,就可以根据全部正确LLR行获得信息比特行。同理,每次修改可能产生正确LLR列,这样随着修改次数的增加,不正确LLR列越来越少。
下面对修改LLR行或修改LLR列的另一种方法进行介绍:
在一个可选实施例中,使用第二LDPC矩阵对待处理LLR列进行列向修改包括:使用第二LDPC矩阵更新待处理LLR列;当更新后的待处理LLR列包括正确LLR列和不正确LLR列时,将更新后的待处理LLR列中正确LLR列的每个LLR放大;和/或,
使用第一LDPC矩阵对待处理LLR行进行行向修改包括:使用第一LDPC矩阵更新待处理LLR行;当更新后的待处理LLR行包括正确LLR行和不正确LLR行时,将更新后的待处理LLR行中正确LLR行的每个LLR放大。
在本实施例中,将更新后的待处理LLR列中正确LLR列的每个LLR放大,这样列向修改后的第二LLR集合中的LLR行包含放大LLR。与未放大的LLR相比,放大的LLR被更新为不正确LLR的概率更低,当放大LLR为最大LLR时,将最大LLR更新为错误LLR的概率为0,由此可以降低将正确LLR更新为错误LLR的概率。对包含放大的LLR和不正确LLR的LLR行进行更新时,由于放大LLR的权重更大,因此能够将错误LLR更新为正确LLR的概率提高。因此,放大LLR能够加快LLR行收敛。
可选的,当更新后的待处理LLR列包括正确LLR列和不正确LLR列时,将更新后的待处理LLR列中正确LLR列的目标LLR放大。例如,一个LLR列中前k2个LLR与信息比特列对应,那么将前k2个LLR放大。
当更新后的待处理LLR行包括正确LLR行和不正确LLR行时,将其中正确LLR行的每个LLR放大,这样行向修改后的第二LLR集合中的LLR列包含放大LLR。与未放大的LLR相比,放大的LLR被更新为不正确LLR的概率更低,当放大LLR为最大LLR时,将最大LLR更新为错误LLR的概率为0,由此可以降低将正确LLR更新为错误LLR的概率。对包含放大的LLR和不正确LLR的LLR列进行更新时,由于放大LLR的权重更大,因此能够将错误LLR更新为正确LLR的概率提高。因此,放大LLR能够加快LLR列收敛。可选的,当更新后的待处理LLR行包括正确LLR行和不正确LLR行时,将更新后的待处理LLR行中正确LLR行的目标LLR放大,目标LLR是指与信息比特对应的LLR。例如,一个LLR行中前k1个LLR与信息比特行对应,那么将前k1个LLR放大。
需要说明的是,对于更新后的待处理LLR行中不正确LLR行,可以将不正确LLR行的LLR保持不变。对于更新后的待处理LLR列中的不正确LLR列,可以将该不正确LLR列的LLR保持不变。
下面对放大LLR的过程进行介绍:
在一个可选实施例中,将更新后的待处理LLR行中正确LLR行的每个LLR放大包括:根据更新后的待处理LLR行中的正确LLR行确定行码字;根据第一公式和行码字确定在行向修改后的第二LLR集合中的LLR行。
本实施例中,第一公式为:LLRi′j=(1-2xij)*(2w-1-1),LLRi′j为在行向修改后的第二LLR集合中第j个LLR行的第i个LLR,xij为第j行的行码字中的第i个信息比特,w为LLR位宽,i和j均为正整数。
对于一个正确的LLR行,可以确定与其对应的行码字,在行码字中每个信息比特为0或1,根据第一公式可以计算得到放大的LLR。例如,LLR位宽为8位,第一个比特位为符号位,例如0表示正号,1表示负号。后七位为数据位,这样放大LLR的绝对值等于127,可以看出该放大LLR是在位宽等于8的条件下的最大LLR。LLR位宽的大小可以根据实际情况进行设置,本申请不作限定。
在另一个可选实施例中,将更新后的待处理LLR行中正确LLR行的每个LLR放大包括:根据更新后的待处理LLR行中的正确LLR行确定行码字;根据第二公式和行码字确定行向修改后的第二LLR集合中的LLR行。
本实施例中,第二公式为:LLR′ij=(1-2xij)*beta,beta的取值可以根据实际情况进行设置,例如300,400,500,1000等,本申请不作限定。LLR′ij为在行向修改后的第二LLR集合中第j个LLR行的第i个LLR,xij为第j行的行码字中的第i个信息比特,w为LLR位宽,i和j均为正整数。
在另一个可选实施例中,将更新后的待处理LLR列中正确LLR列的每个LLR放大包括:根据更新后的待处理LLR列中的正确LLR列确定列码字;根据第一公式和列码字确定在列向修改后的第二LLR集合中的LLR列。
本实施例中,第一公式为:LLR′ij=(1-2xij)*(2w-1-1),LLR′ij为在列向修改后的第二LLR集合中第j个LLR列的第i个LLR,xij为第j列的列码字中的第i个信息比特,w为LLR位宽,i和j均为正整数。
应理解,本申请也可以根据第二公式将更新后的待处理LLR列中正确LLR列的每个LLR放大。
在另一个可选实施例中,在使用第二LDPC矩阵对待处理LLR列进行列向修改之后,当列向修改后的第二LLR集合中的LLR列全部通过校验时,根据列向修改后的第二LLR集合确定信息比特行。
本实施例中,LLR组的数量等于在一个行码字中信息比特块的总数。当LLR组的数量等于在一个行码字中信息比特块的总数时,表明全部LLR列包含了全部LLR行的信息比特。当全部LLR列通过校验时,可以获得需要传输的全部信息比特行。
在另一个可选实施例中,上述译码方法还包括:根据行码字获取编码数据包;当编码数据包中源数据包的数量与冗余数据包的数量之和大于或等于预设包数时,将编码数据包进行网络译码,得到全部源数据包。
例如,发送端要传输3个源数据包,分别记为P1,P2,P3,还要传输2个冗余数据包P4,P5。接收端收到的五个编码数据包分别为Q1,Q2,Q3,Q4,Q5,Q1,Q2,Q3,Q4,Q5分别与P1,P2,P3,P4,P5对应。其中Q2,Q3未通过循环冗余校验(cyclic redundancy check,CRC),Q1,Q4,Q5通过了CRC。根据Q1=P1,Q4=P4=P1+P3,Q5=P5=P2+P3可以计算出P1,P2,P3。
从以上可以看出,在实际要传输b个数据包的情况下,当接收端接收到b个以上的正确数据包且有b个以上数据包线性无关,那么就可以恢复出实际要传输的全部数据包。因此根据源数据包和冗余数据包生成信息比特行可以进一步提高译码可靠性。
为便于理解,下面以一个具体应用场景对本申请的编码方法和译码方法进行说明:
在此应用场景中,需要传输648个信息比特行,每个信息比特行包括1296个信息比特,行向编码效率为2/3,第一LDPC矩阵为648×1944的校验矩阵。根据该第一LDPC矩阵对每个信息比特行编码可以生成648个行冗余比特,行码字的码长为1944。预先配置每个信息比特块包含2个信息比特,那么将每个信息比特行划分为648个信息比特块。根据每个信息比特行的第1个信息比特块构造第1个信息比特列,依次可以构造648个信息比特列。每个信息比特列包括1296个信息比特,列向编码效率为2/3,第二LDPC矩阵为648×1944的校验矩阵。使用第二LDPC矩阵对每个信息比特列编码得到648个列冗余比特,648个列冗余比特作为一个列冗余比特组。
648个信息比特行可以如表1所示:
表1
x<sub>(1,1)</sub> | x<sub>(1,2)</sub> | … | x<sub>(1,1295)</sub> | x<sub>(1,1296)</sub> | … | x<sub>(1,1944)</sub> |
x<sub>(2,1)</sub> | x<sub>(2,2)</sub> | … | x<sub>(2,1295)</sub> | x<sub>(2,1296)</sub> | … | x<sub>(2,1944)</sub> |
… | … | … | … | … | … | … |
x<sub>(648,1)</sub> | x<sub>(648,2)</sub> | … | x<sub>(648,1295)</sub> | x<sub>(648,1296)</sub> | … | x<sub>(648,1944)</sub> |
x<sub>(649,1)</sub> | x<sub>(649,2)</sub> | … | x<sub>(649,1295)</sub> | x<sub>(649,1296)</sub> | ||
… | … | … | … | … | ||
x<sub>(972,1)</sub> | x<sub>(972,2)</sub> | … | x<sub>(972,1295)</sub> | x<sub>(972,1296)</sub> |
其中,x(i,j)为第i行第j个比特值,x(i,j)为0或1。1≤i≤1944,1≤j≤972。表1的空格没有对应的值。
第1个信息比特行的第1个信息比特块包括x(1,1)和x(1,2),其他信息比特块可以依此类推。其中,第1个信息比特列包括的信息比特如表2所示:
表2
x<sub>(1,1)</sub> | x<sub>(1,2)</sub> |
x<sub>(2,1)</sub> | x<sub>(2,2)</sub> |
… | … |
x<sub>(648,1)</sub> | x<sub>(648,2)</sub> |
第1个列码字包括的比特如表3所示:
表3
x<sub>(1,1)</sub> | x<sub>(1,2)</sub> |
x<sub>(2,1)</sub> | x<sub>(2,2)</sub> |
… | … |
x<sub>(648,1)</sub> | x<sub>(648,2)</sub> |
x<sub>(649,1)</sub> | x<sub>(649,2)</sub> |
… | … |
x<sub>(972,1)</sub> | x<sub>(972,2)</sub> |
第1个列冗余比特组包括的冗余比特如表4所示:
表4
x<sub>(649,1)</sub> | x<sub>(649,2)</sub> |
… | … |
x<sub>(972,1)</sub> | x<sub>(972,2)</sub> |
对于发送端发送的信息比特行和冗余比特组,接收端可以依次获得信息比特行对应的LLR行和冗余比特组对应的LLR组。然后,根据648个LLR行的第1个LLR块和第1个LLR组构建第1个LLR列,依此类推可以构建648个LLR列。预先配置最大迭代次数为5次,对每个LLR行进行迭代更新。如果在迭代更新过程中,如果LLR行通过LDPC校验,那么对该LLR行不再继续更新。如果LLR行未通过LDPC校验,那么对该LLR行继续更新,直至完成第5次更新。当第5次更新完成后,假设在648个LLR行中有328个LLR行属于正确LLR行,另外328个LLR行属于不正确LLR行。将正确的LLR行的每个LLR放大,如果该LLR<0,那么将其放大为-127,如果该LLR>0,那么将其放大为127。假设328个正确LLR行的行号为1~328,不正确LLR行的行号为329~648,则将328个正确LLR行的LLR放大,剩余的LLR不变。然后对所有LLR列进行迭代更新,当迭代更新后的所有LLR列都正确时,根据全部LLR列可以获取全部信息比特行。
当迭代更新后的LLR列包括300个正确LLR列和348个不正确LLR列时,假设300个正确LLR列的列号是1~300,348个不正确LLR列的列号为301~648,那么将第1~300个LLR列放大,第301~648个LLR列不变,然后对第329~648行LLR进行一次更新。在一次更新后,假设第329~400个LLR行为正确LLR行,第401~648个LLR行为不正确LLR行,那么将第329~400行LLR放大,第401~648行LLR不变,然后对第301~648个LLR列进行一次更新。在一次更新后,如果第301~648个LLR列正确,那么根据第1~648个LLR列确定第1~648个列码字,根据所有列码字包括的第1个信息比特块确定第1个信息比特行,依此类推可获得648个信息比特行,此时完成译码。
在上述译码方法中,对不正确LLR行和不正确LLR列进行更新是交叉进行的,随着更新次数的增加,不正确LLR行和不正确LLR列越来越少,直至LLR行全部正确或LLR列全部正确。另外,接收端可以预先配置最大更新次数。当达到最大更新次数时,停止继续更新,接收端可以向发送端发送重传请求。需要说明的是,在该应用场景中的数值和编号仅为示意性说明,并不作为本申请对信息比特行、信息比特列、LLR行或LLR列的限制。
在以上译码方法中,当行码字对应的无线信号译码成功时,不发送列冗余比特组。当行码字对应的无线信号未完全译码时,发送列冗余比特组。本申请还提供另一种译码方法,在此译码方法中,行码字和列冗余比特组是连续发送的。
图8为第一LDPC码和第二LDPC码经过同一个信道的增益图。第一LDPC码是采用编码效率为1/2的现有编码方法编码所得,第二LDPC码是采用本申请的上述编码方法编码所得。上述编码方法中,行向编码效率为2/3,列向编码效率为2/3,因此等效于编码效率为1/2的编码方法。从图8可以看出,为了达到误码率为10-6,与现有编码方法相比,本申请的编码方法增益大约为5.5分贝(dB)。
图9A为第一LDPC码的迭代次数与误码率的对应关系的一个示意图。参阅图9A,为了达到10-3的误码率,在最大迭代次数为3次的条件下,第一LDPC码的(signal noiseratio,SNR)信噪比约为17.3dB,在最大迭代次数为6次的条件下,第一LDPC码的SNR为16dB;在最大迭代次数为9次的条件下,第一LDPC码的SNR为15.5dB;在最大迭代次数为12次的条件下,第一LDPC码的SNR为15.5dB;在最大迭代次数为15次的条件下,第一LDPC码的SNR为15.5dB。可以看出,当迭代次数超过6次时,第一LDPC码的增益很少。
图9B为第二LDPC码的迭代次数与误码率的对应关系的一个示意图。参阅图9B,3次行迭代表示最大行向迭代次数为3,1次列迭代表示最大列向迭代次数为1。6次行迭代表示最大行向迭代次数为6,2次列迭代表示最大列向迭代次数为2。9次行迭代表示最大行向迭代次数为9,3次列迭代表示最大列向迭代次数为3。12次行迭代表示最大行向迭代次数为12,4次列迭代表示最大列向迭代次数为4。15次行迭代表示最大行向迭代次数为15,5次列迭代表示最大列向迭代次数为5。
为了达到10-3的误码率,在3次行迭代,1次列迭代的条件下,第二LDPC码的SNR为17.5dB。在6次行迭代,2次列迭代的条件下,第二LDPC码的SNR为16.5dB;在9次行迭代,3次列迭代的条件下,第二LDPC码的SNR为15.5dB;在12次行迭代,4次列迭代的条件下,第二LDPC码的SNR为15.5dB;在15次行迭代,5次列迭代的条件下,第二LDPC码的SNR为15dB。可以看出,随着迭代次数的增加,第二LDPC码有较大增益。
参阅图10,本申请的基于LDPC的译码方法的另一个实施例包括:
步骤1001、接收无线信号。
步骤1002、根据无线信号获取LLR集合,LLR集合包括第一预设数量的LLR行和至少一个LLR组。
步骤1003、将LLR集合的全部LLR行作为待处理LLR行。
步骤1004、使用第一LDPC矩阵对待处理LLR行进行行向修改。
步骤1005、当行向修改后的LLR集合中的LLR行全部通过校验时,根据行向修改后的LLR集合确定信息比特行。
应理解的,步骤1005可以在步骤1006、步骤1007或步骤1008之后执行。
步骤1006、当行向修改后的LLR集合包括不正确LLR行时,将行向修改后的LLR集合中的不正确LLR列作为待处理LLR列。
具体的,将行向修改后的LLR集合的全部LLR列作为不正确LLR列。在行向修改后的LLR集合中,每个LLR列包括一个LLR组以及在行向修改后的LLR集合中的多个LLR块,在LLR列中每个LLR块在所属LLR行的位置与LLR组在全部LLR组中的位置相同。
每个LLR列包括一个LLR组以及在第一修改LLR集合中的多个LLR块,在LLR列中每个LLR块在所属LLR行的位置与LLR组在全部LLR组中的位置相同。
步骤1007、使用第二LDPC矩阵对待处理LLR列进行列向修改。
步骤1008、将列向修改后的LLR集合中的不正确LLR行作为待处理LLR行,触发步骤1004。
具体的,本实施例中步骤1004与图7所示实施例的步骤709相似,本实施例中步骤1005与图7所示实施例的步骤711相似,步骤1007分别与图7所示实施例的步骤707相似,此处不再赘述。
本实施例中,接收端可以连续接收LLR行和LLR组,使用第一LDPC矩阵修改LLR集合的LLR行后,当修改后的LLR行为正确LLR行时,可以根据正确LLR行获得行码字,并且可以形成包括正确LLR的LLR列,在修改该LLR列时能够提高列向纠错能力。以及,当修改后的LLR列为正确LLR列时,可以根据正确LLR列获得列码字,并且可以形成包括正确LLR的LLR行,在修改该LLR行时能够提高行向纠错能力。与行向译码方法相比,本申请的译码方法具有更高的译码成功率和译码可靠性。
在一个可选实施例中,
使用第一LDPC矩阵对待处理LLR行进行行向修改包括:使用第一LDPC矩阵更新待处理LLR行;当更新后的待处理LLR行包括正确LLR行和不正确LLR行时,将更新后的待处理LLR行中正确LLR行的每个LLR放大;
使用第二LDPC矩阵对待处理LLR列进行列向修改包括:使用第二LDPC矩阵更新待处理LLR列;当更新后的待处理LLR列包括正确LLR列和不正确LLR列时,将更新后的待处理LLR列中正确LLR列的每个LLR放大。
在另一个可选实施例中,将更新后的待处理LLR行中正确LLR行的每个LLR放大包括:根据更新后的待处理LLR行中的正确LLR行确定行码字;根据第一公式和行码字确定在行向修改后的LLR集合中的LLR行;第一公式为:LLRi′j=(1-2xij)*(2w-1-1),LLRi′j为在行向修改后的LLR集合中第j个LLR行的第i个LLR,xij为第j行的行码字中的第i个信息比特,w为LLR位宽,i和j均为正整数。
在另一个可选实施例中,上述译码方法还包括:当列向修改后的LLR集合中LLR列全部通过校验时,根据列向修改后的LLR集合确定信息比特行。其中,LLR组的数量等于在一个行码字中信息比特块的总数。
在另一个可选实施例中,上述译码方法还包括:根据行码字获取编码数据包,在编码数据包中源数据包的数量与冗余数据包的数量之和大于或等于预设包数;将编码数据包进行网络译码,得到全部源数据包。
图10所示实施例的可选实施例与图7所示实施例的可选实施例相似,具体步骤、名词解释和有益效果均可参阅图7所示实施例的相关记载,此处不再赘述。
本申请提供一种编码装置能够实现图6所示实施例中的编码方法。参阅图11,一种编码装置1100包括:
获取单元1101,用于获取第一预设数量的信息比特行,每个信息比特行包括多个连续的信息比特块,每个信息比特块包括第二预设数量的信息比特;
编码单元1102,用于使用第一LDPC矩阵对每个信息比特行进行编码得到行码字;
构造单元1103,用于根据全部信息比特行中信息比特块构造信息比特列;
编码单元1102,还用于使用第二LDPC矩阵对信息比特列进行编码,得到列冗余比特组。
具体的,获取单元1101、编码单元1102和构造单元1103都可以通过无线终端的基带处理器或者网络设备的基带处理器实现。
在一个可选实施例中,
构造单元1103,具体用于按照信息比特行的次序从每个信息比特行的同一位置选取信息比特块;将选取的信息比特块组成信息比特列。
在另一个可选实施例中,第二预设数量为大于1的正整数;
构造单元1103,具体用于根据每个信息比特行中同一位置的信息比特块确定多个信息比特子序列,每个信息比特子序列包括多个信息比特且每个信息比特在所属信息比特块中的位置相同;将多个信息比特子序列组成信息比特列。
在另一个可选实施例中,编码装置1100还包括:
第一发送单元,用于依次发送行码字对应的无线信号;
计时单元,用于从发送完最后一个行码字对应的无线信号开始计时;
第一发送单元,还用于在预设时间内未收到确认帧的情况下,发送列冗余比特组对应的无线信号。
在另一个可选实施例中,编码装置1100还包括:
第二发送单元,用于依次发送行码字对应的无线信号;
第二发送单元,还用于发送列冗余比特组对应的无线信号。
对于编码装置1100中各单元执行的步骤和有益效果均可以参考图6所示实施例或可选实施例中的描述,此处不再一一赘述。在编码装置1100中,第一发送单元和第二发送单元可以通过一个发送单元实现。计时单元可以通过应用处理器或者基带处理器实现。
参阅图12,本申请提供一种译码装置能够实现图7所示实施例或可选实施例中的译码方法。一种译码装置1200包括:
接收单元1201,用于接收第一无线信号;
解调单元1202,用于根据第一无线信号获取第一LLR集合,第一LLR集合包括第一预设数量的LLR行;
译码单元1203,用于使用第一LDPC矩阵修改第一LLR集合的LLR行;
接收单元1201,还用于在修改得到的第一修改LLR集合包括不正确LLR行的情况下,接收第二无线信号;
解调单元1202,还用于根据第二无线信号获取至少一个LLR组;
译码单元1203,还用于将第二LLR集合的全部LLR列作为待处理LLR列,每个LLR列包括一个LLR组以及在第一修改LLR集合中的多个LLR块,在LLR列中每个LLR块在所属LLR行的位置与LLR组在全部LLR组中的位置相同;使用第二LDPC矩阵对待处理LLR列进行列向修改;将列向修改后的第二LLR集合的不正确LLR行作为待处理LLR行;使用第一LDPC矩阵对待处理LLR行进行行向修改;当行向修改后的第二LLR集合包括不正确LLR行时,将行向修改后的的第二LLR集合中的不正确LLR列作为待处理LLR列,触发使用第二LDPC矩阵对待处理LLR列进行列向修改的步骤;当行向修改后的第二LLR集合中的LLR行全部通过校验时,根据行向修改后的第二LLR集合确定信息比特行。
在一个可选实施例中,
译码单元1203,具体用于使用第二LDPC矩阵更新待处理LLR列;当更新后的待处理LLR列包括正确LLR列和不正确LLR列时,将更新后的待处理LLR列中正确LLR列的每个LLR放大;和/或,
译码单元1203,具体用于使用第一LDPC矩阵更新待处理LLR行;当更新后的待处理LLR行包括正确LLR行和不正确LLR行时,将更新后的待处理LLR行中正确LLR行的每个LLR放大。
在另一个可选实施例中,
译码单元1203,具体用于根据根据更新后的待处理LLR行中的正确LLR行确定行码字;根据第一公式和行码字确定在行向修改后的第二LLR集合中的LLR行;第一公式为:LLRi′j=(1-2xij)*(2w-1-1),LLRi′j为在行向修改后的第二LLR集合中第j个LLR行的第i个LLR,xij为第j行的行码字中的第i个信息比特,w为LLR位宽,i和j均为正整数。
在另一个可选实施例中,LLR组的数量等于在一个行码字中信息比特块的总数;
译码单元1203,还用于当列向修改后的第二LLR集合中的LLR列全部通过校验时,根据列向修改后的第二LLR集合确定信息比特行。
在另一个可选实施例中,上述译码装置1200还包括网络译码单元,网络译码单元用于根据行码字获取编码数据包;当编码数据包中源数据包的数量与冗余数据包的数量之和大于或等于预设包数时,将编码数据包进行网络译码,得到全部源数据包。
本实施例中,对于译码装置1200中各单元执行的步骤和有益效果均可以参考图7所示实施例或可选实施例中的描述,此处不再一一赘述。
本申请提供一种译码装置1200还能够实现图10所示实施例或可选实施例中的译码方法。在另一个实施例中,
接收单元1201,用于接收无线信号;
解调单元1202,用于根据无线信号获取LLR集合,LLR集合包括第一预设数量的LLR行和至少一个LLR组;
译码单元1203,用于使用第一LDPC矩阵对每个LLR行进行迭代更新;
译码单元1203,还用于将LLR集合的全部LLR行作为待处理LLR行,使用第一LDPC矩阵对待处理LLR行进行行向修改;当行向修改后的LLR集合中的LLR行全部通过校验时,根据行向修改后的LLR集合确定信息比特行;当行向修改后的LLR集合包括不正确LLR行时,将行向修改后的LLR集合中的不正确LLR列作为待处理LLR列;使用第二LDPC矩阵对待处理LLR列进行列向修改;将列向修改后的LLR集合中的不正确LLR行作为待处理LLR行,触发使用第一LDPC矩阵对待处理LLR行进行行向修改的步骤。
在一个可选实施例中,
译码单元1203,具体用于使用第一LDPC矩阵更新待处理LLR行;当更新后的待处理LLR行包括正确LLR行和不正确LLR行时,将更新后的待处理LLR行中正确LLR行的每个LLR放大;和/或,
译码单元1203,具体用于使用第二LDPC矩阵更新待处理LLR列;当更新后的待处理LLR列包括正确LLR列和不正确LLR列时,将更新后的待处理LLR列中正确LLR列的每个LLR放大。
在一个可选实施例中,译码单元1203具体用于根据更新后的待处理LLR行中的正确LLR行确定行码字;根据第一公式和行码字确定在行向修改后的LLR集合中的LLR行;第一公式为:LLRi′j=(1-2xij)*(2w-1-1),LLRi′j为在行向修改后的LLR集合中第j个LLR行的第i个LLR,xij为第j行的行码字中的第i个信息比特,w为LLR位宽,i和j均为正整数。
在另一个可选实施例中,LLR组的数量等于在一个行码字中信息比特块的总数;
译码单元1203,还用于当列向修改后的LLR集合中LLR列全部通过校验时,根据列向修改后的LLR集合确定信息比特行。
在另一个可选实施例中,上述译码装置1200还包括网络译码单元,网络译码单元用于根据行码字获取编码数据包;当编码数据包中源数据包的数量与冗余数据包的数量之和大于或等于预设包数时,将编码数据包进行网络译码,得到全部源数据包。
本实施例中,对于译码装置1200中各单元执行的步骤和有益效果均可以参考图10所示实施例或可选实施例中的描述,此处不再一一赘述。
本申请提供一种计算机存储介质,包括指令,当其在计算机上运行时,使得计算机执行以上任意一个实施例或可选实施例中所述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如软盘、硬盘、磁带)、光介质(例如DVD)、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例的技术方案的范围。
Claims (27)
1.一种基于低密度奇偶校验LDPC的编码方法,其特征在于,包括:
获取第一预设数量的信息比特行,每个所述信息比特行包括多个连续的信息比特块,每个信息比特块包括第二预设数量的信息比特;
使用第一LDPC矩阵对每个所述信息比特行进行编码得到行码字;
根据全部信息比特行中信息比特块构造信息比特列;
使用第二LDPC矩阵对信息比特列进行编码,得到列冗余比特组。
2.根据权利要求1所述的方法,其特征在于,所述根据全部信息比特行中信息比特块构造信息比特列包括:
按照所述信息比特行的次序从每个所述信息比特行的同一位置选取信息比特块;
将选取的信息比特块组成信息比特列。
3.根据权利要求1所述的方法,其特征在于,所述第二预设数量为大于1的正整数;
所述根据全部信息比特行中信息比特块构造信息比特列包括:
根据每个信息比特行中同一位置的信息比特块确定多个信息比特子序列,每个所述信息比特子序列包括多个信息比特且每个信息比特在所属信息比特块中的位置相同;
将所述多个信息比特子序列组成信息比特列。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
依次发送所述行码字对应的无线信号;
从发送完最后一个行码字对应的无线信号开始计时;
在预设时间内未收到确认帧的情况下,发送所述列冗余比特组对应的无线信号。
5.根据权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
依次发送所述行码字对应的无线信号;
发送所述列冗余比特组对应的无线信号。
6.一种基于低密度奇偶校验LDPC的译码方法,其特征在于,包括:
接收第一无线信号;
根据所述第一无线信号获取第一对数似然比LLR集合,所述第一LLR集合包括第一预设数量的LLR行;
使用第一LDPC矩阵修改所述第一LLR集合的LLR行;
在修改得到的第一修改LLR集合包括不正确LLR行的情况下,接收第二无线信号;
根据所述第二无线信号获取至少一个LLR组;
将第二LLR集合的全部LLR列作为待处理LLR列,每个LLR列包括一个LLR组以及在所述第一修改LLR集合中的多个LLR块,在所述LLR列中每个LLR块在所属LLR行的位置与LLR组在全部LLR组中的位置相同;
使用第二LDPC矩阵对所述待处理LLR列进行列向修改;
将列向修改后的第二LLR集合的不正确LLR行作为待处理LLR行;
使用所述第一LDPC矩阵对所述待处理LLR行进行行向修改;
当行向修改后的的第二LLR集合包括不正确LLR行时,将所述行向修改后的的第二LLR集合中的不正确LLR列作为所述待处理LLR列,触发所述使用第二LDPC矩阵对所述待处理LLR列进行列向修改的步骤;
当行向修改后的的第二LLR集合中的LLR行全部通过校验时,根据所述行向修改后的的第二LLR集合确定信息比特行。
7.根据权利要求6所述的方法,其特征在于,
所述使用第二LDPC矩阵对所述待处理LLR列进行列向修改包括:使用第二LDPC矩阵更新所述待处理LLR列;当更新后的待处理LLR列包括正确LLR列和不正确LLR列时,将更新后的待处理LLR列中正确LLR列的每个LLR放大;
所述使用所述第一LDPC矩阵对所述待处理LLR行进行行向修改包括:使用第一LDPC矩阵更新所述待处理LLR行;当更新后的待处理LLR行包括正确LLR行和不正确LLR行时,将更新后的待处理LLR行中正确LLR行的每个LLR放大。
8.根据权利要求7所述的方法,其特征在于,所述将更新后的待处理LLR行中正确LLR行的每个LLR放大包括:
根据更新后的待处理LLR行中的正确LLR行确定行码字;
根据第一公式和所述行码字确定在所述行向修改后的第二LLR集合中的LLR行;
所述第一公式为:LLR′ij=(1-2xij)*(2w-1-1),LLR′ij为在所述行向修改后的第二LLR集合中第j个LLR行的第i个LLR,xij为第j行的行码字中的第i个信息比特,所述w为LLR位宽,所述i和j均为正整数。
9.根据权利要求7至8中任一项所述的方法,其特征在于,所述LLR组的数量等于在一个行码字中信息比特块的总数;
在所述使用第二LDPC矩阵对所述待处理LLR列进行列向修改之后,所述方法还包括:
当所述列向修改后的第二LLR集合中的LLR列全部通过校验时,根据所述列向修改后的第二LLR集合确定信息比特行。
10.一种基于低密度奇偶校验LDPC的译码方法,其特征在于,包括:
接收无线信号;
根据所述无线信号获取对数似然比LLR集合,所述LLR集合包括第一预设数量的LLR行和至少一个LLR组;
将所述LLR集合的全部LLR行作为待处理LLR行;
使用第一LDPC矩阵对所述待处理LLR行进行行向修改;
当行向修改后的LLR集合中的LLR行全部通过校验时,根据所述行向修改后的LLR集合确定信息比特行;
当行向修改后的LLR集合包括不正确LLR行时,将行向修改后的LLR集合中的不正确LLR列作为待处理LLR列;
使用第二LDPC矩阵对所述待处理LLR列进行列向修改;
将所述列向修改后的LLR集合中的不正确LLR行作为所述待处理LLR行,触发所述使用第一LDPC矩阵对所述待处理LLR行进行行向修改的步骤。
11.根据权利要求10所述的方法,其特征在于,
所述使用第一LDPC矩阵对所述待处理LLR行进行行向修改包括:使用第一LDPC矩阵更新所述待处理LLR行;当更新后的待处理LLR行包括正确LLR行和不正确LLR行时,将更新后的待处理LLR行中正确LLR行的每个LLR放大;
所述使用所述第二LDPC矩阵对所述待处理LLR列进行列向修改包括:使用第二LDPC矩阵更新所述待处理LLR列;当更新后的待处理LLR列包括正确LLR列和不正确LLR列时,将更新后的待处理LLR列中正确LLR列的每个LLR放大。
12.根据权利要求11所述的方法,其特征在于,所述将更新后的待处理LLR行中正确LLR行的每个LLR放大包括:
根据更新后的待处理LLR行中的正确LLR行确定行码字;
根据第一公式和所述行码字确定在所述行向修改后的LLR集合中的LLR行;
所述第一公式为:LLR′ij=(1-2xij)*(2w-1-1),LLR′ij为在所述行向修改后的LLR集合中第j个LLR行的第i个LLR,xij为第j行的行码字中的第i个信息比特,所述w为LLR位宽,所述i和j均为正整数。
13.根据权利要求11至12中任一项所述的方法,其特征在于,所述LLR组的数量等于在一个行码字中信息比特块的总数;
所述方法还包括:当列向修改后的LLR集合中LLR列全部通过校验时,根据所述列向修改后的LLR集合确定信息比特行。
14.一种编码装置,其特征在于,包括:
获取单元,用于获取第一预设数量的信息比特行,每个所述信息比特行包括多个连续的信息比特块,每个信息比特块包括第二预设数量的信息比特;
编码单元,用于使用第一LDPC矩阵对每个所述信息比特行进行编码得到行码字;
构造单元,用于根据全部信息比特行中信息比特块构造信息比特列;
所述编码单元,还用于使用第二LDPC矩阵对所述信息比特列进行编码,得到列冗余比特组。
15.根据权利要求14所述的编码装置,其特征在于,
所述构造单元,具体用于按照所述信息比特行的次序从每个所述信息比特行的同一位置选取信息比特块;将选取的信息比特块组成信息比特列。
16.根据权利要求14所述的编码装置,其特征在于,所述第二预设数量为大于1的正整数;
所述构造单元,具体用于根据每个信息比特行中同一位置的信息比特块确定多个信息比特子序列,每个所述信息比特子序列包括多个信息比特且每个信息比特在所属信息比特块中的位置相同;
将所述多个信息比特子序列组成信息比特列。
17.根据权利要求14至16中任一项所述的编码装置,其特征在于,所述编码装置还包括:
第一发送单元,用于依次发送所述行码字对应的无线信号;
计时单元,用于从发送完最后一个行码字对应的无线信号开始计时;
所述第一发送单元,还用于在预设时间内未收到确认帧的情况下,发送所述列冗余比特组对应的无线信号。
18.根据权利要求14至16中任一项所述的编码装置,其特征在于,所述编码装置还包括:
第二发送单元,用于依次发送所述行码字对应的无线信号;
所述第二发送单元,还用于发送所述列冗余比特组对应的无线信号。
19.一种译码装置,其特征在于,包括:
接收单元,用于接收第一无线信号;
解调单元,用于根据所述第一无线信号获取第一对数似然比LLR集合,所述第一LLR集合包括第一预设数量的LLR行;
译码单元,用于使用第一LDPC矩阵修改所述第一LLR集合的LLR行;
所述接收单元,还用于在修改得到的第一修改LLR集合包括不正确LLR行的情况下,接收第二无线信号;
所述解调单元,还用于根据所述第二无线信号获取至少一个LLR组;
所述译码单元,还用于将第二LLR集合的全部LLR列作为待处理LLR列,每个LLR列包括一个LLR组以及在所述第一修改LLR集合中的多个LLR块,在所述LLR列中每个LLR块在所属LLR行的位置与LLR组在全部LLR组中的位置相同;使用第二LDPC矩阵对所述待处理LLR列进行列向修改;将列向修改后的第二LLR集合的不正确LLR行作为待处理LLR行;使用所述第一LDPC矩阵对所述待处理LLR行进行行向修改;当行向修改后的第二LLR集合包括不正确LLR行时,将所述行向修改后的的第二LLR集合中的不正确LLR列作为所述待处理LLR列,触发所述使用第二LDPC矩阵对所述待处理LLR列进行列向修改的步骤;当行向修改后的第二LLR集合中的LLR行全部通过校验时,根据所述行向修改后的第二LLR集合确定信息比特行。
20.根据权利要求19所述的译码装置,其特征在于,
所述译码单元,具体用于使用第二LDPC矩阵更新所述待处理LLR列;当更新后的待处理LLR列包括正确LLR列和不正确LLR列时,将更新后的待处理LLR列中正确LLR列的每个LLR放大;
所述译码单元,具体用于使用第一LDPC矩阵更新所述待处理LLR行;当更新后的待处理LLR行包括正确LLR行和不正确LLR行时,将更新后的待处理LLR行中正确LLR行的每个LLR放大。
21.根据权利要求20所述的译码装置,其特征在于,
所述译码单元,具体用于根据根据更新后的待处理LLR行中的正确LLR行确定行码字;根据第一公式和所述行码字确定在所述行向修改后的第二LLR集合中的LLR行;所述第一公式为:LLR′ij=(1-2xij)*(2w-1-1),LLR′ij为在所述所述行向修改后的第二LLR集合中第j个LLR行的第i个LLR,xij为第j行的行码字中的第i个信息比特,所述w为LLR位宽,所述i和j均为正整数。
22.根据权利要求20至21中任一项所述的译码装置,其特征在于,所述LLR组的数量等于一个行码字中信息比特块的总数;
所述译码单元,还用于当所述列向修改后的第二LLR集合中的LLR列全部通过校验时,根据所述列向修改后的第二LLR集合确定信息比特行。
23.一种译码装置,其特征在于,包括:
接收单元,用于接收无线信号;
解调单元,用于根据所述无线信号获取对数似然比LLR集合,所述LLR集合包括第一预设数量的LLR行和至少一个LLR组;
译码单元,用于将所述LLR集合的全部LLR行作为待处理LLR行,使用第一LDPC矩阵对所述待处理LLR行进行行向修改;当行向修改后的LLR集合中的LLR行全部通过校验时,根据所述行向修改后的LLR集合确定信息比特行;当行向修改后的LLR集合包括不正确LLR行时,将行向修改后的LLR集合中的不正确LLR列作为待处理LLR列;使用第二LDPC矩阵对所述待处理LLR列进行列向修改;将所述列向修改后的LLR集合中的不正确LLR行作为所述待处理LLR行,触发所述使用第一LDPC矩阵对所述待处理LLR行进行行向修改的步骤。
24.根据权利要求23所述的译码装置,其特征在于,
所述译码单元,具体用于使用第一LDPC矩阵更新所述待处理LLR行;当更新后的待处理LLR行包括正确LLR行和不正确LLR行时,将更新后的待处理LLR行中正确LLR行的每个LLR放大;
所述译码单元,具体用于使用第二LDPC矩阵更新所述待处理LLR列;当更新后的待处理LLR列包括正确LLR列和不正确LLR列时,将更新后的待处理LLR列中正确LLR列的每个LLR放大。
25.根据权利要求24所述的译码装置,其特征在于,
所述译码单元,具体用于根据更新后的待处理LLR行中的正确LLR行确定行码字;根据第一公式和所述行码字确定在所述行向修改后的LLR集合中的LLR行;所述第一公式为:LLR′ij=(1-2xij)*(2w-1-1),LLR′ij为在所述行向修改后的LLR集合中第j个LLR行的第i个LLR,xij为第j行的行码字中的第i个信息比特,所述w为LLR位宽,所述i和j均为正整数。
26.根据权利要求24至25中任一项所述的译码装置,其特征在于,所述LLR组的数量等于在一个行码字中信息比特块的总数;
所述译码单元,还用于当列向修改后的LLR集合中LLR列全部通过校验时,根据所述列向修改后的LLR集合确定信息比特行。
27.一种计算机存储介质,包括指令,其特征在于,当其在计算机上运行时,使得计算机执行如权利要求1至13中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010876461.0A CN114124108A (zh) | 2020-08-25 | 2020-08-25 | 基于低密度奇偶校验的编码方法、译码方法和相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010876461.0A CN114124108A (zh) | 2020-08-25 | 2020-08-25 | 基于低密度奇偶校验的编码方法、译码方法和相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114124108A true CN114124108A (zh) | 2022-03-01 |
Family
ID=80374384
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010876461.0A Pending CN114124108A (zh) | 2020-08-25 | 2020-08-25 | 基于低密度奇偶校验的编码方法、译码方法和相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114124108A (zh) |
-
2020
- 2020-08-25 CN CN202010876461.0A patent/CN114124108A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11616514B2 (en) | Method and apparatus for channel encoding and decoding in a communication system using a low-density parity check code | |
US11139835B2 (en) | Method and apparatus for data processing with structured LDPC codes | |
US8010869B2 (en) | Method and device for controlling the decoding of a LDPC encoded codeword, in particular for DVB-S2 LDPC encoded codewords | |
US8533556B2 (en) | Apparatus and method for channel encoding and decoding in communication system using low-density parity-check codes | |
KR20190038933A (ko) | Qc ldpc 코드의 레이트 매칭 방법 및 이를 위한 장치 | |
US7934146B2 (en) | Method, apparatus and computer program product providing for data block encoding and decoding | |
US10075197B1 (en) | Method and apparatus for transmitting hamming weight and codeword | |
WO2017121334A1 (zh) | 一种数据处理的方法和装置 | |
US10848185B2 (en) | Coding and decoding of polar codes extended to lengths which are not powers of two | |
US20240030941A1 (en) | Encoding and decoding method and apparatus | |
KR20190112124A (ko) | 높은 레이트의 긴 ldpc 코드 | |
CN114124108A (zh) | 基于低密度奇偶校验的编码方法、译码方法和相关装置 | |
CN112737600B (zh) | 译码方法和译码器 | |
CN113067582B (zh) | 一种并行译码方法及装置 | |
US11777524B2 (en) | Method for supporting rate-compatible non-binary LDPC code, and wireless terminal using same | |
US11683051B2 (en) | Method and apparatus for data processing with structured LDPC codes | |
TWI712269B (zh) | 以低密度奇偶校驗碼作為錯誤更正碼的資料解碼及其傳輸方法 | |
WO2023125061A1 (zh) | 级联码的编码和译码的方法以及通信装置 | |
KR101552355B1 (ko) | 저밀도 패리티 검사 부호를 사용하는 통신 시스템에서 채널부호 및 복호 장치 및 방법 | |
Shen et al. | GLDPC-PC Codes: Channel Coding Towards 6G Communications | |
Li et al. | Outer Codes | |
CN116436471A (zh) | 编码和解码方法、通信设备和存储介质 | |
KR20100061051A (ko) | 상하위 계층 간의 연동을 이용한 복호화 방법 및 장치와 그를 이용하여 데이터 송수신 시스템 |
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 |