CN113196671B - 用于获得级联码结构的装置和方法及其计算机程序产品 - Google Patents
用于获得级联码结构的装置和方法及其计算机程序产品 Download PDFInfo
- Publication number
- CN113196671B CN113196671B CN201880100216.1A CN201880100216A CN113196671B CN 113196671 B CN113196671 B CN 113196671B CN 201880100216 A CN201880100216 A CN 201880100216A CN 113196671 B CN113196671 B CN 113196671B
- Authority
- CN
- China
- Prior art keywords
- code
- vector
- outer code
- concatenated
- processor
- 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
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/13—Linear codes
-
- 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/29—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—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 combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本公开总体上涉及数据编码和译码技术,尤其涉及用于获得级联码结构的装置和方法,以及相应的计算机程序产品。所提出的装置和方法能够构造出以更好的编码长度适应性和减少译码延迟以及低复杂度为特点的级联码,码长同时保持与仅基于极化码或具有外码长度等于2的幂的线性外码的常规级联码相似或甚至更好的纠错性能。
Description
技术领域
本公开总体上涉及数据编码和译码技术,尤其涉及用于获得在数据编码和译码技术中使用的级联码结构的装置和方法,以及相应的计算机程序产品。
背景技术
极化码以其具有显式构造和计算高效的连续抵消(Successive Cancellation,SC)、SC列表(SC List,SCL)或循环冗余校验(Cyclic Redundancy Check,CRC)辅助的SCL译码算法的能力来实现对称离散无记忆信道的容量而闻名。极化码的基本思想是将物理通信信道呈现为多个极化的比特信道,并仅在几乎无噪声的那些比特信道上传输信息比特,即,随着码长的增加,信道容量趋于1,而当码长增加时,将在容量趋于0的其余(噪声)比特信道上传输冻结比特。鉴于此,极化码的构造涉及基于信道容量找到这种几乎无噪声的信道。
但是,极化码存在一个问题,与极化码的长度有关,极化码的长度限于P=2n值,其中n是正整数。对于某些需要极化码的其他长度的实际应用,需要克服该限制。另一个问题是,由于通常在译码操作中使用的极化译码器的连续特性,SC/SCL/CRC辅助的SCL译码延迟仍然很高。
已经提出了解决上述问题的不同方法,其中一种方法将极化码与其他代码级联。通过这种级联,将极化码用作内码,而所述其他代码则充当外码。外码本身通常被实现为极化码所属的线性分组码。换句话说,将内极化码与外极化码级联在一起,从而提供了级联或多段码的情况是可行的,甚至是实际的。尽管这种级联码由于并行译码内极化码的可能性而可以减少译码延迟,但是对外极化码的长度有限制,该长度仍然等于2的幂,从而限制了整个级联码的长度。此外,用于构造级联码的现有技术具有很高的复杂度,这使得它们不太实用甚至不切实际。
因此,与需要一种解决方案来为级联码提供与现有技术相比更好的长度适应性和译码延迟降低以及更低的构造复杂度。
发明内容
提供本发明内容以简化的形式介绍一系列的概念,这些概念将在下面的详细描述中进一步描述。本发明内容既不旨在标识本公开的关键特征或必要特征,也不旨在用于限制本公开的范围。
本公开的目的是提供一种用于获得级联码结构的方案,该级联码结构用于构造级联码,该级联码的码长不必等于2的幂,并且具有减少的译码延迟和低构造复杂度的特点。
根据第一方面,提供了一种用于获得级联码结构的装置。所述装置包括至少一个处理器和耦合到所述至少一个处理器的存储器。所述存储器存储处理器可执行的指令,所述处理器可执行的指令在由所述至少一个处理器执行时,使所述至少一个处理器接收输入数据,所述输入数据包括:外码长度T,其中T是正整数;由外码和内极化码组成的级联码的期望长度N,其中N=T·2n≤Nmax,Nmax是所述级联码的最大长度,2n是极化码长度,n是正整数;以及表示信息比特的数量的级联码维度K。之后,指示所述至少一个处理器基于所述输入数据并根据(i)对应于所述外码长度T的预定义的比特索引序列或(ii)极化的比特信道的容量,计算外码维度的向量。所述外码维度的向量的每个向量分量表示用于每个外码的信息比特的部分Ki,使得接下来,指示所述至少一个处理器根据所述输入数据确定用于所述内极化码的生成器矩阵。此后,指示所述至少一个处理器基于所述长度T和N、所述外码维度的向量以及用于所述内极化码的生成器矩阵,获得所述级联码结构。因此,获得的所述级联码结构使得级联码的构造具有码长不必等于2的幂、低译码延迟和更好的纠错性能的,并且简化了代码构造过程本身,从而节省了系统资源。
在第一方面的一种实施形式中,所述外码包括线性分组码。在这种情况下,所述至少一个处理器还被配置为基于所述长度T和所述外码维度的向量,确定用于所述外码的生成器矩阵,并且基于所述长度T和N、所述外码维度的向量、用于所述外码的所述生成器矩阵和用于所述内极化码的所述生成器矩阵,获得所述级联码结构。在根据第一方面的装置的使用中,因为允许使用不同类型的外码,可以提供增加的灵活性。
在第一方面的一种实施形式中,通过使用循环冗余校验(Cyclic RedundancyCheck,CRC)比特来设置所述级联码维度K。在由根据第一方面的装置获得的所述级联码结构使用中,这提供了更好的纠错性能和增加的灵活性。
在第一方面的一种实施形式中,所述预定义的比特索引序列的长度为 其中,/>是最大极化码长度,并且所述预定义的比特索引序列包含比特索引(1,2,...,Nsequence)的排列。在这种情况下,所述至少一个处理器被配置为通过以下步骤计算所述外码维度的向量:从所述预定义的比特索引序列中去除大于N的所述比特索引,以获得缩减的比特索引序列;初始化信息比特屏蔽向量u=[uj],其中,每个向量分量uj=0且j=1,...,N;为所述信息比特屏蔽向量u的每个向量分量uj赋1,其索引出现在所述缩减的比特索引序列的前K个比特索引之中;从所述信息比特屏蔽向量计算用于每个外码的所述信息比特的部分Ki:
这允许快速有效地将所述信息比特分配给所述级联码的所述外码。
在第一方面的另一种实施形式中,所述预定义的比特索引序列的长度为 其中,/>是最大极化码长度,并且所述预定义的比特索引序列包含由来自一组{1,2,...,Nsequence/T}的整数表示的比特索引。在这种情况下,所述至少一个处理器被配置为通过以下步骤来计算所述外码维度的向量:从所述预定义的比特索引序列中去除大于N/T的所述比特索引以获得缩减的比特索引序列;用N/T个零向量分量Ki初始化所述外码维度的向量;以及当向量分量Ki的索引出现在所述缩减的比特索引序列的前K个比特索引之中时,每次将每个所述向量分量Ki增加1。这允许快速有效地将所述信息比特分配给所述级联码的所述外码。
在第一方面的又一实施形式中,在使用所述极化的比特信道的所述容量的情况下,所述至少一个处理器被配置为通过以下方式计算所述外码维度的向量:估计由每个内极化代码提供的所述极化的比特信道的所述容量Ci;计算用于每个外码的所述信息比特的所述部分Ki如下:其中,/>i=1,...,N/T;获得用于所述外码的所述信息比特的所有部分Ki之和;确定获得的所述所有部分Ki之和是否等于K;如果所述获得的所述所有部分Ki之和分别小于/大于K:a)找到所述索引i,使得差值/>最大/最小,b)对相应的部分Ki加1/从相应的部分Ki中减1,并确保在所述加/减之后的部分Ki满足以下条件:0≤Ki≤T,以及c)执行操作a)-b),直到所述获得的所述所有部分Ki之和等于K。这允许快速有效地将所述信息比特分配给所述级联码的所述外码。此外,本段中公开的概念适合于计算所述预定义的比特索引序列本身,这将在详细描述中进一步解释。
在第一方面的一种实施形式中,所述存储器被配置为预先存储所述预定义的比特索引序列,并且所述至少一个处理器还被配置为在接收到所述输入数据之后从所述存储器检索所述预定义的比特索引序列。在这种情况下,预定义的比特索引序列由以下步骤生成:将范围(1,2,...,Nsequence)内的所有可能值K作为信息比特的数量;通过使用每个K来计算所述外码维度的向量;更改所述外码维度的向量,使得对于每对相邻值K和K-1,所述外码维度的向量彼此仅相差一个向量分量;以及通过使用这些向量分量的所述索引生成所述预定义的比特索引序列。这允许减少获得所述级联码结构所需的时间和系统资源。
根据第二方面,提供了一种信息编码装置。所述信息编码装置包括至少一个处理器和耦合到所述至少一个处理器的存储器。所述存储器存储处理器可执行的指令,所述处理器可执行的指令在由所述至少一个处理器执行时,使所述至少一个处理器用于:接收K个信息比特的向量;接收根据第一方面的装置获得的所述级联码结构;以及利用所述级联码结构对所述K个信息比特的向量进行编码。这使得编码过程更有效且资源占用更少,并提供更好的纠错性能。
根据第三方面,提供了一种信息译码装置。所述信息译码装置包括至少一个处理器和耦合到所述至少一个处理器的存储器。所述存储器存储处理器可执行的指令,所述处理器可执行的指令在由所述至少一个处理器执行时,使所述至少一个处理器用于:接收信道输出,所述信道输出包括通过使用由根据第一方面的装置获得的所述级联码结构编码的信息比特;接收所述级联码结构本身;以及通过使用级联码结构从所述接收的信道输出中检索信息比特。这使得译码过程更有效且资源占用更少,并提供更好的纠错性能。
在第三方面的一种实施形式中,所述至少一个处理器还被配置为通过并行地译码所述内极化码来检索所述信息比特。这允许显著减少所述译码延迟。
根据第四方面,提供了一种用于获得级联码结构的方法。所述方法包括接收输入数据的步骤,所述输入数据包括:外码长度T,其中T是正整数;由外码和内极化码组成的级联码的期望长度N,其中N=T·2n≤Nmax,并且Nmax是所述级联码的最大长度,2n是极化码长度,并且n是正整数;和表示信息的比特数量的级联码维度K。所述方法还包括以下步骤:基于所述输入数据并根据(i)对应于所述外码长度T的预定义的比特索引序列或(ii)极化的比特信道的容量来计算外码维度的向量。所述外码维度的向量的每个向量分量表示用于每个外码的信息比特的部分Ki,使得所述方法还包括根据所述输入数据确定用于所述内极化码的生成器矩阵的步骤。所述方法的下一步包括基于所述长度T和N、所述外码维度的向量以及用于所述内极化码的生成器矩阵,获得所述级联码结构。因此,获得的所述级联码结构使得能够构造具有码长为不必等于2的幂、低译码延迟和更好的纠错性能的级联码,并且简化了代码构造过程本身,从而节省了系统资源。
在第四方面的一种实现形式中,所述外码包括线性分组码。在这种情况下,所述方法还包括基于所述长度T和所述外码维度的向量来确定用于所述外码的生成器矩阵的步骤。鉴于此,基于长度T和N、外码维度的向量、用于外码的生成器矩阵和用于内极化码的生成器矩阵,执行获得级联码结构的步骤。在根据第四方面的方法的使用中,这提供了增加的灵活性,因为它允许使用不同类型的所述外码。
在第四方面的一种实施形式中,通过使用循环冗余校验(CRC)比特来设置所述级联码维度K。在由根据第四方面的方法获得的所述级联码结构使用中,这提供了更好的纠错性能和增加的灵活性。
在第四方面的一种实施形式中,所述预定义的比特索引序列的长度为 其中,/>是最大极化码长度,并是所述预定义的比特索引序列包含比特索引(1,2,...,Nsequence)的排列。在这种情况下,计算所述外码维度的向量的步骤包括:从所述预定义的比特索引序列中去除大于N的所述比特索引以获得缩减的比特索引序列;初始化信息比特屏蔽向量u=[uj],其中,每个向量分量uj=0且j=1,...,N;为所述信息比特屏蔽向量u中索引出现在所述缩减的比特索引序列的前K个比特索引的每个向量分量uj赋1;从所述信息比特屏蔽向量计算用于每个外码的所述信息比特的部分Ki,如下:
这允许快速有效地将所述信息比特分配给所述级联码的所述外码。
在第四方面的另一种实施形式中,所述预定义的比特索引序列的长度为 其中,/>是最大极化码长度,以及所述预定义的比特索引序列包含由来自一组{1,2,...,Nsequence/T}的整数表示的比特索引。在这种情况下,计算所述外码维度的向量的步骤包括:从所述预定义的比特索引序列中去除大于N/T的所述比特索引以获得缩减的比特索引序列;用N/T个零向量分量Ki初始化所述外码维度的向量;以及每当向量分量Ki的索引出现在所述缩减的比特索引序列的前K个比特索引中时,将每个所述向量分量Ki加1。这允许快速有效地将所述信息比特分配给所述级联码的所述外码。
在第四方面的一种实施形式中,在使用所述极化的比特信道的所述容量的情况下,计算所述外码维度的向量的步骤包括:估计由每个内极化代码提供的所述极化的比特信道的所述容量Ci;计算用于每个外码的所述信息比特的所述部分Ki,如下:其中,/> i=1,...,N/T;获得用于所述外码的所述信息比特的所有部分之和Ki;确定所述获得的所述所有部分Ki之和是否等于K;如果所述获得的所述所有部分Ki之和分别小于/大于K:a)找到所述索引i,使得差值/>最大/最小,b)对相应的部分Ki加1/从相应的部分Ki中减1,并确保在所述加/减之后的部分Ki满足以下条件:0≤Ki≤T,以及c)执行操作a)-b),直到获得的所述所有部分Ki之和等于K。这允许快速有效地将所述信息比特分配给所述级联码的所述外码。此外,本段中公开的概念适合于计算所述预定义的比特索引序列本身,这将被更详细地解释。
在第四方面的一种实施形式中,所述方法还包括在所述接收所述输入数据之后获得所述预定义的比特索引序列的步骤。在这种情况下,通过以下方式生成所述预定义的比特索引序列:将(1,2,...,Nsequence)范围内的所有可能值K作为信息比特的数量;通过使用每个K计算所述外码维度的向量;改变所述外码维度的向量,使得对于每对相邻值K和K-1,所述外码维度的向量彼此仅相差一个向量分量;以及通过使用这些向量分量的所述索引生成所述预定义的比特索引序列。这允许减少获得所述级联码结构所需的时间和系统资源。
根据第五方面,提供了一种信息编码方法。所述信息编码方法包括以下步骤:接收K个信息比特的向量;接收根据第四方面的方法获得的所述级联码结构;以及通过使用所述级联码结构对所述K个信息比特的向量进行编码。这使得编码过程更有效且资源占用更少,并提供更好的纠错性能。
根据第六方面,提供了一种信息译码方法。所述信息译码方法包括以下步骤:接收信道输出,所述信道输出包括通过使用根据第四方面的方法获得的所述级联码结构编码的信息比特;接收所述级联码结构本身;以及通过使用所述级联码结构从所述接收到的通道输出中检索所述信息比特。这使得译码过程更有效且资源占用更少,并提供更好的纠错性能。
在第六方面的一种实施形式中,检索步骤包括并行地译码所述内极化码。这允许显著减少所述译码延迟。
根据第七方面,提供了一种计算机程序产品。所述计算机程序产品包括存储计算机可执行指令的计算机可读存储介质,所述计算机可执行指令在由至少一个处理器执行时,使所述至少一个处理器执行根据第四方面的方法的步骤。因此,根据第四方面的方法可以以计算机指令或代码的形式体现,从而提供其使用的灵活性。
通过阅读以下详细描述并查看附图,本公开的其他特征和优点对于本领域技术人员将是显而易见的。
附图说明
在下面的示例中,将参考附图进行更详细地描述,其中:
图1示出了根据本公开的一方面的用于获得级联码结构的装置的框图;
图2示出了根据本公开另一方面的获得级联码结构的方法的流程图;
图3示出了一个实施例,该实施例涉及在图2所示的方法中使用类型I的预定义的比特索引序列;
图4示出了另一个实施例,该实施例涉及在图2所示的方法中使用类型II的预定义的比特索引序列;
图5示出了用于计算类型I或类型II的预定义的比特索引序列的方法的流程图;
图6示出了在图2所示的方法中涉及使用极化的比特信道的容量的另一个实施例;
图7示出了包括用于线性外码的生成器矩阵的数据库;
图8示出了根据本发明的另一方面的信息编码方法的流程图;
图9示出了根据本发明的另一方面的信息译码方法的流程图;
图10表示在通信系统中使用图1所示的装置的一个例子;以及
图11-14示出了在基于通过图2所示的方法获得的级联码结构构造的级联码和通过使用现有技术的速率匹配方案构造的常规极化码之间的代码性能比较的结果。
具体实施方式
参考附图进一步更详细地描述本公开的各种实施例。然而,本公开可以以许多其他形式来体现,并且不应被解释为限于以下描述中公开的任何特定结构或功能。相反,提供这些实施例是为了使本公开的描述详细和完整。
根据本公开,对于本领域技术人员来说显而易见的是,本公开的范围涵盖本文公开的任何实施例,而不管该实施例是独立实现还是与本公开的任何其他实施例协同实现。例如,本文公开的装置和方法可以通过使用本文提供的任意数量的实施例来实现。此外,应当理解,本公开的任何实施例可以使用所附权利要求中呈现的一个或更多个元素或步骤来实现。
如本文所使用的,术语“级联码”是指通过级联或组合两个或更多个更简单的代码而获得的纠错码,以便以合理的复杂度实现良好的性能。更具体地说,级联码由内码和外码组成。此外,本公开暗示内码仅由极化码表示,而外码由任何类型的线性分组纠错码(或简称为线性外码)或非线性外码(例如,诸如Goethals、Kerdock和Preparata非线性码、具有明确定义的码字列表的非线性码等)。
极化码本身是线性外码的一种,它允许人们在极化的比特信道之间“重新分配”错误的概率,该极化的比特信道代表感兴趣的物理通信信道。某些比特信道比其他比特信道具有更低的错误概率。具有较低错误概率的比特信道也被称为无噪声比特信道,然后被用于发送信息比特。其他比特信道是“冻结的”,从某种意义上说,他们仅用于传输冻结比特。由于发送侧和接收侧都知道哪些比特信道被冻结,所以可以将任意值(例如二进制零)分配给每个冻结比特信道。因此,极化码允许人们通过使用高可靠的比特信道来传递期望的信息比特,从而使错误的发生最小化。同时,极化码通过更改F,允许由R=K/P表示的任何码率(其中P=K+F是极化码的长度,K是信息比特的数量,F是冻结比特的数量),但是它们的主要缺点是P总是等于2的幂,即P=2n,其中n是正整数。换句话说,通过使用极化码生成的比特信道被限制为P=2n的数量。为了克服该限制,已经提出了不同的方法,包括涉及使用级联码的方法。
与级联码相关的现有技术解决方案主要依赖于具有类似于P的外码长度的线性外码。换句话说,现有技术的解决方案使用的外码长度也等于2的幂。然而,如果外码长度不必等于2的幂,则级联码的长度N的可用范围要宽得多。例如,假设级联码的最大长度N限制为1024,在2的幂的情况下和任意情况下,将有不同数量的外码长度,即:
-对于N=2t2n,N∈{64,128,256,512,1024},其中2t是现有技术解决方案中使用的线性外极化码的有限长度,t是正整数,并且
-对于N=T2n,T∈{5,6,7,88},N∈{64,80,96,112,128,160,192,224,256,320,384,448,512,640,768,896,1024}是线性外码的任意长度。
因此,现有技术的解决方案提供了不充分的码长适应性,并且同时遭受高代码构造复杂度的困扰,需要使用许多系统资源。
还应注意,考虑到内码仅由常规的极化码表示,因此级联码的构造基本上取决于外码的构造。反过来,外码的构造基于对其码率的选择,或者换句话说,基于对其信息比特的分配,因为码率和信息比特的数量是相互依赖的参数,这对本领域技术人员来说是显而易见的。分配给每个外码的信息比特的数量也被称为外码维度,并且用于所有外码的外码维度被组合成外码维度的向量。
本公开提供了一种用于获得级联码结构的新的解决方案,该解决方案使得能够构造具有不必等于2的幂的码长的级联码,与常规的极化码相比具有低的译码延迟和更好的纠错性能,并且简化了代码构造过程本身。
如本文所使用的,术语“级联码结构”是指构造期望长度的级联码所需的参数的组合。通常,级联码结构包括长度T和N、外码维度的向量以及用于内极化码的生成器矩阵。在线性外码的情况下,除了上面列出的参数之外,级联码结构还包括用于外码的生成器矩阵。如此定义的级联码结构可以用于编码和译码过程,这将在后面讨论。
图1示出了根据本公开的一方面的用于获得级联码结构的装置100的框图。如图1所示,装置100包括存储器102和耦合到存储器102的至少一个处理器104。存储器102存储处理器可执行指令106,该处理器可执行指令106将由至少一个处理器104执行,以适当的方式获得级联码结构。
存储器102可以被实现为现代电子计算机中使用的非易失性或易失性存储器。作为示例,非易失性存储器可以包括只读存储器(Read-Only Memory,ROM)、铁电随机存取存储器(Random-Access Memory,RAM)、可编程ROM(Programmable ROM,PROM)、电可擦除PROM(Electrically Erasable PROM,EEPROM)、固态驱动器(solid state drive,SSD)、闪存、磁盘存储器(例如硬盘驱动器和磁带)、光盘存储器(例如CD,DVD和蓝光光盘)等。对于易失性存储器,其示例包括动态RAM、同步DRAM(Synchronous DRAM,SDRAM)、双数据速率SDRAM(Double Data Rate SDRAM,DDR SDRAM)、静态RAM等。
处理器104可以实现为中央处理器(central processing unit,CPU)、通用处理器、单用途处理器、微控制器、微处理器、专用集成电路(application specificintegrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)、数字信号处理器(digital signal processor,DSP)、复杂的可编程逻辑设备等。值得注意的是,处理器104可以实现为前述的任意组合。作为示例,处理器104可以是两个或更多个CPU、通用处理器等的组合。
存储在存储器102中的处理器可执行指令106可以被配置为计算机可执行代码,其使得处理器104执行本公开的各方面。用于执行本公开各方面的操作或步骤的计算机可执行代码可以用一种或多种编程语言的任意组合来编写,例如Java、C、C++、Python等。在一些示例中,计算机可执行代码可以是高级语言的形式或者是预编译的形式,并且由解释器(也预存储在存储器102中)动态地生成。
图2示出了根据本公开的另一方面的获得级联码结构的方法200的流程图。当用处理器可执行指令106引起处理器104时,方法200旨在由装置100的处理器104执行。
特别地,方法200开始于步骤S202,其中处理器104接收以下输入数据:
-外码长度T;
-由外码和内极化码组成的级联码的期望长度N,其中N=T·2n≤Nmax,并且Nmax是级联码的最大长度,例如,其取决于使用级联码的通信或存储系统,2n是极化码长度,n是正整数;以及
-只表示信息比特的数量的参数的级联码维度K。
接下来,方法200进行到步骤S204,其中,处理器104基于输入数据,以及根据对应于外码长度T的预定义的比特索引序列,或者在另一个实施例中,对应于极化的比特信道的容量,来计算外码维度的向量。所述外码维度的向量的每个向量分量代表用于每个外码的信息比特的部分Ki,使得此后,该方法进行到步骤S206,在步骤S206中,处理器104基于输入数据确定用于内极化码的生成器矩阵。方法200在步骤S208处结束,在步骤S208中,处理器104基于长度T和N、外码维度的向量以及用于内极化码的生成器矩阵,获得级联码结构。
在涉及使用线性外码的一个实施例中,方法200包括一个附加步骤(未示出),其中处理器104还基于长度T和外码维度的向量来确定用于外码的生成器矩阵。该附加步骤可以直接在步骤S204之后或步骤S206之后执行。在这种情况下,在步骤S208中,处理器104基于长度T和N、外码维度的向量、用于外码的生成器矩阵和用于内极化码的生成器矩阵,来获得级联码结构。
在一个实施例中,在方法200的步骤S202中接收的级联码维度K可以通过考虑循环冗余校验(Cyclic Redundancy Check,CRC)比特来设置。换句话说,级联码维度K可以指示信息比特加上CRC比特的数量。
现在将参照图3和图4描述涉及在步骤S204中使用预定义的比特索引序列的实施例。特别地,图3和图4示出了分别根据类型I和类型II的预定义的比特索引序列来计算外码维度的向量的流程图。
更具体地说,类型I的预定义的比特索引序列的长度为其中/>是最大极化码长度,并表示比特索引的排列(1,2,...,Nsequence)。预定义的比特索引序列的这种实现意味着所有序列项都是唯一的,即在序列中不重复。在这种情况下,处理器104被配置为通过执行构成步骤S204的子步骤S302-S308来计算外码维度的向量。具体地,在子步骤S302中,处理器104从预定义的比特索引序列中移除大于N的比特索引,以获得缩减的比特索引序列。此后,处理器104在子步骤S304中初始化信息比特屏蔽向量u=[uj],其中,每个向量分量uj=0并且j=1,2,...,N。接下来,在子步骤S306中,处理器104向信息比特屏蔽向量u中索引出现在缩减的比特索引序列的前K个比特索引中的每个向量分量uj赋1。最后,在最后的子步骤S308中,处理器104从信息比特屏蔽向量计算用于每个外码的信息比特的部分Ki,如下:
下面通过使用数值示例来更详细地解释图3所示的上述流程图。值得注意的是,给出数值示例仅出于说明性目的,并且不应被解释为对本公开的任何限制。特别地,在数值示例中使用的不同代码的长度在实践中很少或几乎不出现,并且只是为了避免繁琐的计算而被选择。因此,数值示例的目的是向读者解释如何处理步骤S204。现在回到数值示例,让我们首先进行以下假设:
-外码长度T=5,
-级联码的最大长度:
-待构造的级联码的期望长度:N=T·2n=20,
-级联码维度K=10,并且
-类型I的预定义的比特索引序列给出如下排列:SI=(40,39,35,38,30,20,37,34,29,36,33,19,28,25,32,18,15,27,10,24,17,31,14,26,23,9,16,13,22,8,5,12,7,4,21,11,3,6,2,1)。
对于这样的外码长度T和期望的长度N,Ki的数量(或者换言之,要使用的外码的数量)等于N/T=20/5=4。这意味着处理器104需要为四个外码中的每一个找到部分Ki,即以[K1,K2,K3,K4]的形式找到外码维度的向量,其中(K1+K2+K3+K4)=K=10。接下来,让我们在步骤204中应用上述所有假设。根据子步骤S302,处理器104从预定义的比特索引序列(包括40个项)中移除大于20的比特索引,以获得缩减的比特索引序列。因此,缩减的比特索引序列应包括以下各项:
之后,在子步骤S304中,处理器104初始化信息比特屏蔽向量u=[uj],其中,每个向量分量uj=0并且j=1,2,...,20。换句话说,信息比特屏蔽向量如下所示:
u=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]。
接下来,在子步骤S306中,指示处理器104为索引出现在缩减的比特索引序列的前K个比特索引中的每个向量分量uj赋1,即(20,19,18,15,10,17,14,9,16,13)。也就是说,信息比特屏蔽向量被转换为以下内容:
u=[0,0,0,0,0,0,0,0,1,1,0,0,1,1,1,1,1,1,1,1]。
最后,在子步骤S308中,处理器104根据所述等式(1)计算用于外码的部分Ki,从而获得[0,2,3,5]形式的外码维度的向量。作为所述等式(1)的替代,处理器104可以首先被配置为将修改后的向量u逐行整形为大小为N/T×T的矩阵,并且简单地通过计数矩阵的每行中有多少个1来计算部分Ki,如下示意性所示:
为了使处理器104能够理解,涉及在步骤S204中使用类型I的预定义的比特索引序列的实施例可以被写成以下伪代码:
伪代码1:基于SI计算外码维度的向量。
输入:
-级联码的长度N,其中,N=T2n;
-外码长度T;
-级联码维度K;
-比特索引序列SI。
输出:
-部分Ki,i=1,...,N/T。
执行:
1.从码序列SI中移除所有大于N的元素或比特索引,得出
2.初始化u=[uj],,其中对于uj=0;
3.为索引出现在的前K个比特索引中的所有向量分量uj赋1;
4.计算
至于类型II的预定义的比特索引序列,它具有相同的长度但是包括由来自{1,2,...,Nsequence/T}集合的整数表示的比特索引。这意味着,与类型I的序列相反,序列项可以在序列内重复。在这种情况下,处理器104被配置为通过执行构成步骤S204的子步骤S402-S406来计算外码维度的向量。具体地,在子步骤S402中,处理器104从预定义的比特索引序列中移除大于N/T的比特索引,以获得缩减的比特索引序列。之后,在子步骤S404中,处理器104使用N/T个零向量分量Ki来初始化外码维度的向量,在子步骤S406中,每当每个向量分量Ki的索引出现在缩减的比特索引序列的前K个比特索引中时,处理器104将每个向量分量Ki增加1,如下式所示:
其中,[x∈A]表示指示函数。
下面,通过使用与图3所示的流程图相同的数值示例,来更详细地说明图4所示的上述流程图。换句话说,在涉及使用类型II的预定义的比特索引序列的实施例中,将考虑相同的假设。唯一的区别是类型II的预定义的比特索引序列将示出如下(作为示例):
SII=(8,8,7,8,6,4,8,7,6,8,7,4,6,5,7,4,3,6,2,5,4,7,3,6,5,2,4,3,5,2,1,3,2,1,5,3,1,2,1,1)。
基于此,根据子步骤S402,由处理器104获得的缩减的比特索引序列包括以下项目:
之后,在子步骤S404中,处理器104以N/T个零向量分量Ki初始化外码维度的向量,如下所示:
[K1,K2,K3,K4]=[0,0,0,0]。
接下来,在子步骤S406中,每当索引i出现在根据所述等式(2)的的前K个(即10个)比特索引中时,指示处理器104对Ki加1,从而得出以下外码维度的向量:
[K1,K2,K3,K4]=[0,2,3,5]。
为了使处理器104能够理解,涉及在步骤S204中使用类型II的预定义的比特索引序列的实施例可以被写成以下伪代码:
伪代码2:基于SH计算外码维度的向量。
输入:
-级联码的长度N,其中,N=T2n;
-外码长度T;
-级联码维度K;
-比特索引序列SII。
输出:
-部分Ki,i=1,...,N/T。
执行:
1.从码序列SII中移除所有大于N/T的元素或比特索引,得出
2.对于初始化Ki=0;
3.计算/>
在一个实施例中,类型I或类型II的两个预定义的比特索引序列都是预先计算的,即在开始方法200之前,是由装置100本身,即由处理器104,或由远程设备计算的。在后一种情况下,装置100可以被配置为通过无线或有线连接连接到远程设备,以便下载预定义的比特索引序列并将其存储在存储器102中以供进一步使用。这允许在方法200的执行期间降低资源成本。然而,不管涉及的是装置100还是远程设备,预定义的比特索引序列的计算都可以如下面参考图5所讨论的那样来执行。
更具体地,图5示出了用于计算类型I或类型II的预定义的比特索引序列的方法500。方法500仅需要长度T和Nmax作为输入数据,并且从步骤S502开始,在步骤S502中,考虑所有可能的值K=1,...,Nmax以进行进一步处理。在下一步骤S504中,通过使用每个可能值K来计算外码维度的向量。之后,在步骤S506中,对计算出的外码维度的向量进行改变,使得对于每对相邻值K和K-1,外码维度的向量彼此仅相差一个向量分量。在最后的步骤S508中,通过使用这样的向量分量的索引来生成类型I或类型II的预定义的比特索引序列。
应当注意,方法500根据应该计算类型I和类型II的预定义的比特索引序列中的哪一个来不同地执行。
特别地,对于两种类型的比特索引序列,方法500可以被编写为以下伪代码:
伪代码3:比特索引序列的构造。
输入:
-级联码的最大长度Nmax,其中
-外码长度T。
输出:
-比特索引序列SI或SII。
执行:
1.If比特索引序列为SI,则:
2.初始化u=[uj],其中,对于uj=0;
3.End if
4.初始化Kprevi=0,i=1,...,Nmax/T;
5.For所有K∈{1,...,Nmax}执行:
6.通过寻找用于级联码的Ki,i=1,...,Nmax/T来计算外码维度的向量。为此,此处使用了伪代码4,稍后将对此进行讨论。
7.找到索引集合,其中外码维度的两个向量(对于不同的K)是不同的:
8.If(即,外码维度的两个向量在一个向量分量中互不相同),则:
9.i*=i,
10.否则:
11.通过使用以下方法之一估计信道容量Ci,i=1,...,Nmax/T:密度演化、近似公式或表格数据(本领域技术人员众所周知的)。特别是,可以在这里使用由S.tenBrink、G.Kramer和A.Ashikhmin提出的近似公式(见他们的工作成果“Design of Low-DensityParity-Check Codes for Modulation and Detection”(《用于调制和检测的低密度奇偶校验代码的设计》),电气电子工程师学会(IEEE)通信学报,2004年4月第52卷,第4期,第670-678页);
12.
13.对于所有Ki=Kprevi;
14.
15.End if
16.If比特索引序列为SI,则:
17.j*=max{j:uj=0,j=(i*-1)T+1,...,i*T};
18.
19.SI(K)=j*;
20.End if
21.If比特索引序列为SH,则:
22.SH(K)=i*;
23.End if
24.Kprevi=Ki,i=1,...,Nmax/T;
25.End for
在一个实施例中,当需要节省存储器102的存储器资源时,对于所有可能的值K=1,...Nmax/2,可以通过使用伪代码3来构造长度为Nmax/2的比特索引序列。可以在线计算比特索引序列的另一半,如下所示:
-如果比特索引序列为SI,则SI(Nmax-K+1)=Nmax-SI(K)+1,或者
-如果比特索引序列是SII,则SII(Nmax-K+1)=Nmax/T-SH(K)+1。
至于在步骤S204中涉及使用极化的比特信道的容量的实施例,现在将参照图6进行描述。特别地,图6示出用于通过执行构成步骤S204的步骤S602-S614来计算外码维度的向量的流程图。首先,在步骤S602中,处理器104通过使用以下之一来估计由每个内极化码提供的极化的比特信道的容量Ci:密度演化、近似公式或表格数据。所有这些技术在现有技术中都是众所周知的(例如,参见上述的S.ten Brink,G.Kramer,and A.Ashikhmin的工作成果)。接下来,在步骤S604中,处理器104计算用于每个外码的信息比特的部分Ki,如下:
其中,
此后,在步骤S606中,指示处理器104获得用于外码的信息比特的所有部分Ki之和,在步骤S608中,确定该所有部分Ki之和是否等于K。如果确定结果为“是”,则在步骤S610中,处理器104通过使用部分Ki来计算外码维度的向量。同时,如果确定结果为“否”,则处理器104继续进一步处理部分Ki。特别地,如果确定所有部分Ki之和小于K,则处理器104在步骤S612中找到索引i,以使差值最大,并在步骤S614中向相应的部分Ki加1。然而,如果确定总和大于K,则处理器104在步骤S612中找到索引i,使得差值/>最小,并在步骤S614中从相应的部分Ki减去1。无论部分Ki的总和是小于还是大于K,处理器104应确保在所述加/减之后的相应的部分Ki满足以下条件:0≤Ki≤T。此外,处理器104返回到步骤S606,以便再次获得所有部分Ki之和,然后返回到步骤S608,以便重新检查总和是否等于K。如果仍然存在“否”,则处理器104重复步骤S612和S614。换句话说,重复执行步骤S606、S608、S612和S614,直到处理器104在步骤S608中获得确定结果“是”为止。
为了使处理器104能够理解,图6所示的流程图可以表示为以下伪代码:
伪代码4:基于信道容量计算外码维度的向量。
输入:
-级联码的长度N,其中,N=T2n;
-外码长度T;
-级联码维度K。
输出:
-部分Ki,i=1,...,N/T。
执行:
1.通过使用以下方法之一估算Ci,i=1,...,N/T:密度演化、近似公式或表格数据(注意:这里可以用S.ten Brink,G.Kramer,A.Ashikhmin公开的近似公式);
2.
3.
4.时,执行:
5.If则:
6.
(注意:这意味着变量用索引表示,不等式表示一个限制,其中“s.t.”代表“服从”)
7.
8.否则:
9.
10.
11.End if
12.End while
应当注意的是,伪代码4也可以在方法500的步骤S504中使用,以针对所有可能的值K计算外码维度的向量。
回到线性外码的情况,用于线性外码的生成器矩阵可以如下确定。在一个实施例中,存储器102还可以包括数据库,该数据库包括对应于用于外码长度T的宽范围值的生成器矩阵,并且处理器104还可以被配置为访问数据库并找到对应于给定值T和Ki的生成器矩阵。在另一个实施例中,这样的数据库可以存储在远程设备中,例如远程服务器,并且处理器104可以被配置为与远程设备通信以检索相应的生成器矩阵。
图7显示了一些用于线性外码的示例性生成器矩阵。特别地,图7示出了包括用于具有T=5,6,7,8的线性外码的生成器矩阵Gr(Ki)的数据库。可以看出,数据库的列由不同的生成器矩阵Gr(Ki)表示,而数据库的行由不同的值Ki表示。对于本领域技术人员应该显而易见的是,图7中所示的数据库的结构是说明性的,并且可以根据特定应用由任何其他结构来代替。
现在让我们给出一个从图7所示的数据库中检索生成器矩阵的示例。假设长度N、T和部分Ki是上面考虑到类型I和类型II的预定义的比特序列举例时计算出的的数值,即N=20,T=5并且[K1,K2,K3,K4]=[0,2,3,5]。然后,处理器104应该访问数据库并搜索对应于部分K2,K3,K4和给定长度T的生成器矩阵。对于K1=0,这部分意味着第一个外码具有零码率,并且总是生成全零码字,因此在这种情况下不需要生成器矩阵。因此,处理器104最终应检索以下生成器矩阵:
已知级联码结构,即长度N和T、外码维度的向量、生成器矩阵GT(Ki)(在线性外码的情况下)以及用于内极化码的生成器矩阵,就可以容易地构造级联码本身。
图8示出了根据本公开的另一方面的信息编码方法800的流程图。方法800包括步骤S802-S806,并且旨在由级联编码器执行。类似于装置100,级联编码器可以被实现为存储计算机可执行指令的存储器和执行计算机可执行指令以执行方法800的至少一个处理器的组合。方法800从步骤S802开始,步骤S802在于接收K个信息比特的向量。级联码维度K和K个信息比特的向量之间的差异在于,前者仅指示要编码的多个信息比特,而后者则指示K个信息比特的特定布置。进一步地,方法800进行到步骤S804,步骤S804在于接收在方法200中获得的级联码结构。方法800的最后步骤S806在于通过使用级联码结构对K个信息比特的向量进行编码。现在将更详细地描述方法800的步骤S806。
首先,将K个信息比特的向量表示为v(K)。如上所述,级联码结构包括以下参数:长度T和N、外码维度的向量、用于外码(如果外码是线性的)的生成器矩阵GT(Ki)和用于内极化码的生成器矩阵。一旦被接收,向量v(K)被分成N/T个子向量,每个子向量的长度等于对应的Ki。每个子向量v(Ki)旨在用于N/T个外码中的每个。接下来,使用外码对子向量v(Ki)进行编码,从而获得外码矩阵(ci,j),其中每一行都包含外码码字(ci,1,...,ci,T),其中1≤j≤T。在线性外码的情况下,通过分别将生成器矩阵GT(Ki)应用于子向量v(Ki)来获得外码码字,如下:
对于i=1,...,N/T,(ci,1,...,ci,T)=v(Ki)GT(Ki)。
如果Ki=0,则相应的外码码字(ci,1,...,ci,T)是全零码字,如前所述。此后,通过使用相应的一个内极化码对外码矩阵(ci,j)的每个第j列进行编码,以获得结果矩阵(di,j)形式的级联码码字。极化编码本身是众所周知的过程,因此在此省略其细节。因此,K个信息比特的初始向量被编码到表示级联码码字的结果矩阵(di,j)中。
图9示出了根据本公开的另一方面的信息译码方法900的流程图。方法900包括步骤S902-S906,并且旨在由级联译码器执行。类似于装置100,级联译码器可以被实现为存储计算机可执行指令的存储器和执行计算机可执行指令以执行方法900的至少一个处理器的组合。方法900以步骤S902开始,该步骤S902在于接收包括通过使用方法800被编码为级联码码字的信息比特的信道输出。还应注意的是,信道输出表示级联译码器从外部(例如,从通信信道)接收到的信号,因此,除了编码的信息比特之外,还包括不同的噪声。此外,方法900进行到步骤S904,该步骤S904在于接收级联码结构本身。方法900的最后步骤S906在于通过使用级联码结构从接收的信道输出中检索信息比特。这种检索的细节可以在例如以下论文中找到:H.Saber和I.Marsland的“Design of Generalized Concatenated CodesBased on Polar Codes With Very Short Outer Codes”(《基于具有非常短外码的极化码的广义级联码的设计》),《IEEE车辆技术》,2017年4月的第66卷,第4期,第3103-3115页。特别是,本文的作者建议将SC译码器与最大似然(maximum-likelihood,ML)译码器一起使用,以联合译码T个内极化码和N/T个外码。在一个实施例中,SCL或CRC辅助的SCL译码器和ML译码器的组合可以实现级联码译码器。此外,另一实施例是可能的,其中,对T个内极化码进行并行译码。
图10示出了装置100用于通信系统1000的一个例子。如图所示,通信系统1000包括发送侧和接收侧。发送侧包括装置100和级联编码器1002,该级联编码器1002包括外编码器1004和内编码器1006。接收侧经由通信信道1008连接到发送侧,并且包括装置100和包括内译码器1012和外译码器1014的级联译码器1010。下面描述通信系统1000的操作原理。
首先,级联编码器1002从装置100接收K个信息比特的向量,即v(K)和级联码结构。通过使用级联码结构,级联编码器1002针对向量v(K)的信息比特执行上述方法800。特别地,构成矩阵(ci,j)的外码码字由级联编码器1002的外编码器1004生成,而结果矩阵(di,j)形式的级联码码字由级联编码器1002的内编码器1006生成。接下来,级联编码器1002将级联码码字提供给通信信道1008。本领域技术人员将认识到,在进入通信信道1008之前,级联码码字应该被适当地调制到载波上。为此目的,可以使用任何合适的众所周知的调制方案,并且所有这些方案都在本公开的范围内。还应当注意,当调制的载波在通信信道1008上传播时,受到不同的噪声,因此,信道输出包括调制的载波和噪声的组合,如前所述。
在接收侧,信道输出应该首先通过合适的解调方案进行解调,这对于本领域技术人员来说仍然是显而易见的。此后,解调的信道输出被提供给级联译码器1010,该译码器1010也从装置100接收相同的级联码结构。接下来,级联译码器1010针对解调的信道输出执行上述方法900。为此目的,内译码器1012和外译码器1014联合操作以从解调的信道输出中检索信息比特。这种联合操作在图10中以双向箭头示意性地示出。在一个实施例中,级联译码器1010可以被实现为作为内译码器1012的SC/SCL/CRC辅助的SCL译码器和作为外译码器1014的ML译码器的任意组合。另一实施例是可能的,其中,内译码器1012对T个内极化码进行并行译码。
图11-14示出了基于通过方法200获得的级联码结构构造的级联码(以下简称为级联码)与通过使用速率匹配方案构造的常规极化码之间的代码性能比较的结果,该速率匹配方案在2017年第15版的3GPPTS 38.212“多路复用和信道编码”中公开。通过使用可加性高斯白噪声(Additive White Gaussian Noise,AWGN)信道作为通信信道1008、正交相移键控(Quadrature Phase Shift Keying,QPSK)调制方案以及上述的CRC辅助SCL译码器和ML译码器的组合,获得了结果。特别是,使用了SCA-SCL译码器的以下参数:列表大小等于8,CRC设置为19。然而,这些参数的值不以任何方式限制使用本公开的可能性,并且根据特定应用,可以使用任何其他参数值,这对于本领域技术人员来说是显而易见的。
更具体地,图11示出了信噪比(signal-to-noise ratio,SNR)(顶部)和增益(底部)对不同值K的依赖关系,考虑到用于级联码的长度T=6和N=192(即矩阵32×6)、用于具有由上述速率匹配方案调整的长度的传统极化码的长度P=N=192、以及等于0.001的误帧率(Frame Error Rate,FER)。应当注意,在所讨论的仿真中,FER等于误块率(Block ErrorRate,BLER)。增益计算为通过使用常规极化码和每个K的级联码获得的SNR之间的dB差。两个相关性右侧所示的插入显示了增益值在所有K值上的分布。还应当注意,在方法200的步骤S204中,考虑到类型I或类型II(即,伪代码1或2)的比特索引序列,获得相关性和插入。可以看出,用于级联码(见实线)的SNR-对-K相关性比常规极化码(见虚线)的更平滑。这意味着,当更改K时,级联码提供了代码性能的逐步变化,即SNR。
考虑到FER=0.001和不同的K值,图12示出了增益值的分布如何在长度N的不同值处变化。换句话说,图12可以被认为是通过组合增益值的多个分布(每个分布用于不同的N)而组成的,这些分布类似于图11中的插入所示的分布。此外,图12是通过在方法200的步骤S204中使用伪代码1或2来获得的。可以看出,在某些值N下,例如160、192、640和768,增益值在相对较宽的dB范围内变化,从而意味着通过使用级联码和常规极化码获得的SNR之间的差异在这些数值N下是显著的。这又意味着与常规极化码相比,级联码提供了更好的代码性能。
图13示出了SNR(顶部)和增益(底部)对不同值K的相关性,考虑了如上面参考图11讨论的相同参数T、N和FER。然而,现在考虑到极化的比特信道(即伪代码4)的容量来计算相关性及其旁边的插入。图14也是通过在方法200的步骤S204中使用伪代码4获得的。同样,在某些值N下,例如160、192、640和768,增益值在相对较宽的dB范围内变化,从而意味着通过使用级联码和常规极化码获得的SNR之间的差异在这些数值N下是显著的。
应该注意的是,通过使用伪代码1或2和伪代码4获得的SNR-对-K相关性本质上是相似的,即它们都是单调相关性,没有任何突变。这个事实意味着,当获得级联码结构时,可以同等地使用伪代码1或2和伪代码4,该级联码结构还用于构造期望长度为N的级联码。同时,当需要使用更少的内存资源并接受更多计算时,伪代码4可能更可取。反过来,当需要提供更少的计算复杂度并接受更多的存储器资源的使用时,可以使用伪代码1或2。
本领域技术人员应理解,本文描述的方法的每个框或步骤,或者框或步骤的任何组合,可以通过各种手段来实现,例如硬件、固件和/或软件。作为示例,上述一个或多个框或步骤可以由计算机可执行指令、数据结构、程序模块和其他合适的数据表示来实现。此外,体现上述方框或步骤的计算机可执行指令可以存储在相应的数据载体上,并由至少一个处理器(如装置100的处理器104)执行。该数据载体可以被实现为被配置为可由所述至少一个处理器读取以执行计算机可执行指令的任何计算机可读存储介质。这种计算机可读存储介质可以包括易失性和非易失性介质、可移动和不可移动介质。作为示例而非限制,计算机可读介质包括以适于存储信息的任何方法或技术实现的介质。更详细地,计算机可读介质的实际示例包括但不限于信息传递介质、RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能光盘(digital versatile discs,DVD)、全息介质或其他光盘存储器、磁带、盒式磁带、磁盘存储器和其他磁性存储设备。
尽管这里描述了本公开的示例性实施例,但是应当注意,在不脱离由所附权利要求限定的法律保护范围的情况下,可以对本公开的实施例进行任何各种改变和修改。在所附权利要求中,词语“包括”不排除其他元件或步骤,并且不定冠词“一”或“一个”不排除多个。在相互不同的从属权利要求中引用某些措施的事实并不表示这些措施的组合不能被有利地使用。
Claims (22)
1.一种用于获得级联码结构的装置,所述装置包括:
至少一个处理器,以及
存储器,所述存储器耦合到所述至少一个处理器并存储处理器可执行的指令,所述处理器可执行的指令在由所述至少一个处理器执行时,使所述至少一个处理器用于:
接收输入数据,所述输入数据包括:
-外码长度T,其中,T是正整数,
-由外码和内极化码组成的级联码的期望长度N,其中N=T·2n≤Nmax,并且Nmax是所述级联码的最大长度,2n是极化码长度,n是正整数,以及
-表示信息比特的数量的级联码维度K;
基于所述输入数据,并根据对应于所述外码长度T的预定义的比特索引序列或虚拟信道的容量,计算外码维度的向量,其中,所述外码维度的向量的每个向量分量表示用于每个外码的所述信息比特的部分Ki,使得
根据所述输入数据确定用于所述内极化码的生成器矩阵;以及
基于所述长度T和N、所述外码维度的向量以及用于所述内极化码的生成器矩阵,获得所述级联码结构。
2.根据权利要求1所述的装置,其中,所述外码包括线性分组码,并且所述至少一个处理器还被配置为:
-基于所述长度T和所述外码维度的向量,确定用于所述外码的生成器矩阵;以及
-基于所述长度T和N、所述外码维度的向量、用于所述外码的生成器矩阵和用于所述内极化码的生成器矩阵,获得所述级联码结构。
3.根据权利要求1或2所述的装置,其中,通过使用循环冗余校验CRC比特来设置所述级联码维度K。
4.根据权利要求1或2所述的装置,其中,所述预定义的比特索引序列的长度为其中/>为最大极化码长度,所述预定义的比特索引序列包括比特索引的排列(1,2,...,Nsequence),并且所述至少一个处理器被配置为通过以下步骤计算所述外码维度的向量:
-从所述预定义的比特索引序列中去除大于N的所述比特索引,以获得缩减的比特索引序列;
-初始化信息比特屏蔽向量u=[uj],其中,每个向量分量uj=0且j=1,...,N;
-为所述信息比特屏蔽向量u中索引出现在所述缩减的比特索引序列的前K个比特索引的每个向量分量uj赋1;
-从所述信息比特屏蔽向量计算用于每个外码的所述信息比特的所述部分Ki,如下:
5.根据权利要求1或2所述的装置,其中,所述预定义的比特索引序列的长度为其中/>为最大极化码长度,并且所述预定义的比特索引序列包括由来自集合{1,2,...,Nsequence/T}的整数表示的比特索引,并且其中所述至少一个处理器被配置为通过以下步骤来计算所述外码维度的向量:
-从所述预定义的比特索引序列中去除大于N/T的比特索引,以获得缩减的比特索引序列;
-用N/T个零向量分量Ki初始化所述外码维度的向量;以及
-每当向量分量Ki的索引出现在所述缩减的比特索引序列的前K个比特索引中时,将每个所述向量分量Ki加1。
6.根据权利要求1或2所述的装置,其中,在使用所述虚拟信道的所述容量的情况下,所述至少一个处理器被配置为通过以下方式计算所述外码维度的向量:
-估计由每个内极化码提供的所述虚拟信道的所述容量Ci;
-计算用于每个外码的信息比特的所述部分Ki如下:其中,/> i=1,...,N/T;
-获得用于所述外码的信息比特的所有部分Ki之和;
-确定获得的所述所有部分Ki之和是否等于K;
-如果所述获得的所述所有部分Ki之和分别小于/大于K:
a)找到所述索引i,以使差值最大/最小,
b)对相应的部分Ki加1/从相应的部分Ki中减1,并确保在所述加/减之后的所述部分Ki满足以下条件:0≤Ki≤T,以及
c)执行操作a)-b),直到所述获得的所述所有部分Ki之和等于K。
7.根据权利要求1或2所述的装置,其中,所述存储器被配置为预先存储所述预定义的比特索引序列,并且所述至少一个处理器还被配置为:在接收到所述输入数据之后,从所述存储器中检索所述预定义的比特索引序列,所述预定义的比特索引序列由以下步骤生成:
-将范围(1,2,...,Nsequence)内的所有可能值K作为信息比特的数量,
-通过使用每个K来计算所述外码维度的向量,
-更改所述外码维度的向量,以使得对于每对相邻值K和K-1,所述外码维度的向量彼此仅相差一个向量分量,以及
-通过使用所述向量分量的索引来生成所述预定义的比特索引序列。
8.一种信息编码装置,包括:
至少一个处理器,以及
存储器,所述存储器耦合到所述至少一个处理器并存储处理器可执行的指令,所述处理器可执行的指令在由所述至少一个处理器执行时,使所述至少一个处理器用于:
接收K个信息比特的向量,
接收由权利要求1至7中任一项所述的装置获得的所述级联码结构;以及
通过使用所述级联码结构对所述K个信息比特的向量进行编码。
9.一种信息译码装置,包括:
至少一个处理器,以及
存储器,所述存储器耦合到所述至少一个处理器并存储处理器可执行的指令,所述处理器可执行的指令在由所述至少一个处理器执行时,使所述至少一个处理器用于:
接收信道输出,所述信道输出包括通过使用由权利要求1至7中任一项所述的装置获得的所述级联码结构编码的信息比特,
接收所述级联码结构;以及
通过使用所述级联码结构从所接收的信道输出中检索所述信息比特。
10.根据权利要求9所述的装置,其中,所述至少一个处理器被配置为通过并行地译码内极化码来检索所述信息比特。
11.一种用于获得级联码结构的方法,所述方法包括:
接收输入数据,所述输入数据包括:
-外码长度T,其中T是正整数,
-由外码和内极化码组成的级联码的期望长度N,其中N=T·2n≤Nmax,并且Nmax是级联码的最大长度,2n是极化码长度,n是正整数,以及
-表示信息比特的数量的级联码维度K;
基于所述输入数据,并根据对应于所述外码长度T的预定义的比特索引序列或虚拟信道的容量,计算外码维度的向量,其中,所述外码维度的向量的每个向量分量表示用于每个外码的所述信息比特的部分Ki,使得
根据所述输入数据确定用于所述内极化码的生成器矩阵,以及
基于所述长度T和N、所述外码维度的向量以及用于所述内极化码的生成器矩阵,获得所述级联码结构。
12.根据权利要求11所述的方法,其中,所述外码包括线性分组码,并且所述方法还包括:基于所述长度T和所述外码维度的向量,确定用于所述外码的生成器矩阵,并且其中,所述获得所述级联码结构包括:基于所述长度T和N、所述外码维度的向量、用于所述外码的生成器矩阵以及用于所述内极化码的生成器矩阵,获得所述级联码结构。
13.根据权利要求11或12所述的方法,其中,通过使用循环冗余校验CRC比特来设置所述级联码维度K。
14.根据权利要求11或12所述的方法,其中,所述预定义的比特索引序列的长度为其中/>为最大极化码长度,所述预定义的比特索引序列包括比特索引的排列(1,2,...,Nsequence),并且所述计算所述外码维度的向量包括:
-从所述预定义的比特索引序列中去除大于N的所述比特索引,以获得缩减的比特索引序列;
-初始化信息比特屏蔽向量u=[uj],其中,每个向量分量uj=0且j=1,...,N;
-为所述信息比特屏蔽向量u中索引出现在所述缩减的比特索引序列的前K个比特索引的每个向量分量uj赋1;
-从所述信息比特屏蔽向量计算用于每个外码的所述信息比特的部分Ki,如下:
15.根据权利要求11或12所述的方法,其中所述预定义的比特索引序列的长度为其中/>为最大极化码长度,并且所述预定义的比特索引序列包括由来自集合{1,2,...,Nsequence/T}的整数表示的比特索引,并且所述计算所述外码维度的向量包括:
-从所述预定义的比特索引序列中去除大于N/T的比特索引,以获得缩减的比特索引序列;
-用N/T个零向量分量Ki初始化所述外码维度的向量;以及
-每当向量分量Ki的索引出现在所述缩减的比特索引序列的前K个比特索引中时,将每个所述向量分量Ki加1。
16.根据权利要求11或12所述的方法,其中,在使用所述虚拟信道的容量的情况下,所述计算所述外码维度的向量包括:
-估计由每个内极化码提供的所述虚拟信道的所述容量Ci;
-计算用于每个外码的信息比特的所述部分Ki如下:其中,/> i=1,...,N/T;
-获得用于所述外码的信息比特的所有部分Ki之和;
-确定获得的所述所有部分Ki之和是否等于所述信息比特的数量K;
-如果所述获得的所述所有部分Ki之和分别小于/大于所述信息比特的数量K,则:
a)找到所述索引i,以使差值最大/最小,
b)对相应的部分Ki加1/从相应的部分Ki中减1,并确保在所述加/减之后的所述部分Ki满足以下条件:0≤Ki≤T,并且
c)执行步骤a)-b),直到获得的所述所有部分Ki之和等于所述信息比特的数量K。
17.根据权利要求11或12所述的方法,还包括:
在所述接收所述输入数据之后,获得所述预定义的比特索引序列,所述预定义的比特索引序列由以下步骤生成:
-将范围(1,2,...,Nsequence)内的所有可能值K作为信息比特的数量,
-通过使用每个K来计算所述外码维度的向量,
-更改所述外码维度的向量,以使得对于每对相邻值K和K-1,所述外码维度的向量彼此仅相差一个向量分量,并且
-通过使用所述向量分量的索引来生成所述预定义的比特索引序列。
18.一种信息编码方法,包括:
-接收K个信息比特的向量;
-接收通过权利要求11至17中任一项所述的方法获得的所述级联码结构;
-通过使用所述级联码结构对K个信息比特的所述向量进行编码。
19.一种信息译码方法,包括:
-接收信道输出,所述信道输出包括通过所述使用由权利要求11至17中任一项所述的方法获得的所述级联码结构编码的信息比特,以及
-接收所述级联码结构;以及
-通过使用所述级联码结构从所述接收的信道输出中检索所述信息比特。
20.根据权利要求19所述的方法,其中,所述检索包括并行地译码所述内极化码。
21.一种计算机程序产品,包括存储计算机程序的计算机可读存储介质,所述计算机程序在由至少一个处理器执行时,使所述至少一个处理器执行根据权利要求11至17中任一项所述的方法。
22.一种通信系统,包括根据权利要求8所述的信息编码装置和根据权利要求9所述的信息译码装置。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/RU2018/000819 WO2020122749A1 (en) | 2018-12-13 | 2018-12-13 | Apparatus and method for obtaining concatenated code structures and computer program product therefor |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113196671A CN113196671A (zh) | 2021-07-30 |
CN113196671B true CN113196671B (zh) | 2023-10-13 |
Family
ID=65278441
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880100216.1A Active CN113196671B (zh) | 2018-12-13 | 2018-12-13 | 用于获得级联码结构的装置和方法及其计算机程序产品 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113196671B (zh) |
WO (1) | WO2020122749A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11677500B2 (en) * | 2020-09-30 | 2023-06-13 | Polaran Haberlesme Teknolojileri Anonim Sirketi | Methods and apparatus for encoding and decoding of data using concatenated polarization adjusted convolutional codes |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105811998A (zh) * | 2016-03-04 | 2016-07-27 | 深圳大学 | 一种基于密度演进的极化码构造方法及极化码编译码系统 |
CN106452460A (zh) * | 2016-09-21 | 2017-02-22 | 华中科技大学 | 一种极化码与重复码级联的纠错编码方法 |
CN106888025A (zh) * | 2017-01-19 | 2017-06-23 | 华中科技大学 | 一种基于极化码的级联纠错编译码方法和系统 |
CN107017892A (zh) * | 2017-04-06 | 2017-08-04 | 华中科技大学 | 一种校验级联极化码编码方法及系统 |
CN107395324A (zh) * | 2017-07-10 | 2017-11-24 | 北京理工大学 | 一种基于qup方法的低译码复杂度速率匹配极化码传输方法 |
CN108023679A (zh) * | 2017-12-07 | 2018-05-11 | 中国电子科技集团公司第五十四研究所 | 基于并行级联系统极化码的迭代译码缩放因子优化方法 |
CN108055044A (zh) * | 2018-01-19 | 2018-05-18 | 中国计量大学 | 一种基于ldpc码和极化码的级联系统 |
CN108462560A (zh) * | 2018-03-26 | 2018-08-28 | 西安电子科技大学 | 一种用于极化码级联的编译码方法 |
CN108574561A (zh) * | 2017-03-14 | 2018-09-25 | 华为技术有限公司 | 极化码编码的方法和装置 |
CN108847850A (zh) * | 2018-06-13 | 2018-11-20 | 电子科技大学 | 一种基于crc-sscl的分段极化码编译码方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9362956B2 (en) * | 2013-01-23 | 2016-06-07 | Samsung Electronics Co., Ltd. | Method and system for encoding and decoding data using concatenated polar codes |
EP3273602B1 (en) * | 2016-07-19 | 2022-01-26 | MediaTek Inc. | Low complexity rate matching design for polar codes |
CN114884611A (zh) * | 2016-08-11 | 2022-08-09 | 华为技术有限公司 | 用于极化编码的方法、装置和设备 |
-
2018
- 2018-12-13 WO PCT/RU2018/000819 patent/WO2020122749A1/en active Application Filing
- 2018-12-13 CN CN201880100216.1A patent/CN113196671B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105811998A (zh) * | 2016-03-04 | 2016-07-27 | 深圳大学 | 一种基于密度演进的极化码构造方法及极化码编译码系统 |
CN106452460A (zh) * | 2016-09-21 | 2017-02-22 | 华中科技大学 | 一种极化码与重复码级联的纠错编码方法 |
CN106888025A (zh) * | 2017-01-19 | 2017-06-23 | 华中科技大学 | 一种基于极化码的级联纠错编译码方法和系统 |
CN108574561A (zh) * | 2017-03-14 | 2018-09-25 | 华为技术有限公司 | 极化码编码的方法和装置 |
CN107017892A (zh) * | 2017-04-06 | 2017-08-04 | 华中科技大学 | 一种校验级联极化码编码方法及系统 |
CN107395324A (zh) * | 2017-07-10 | 2017-11-24 | 北京理工大学 | 一种基于qup方法的低译码复杂度速率匹配极化码传输方法 |
CN108023679A (zh) * | 2017-12-07 | 2018-05-11 | 中国电子科技集团公司第五十四研究所 | 基于并行级联系统极化码的迭代译码缩放因子优化方法 |
CN108055044A (zh) * | 2018-01-19 | 2018-05-18 | 中国计量大学 | 一种基于ldpc码和极化码的级联系统 |
CN108462560A (zh) * | 2018-03-26 | 2018-08-28 | 西安电子科技大学 | 一种用于极化码级联的编译码方法 |
CN108847850A (zh) * | 2018-06-13 | 2018-11-20 | 电子科技大学 | 一种基于crc-sscl的分段极化码编译码方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2020122749A1 (en) | 2020-06-18 |
CN113196671A (zh) | 2021-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Hashemi et al. | Partitioned successive-cancellation list decoding of polar codes | |
US9148177B2 (en) | Method and system for error correction in transmitting data using low complexity systematic encoder | |
RU2571587C2 (ru) | Способ и устройство кодирования и декодирования данных в скрученном полярном коде | |
JP3923618B2 (ja) | 誤り訂正符号を有する情報ビットの変換方法およびこの方法を実行する符号化器と復号化器 | |
US10243589B2 (en) | Multi-bit error correction method and apparatus based on a BCH code and memory system | |
US7623047B2 (en) | Data sequence compression | |
EP1995974B1 (en) | Method for realizing arithmetic coding | |
JP5705106B2 (ja) | ユークリッド空間リード−マラー符号の軟判定復号を実行する方法 | |
KR101790463B1 (ko) | 오디오/비디오 샘플 벡터의 피라미드 벡터 양자화 인덱싱 및 디인덱싱을 위한 방법 및 장치 | |
CN109075805B (zh) | 实现极化码的设备和方法 | |
JP2001036417A (ja) | 誤り訂正符号化装置、方法及び媒体、並びに誤り訂正符号復号装置、方法及び媒体 | |
KR20050083974A (ko) | 러닝 최소 메시지 전달 저밀도 패리티 검사 디코딩 | |
CN109075804B (zh) | 使用极化码的通信设备和通信方法 | |
KR20190032465A (ko) | 2의 멱이 아닌 길이로 확장된 폴라 코드의 코딩 및 디코딩 | |
CN113196671B (zh) | 用于获得级联码结构的装置和方法及其计算机程序产品 | |
JP7047092B2 (ja) | 階段コードの復号化方法、装置および記憶媒体 | |
US11075715B2 (en) | Encoding method and apparatus | |
JP2004201323A (ja) | 複雑度を減らしたコードテーブルを使用する復調装置及びその方法 | |
CN113196670B (zh) | 获得级联码结构的装置和方法以及计算机程序产品 | |
CN114499544A (zh) | 一种极化码的译码方法 | |
US20060125660A1 (en) | Digital data compression robust relative to transmission noise | |
JP2010535459A (ja) | 線形計画法復号のための座標上昇法 | |
JP5132738B2 (ja) | 誤り訂正復号器及び受信機 | |
CN116015313A (zh) | 一种编解码方法、装置、设备及存储介质 | |
JP5345563B2 (ja) | 解探索装置、解探索方法および解探索プログラム |
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 |