用于极化编码和解码的系统和方法与流程

文档序号:15742234发布日期:2018-10-23 22:29阅读:357来源:国知局
用于极化编码和解码的系统和方法与流程

本申请要求于2016年3月4日提交的申请号为15/061348,发明名称为“用于极化编码和解码的系统和方法”的美国专利申请的优先权,上述申请的全部内容通过引用结合在本申请中。

技术领域

本发明涉及极化码,以及用于极化码的编码器和解码器。



背景技术:

极化码基于克罗内克积矩阵(Kronecker product matrices)。是种子矩阵F的m倍克罗内克积。



技术实现要素:

根据本发明的一个方面,提供了一种方法,包括:处理一组K个信息块以产生具有u个块的块式校验和,其中K>=2,并且u>=1,并且其中每个信息块或校验和块包含P比特;产生具有P×K个信息比特和P×u个块式校验和比特以及N-PK-Pu个冻结比特的N比特输入向量,其中N=2m,其中m>=2;处理N比特输入向量以产生等于将输入向量乘以极化码生成矩阵的结果,以产生码字;发送或存储所述码字。

根据本发明的另一个方面,提供了一种方法,包括:接收基于发送到接收器的码字的字,所述接收器用极化编码器对信息块和块式校验和块进行编码;对接收到的字执行解码以确定信息块和块式校验和块的估值;基于信息字节的估值计算块式校验和字节;将计算的块式校验和字节与块式校验和字节的估值进行比较,并且如果存在匹配,则确定信息字节已被正确解码。

根据本发明的另一个方面,提供了一种装置,包括:块式校验和计算器,其用于处理一组K个信息块以产生具有u个块的块式校验和,其中K>=2,并且u>=1,并且其中每个信息块或校验和块包含P个比特;极化编码器,其用于产生具有P×K个信息比特和P×u个块式校验和比特以及N-(P×K)-(P×u)个冻结比特的N比特输入向量,其中N=2m,其中m>=2,并且处理N比特输入向量以产生等于将输入向量乘以极化码生成矩阵的结果,以产生码字;发送设备,用于发送码字。

根据本发明的另一个方面,提供了一种装置,包括:接收设备,其用于接收基于被发送的码字的字,所述接收器通过极化编码器对信息块和块式校验和块进行编码;极化解码器,其对接收的字进行解码以确定信息块和块式校验和块的估值;块式校验和计算器,其用于基于信息字节的估值计算块式校验和字节,并将计算的块式校验和字节与块式校验和字节的估值进行比较,如果匹配则确定信息字节已被正确解码。

在一些实施例中,对于上述的一个或多个方面,所述块式校验和是弗莱彻校验和(Fletcher checksum)。

在一些实施例中,对于上述的一个或多个方面,计算校验和字节包括计算两个校验和字节。

在一些实施例中,对于上述的一个或多个方面,所述生成矩阵是m倍克罗内克积矩阵其中

在一些实施例中,对于上述一个或多个方面,所述块式校验和比特被插入用于所述极化码生成矩阵的相对可靠的位置中,其通过可靠性准则进行限定。

附图说明

将参考附图更详细地描述本发明的实施例,其中:

图1是示出克罗内克积矩阵可以如何从种子矩阵产生的示图;

图2是示出用于产生码字的极化码生成矩阵的示例性用途的示图以及示例性极化编码器的示意图;

图3是使用极化码对信息进行编码的方法的流程图;

图4是示例性极化编码器的示意图;

图5是弗莱彻校验和计算器的示意图;

图6是基于信息比特和弗莱彻校验和执行极化编码的方法的流程图;

图7A是用弗莱彻校验和执行极化编码的装置的框图;

图7B是用弗莱彻校验和执行极化解码的装置的框图。

具体实施方式

E.Arikan在IEEE信息理论事务(IEEE Transactions on Information Theory)第55卷,第7号(2009年7月)发表的“信道极化:一种构造对称二进制输入无记忆信道的容量实现码的方法”(Channel Polarization:A Method for Constructing Capacity-Achieving Codes for Symmetric Binary-Input Memoryless Channels)一文中,于第四部分中证明了有关极化码的“信道极化”的理论。信道极化是一种从二进制输入离散无记忆信道(B-DMC)的N个独立副本产生N个“合成”信道的操作,使得随着N的增加,新的合成信道以它们的交互信息接近0(完全噪声的信道)或者接近1(完全无噪声的信道)的方式被极化。换言之,提供给编码器的输入向量的一些比特位置将经历完全噪声的信道,即,当独立于其他合成信道而被考虑时,具有相对低的可靠性/低可能性被正确解码。提供给编码器的输入向量的一些比特位置将经历非常干净的信道,即,当独立于其他合成信道而被考虑时,具有高可能性/高可靠性被正确解码。在某些情况下,当被独立于其他合成信道而被考虑的合成通道的可靠性可以称为合成信道的“容量”。可以提供基于克罗内克积的信道极化的示例。

如果A是m×n矩阵且B是p×q矩阵,则克罗内克(Kronecker)积是mp×nq块矩阵:

更明确地说:

图1示出了如何从种子矩阵G2 102产生克罗内克积矩阵。图1所示为2倍克罗内克积矩阵和3倍克罗内克积矩阵这种方法可以继续产生m倍克罗内克积矩阵

极化码可以由基于矩阵G2的克罗内克积矩阵构成。对于码字长度为N=2m的极化码,生成矩阵为在图2中描绘了使用克罗内克积矩阵来产生长度为8的码字的示例。如200处所示,码字x由输入向量u与克罗内克积矩阵的乘积形成。输入向量u由冻结比特和信息比特组成。在具体例子中,N=8,所以输入向量u是8比特向量,并且码字x是8比特向量。输入向量在位置0、1、2和4具有冻结比特,并且在位置3、5、6和7具有信息比特。在212处指示生成码字的编码器的示例实施方式,其中冻结比特全部被设置为0,其中,圆圈加是模2加法。对于图2的示例,由K=4个信息比特和N-K=4个冻结比特形成N=8比特输入向量。这种形式的码被称为极化码,编码器被称为极化编码器。解码极化码的解码器被称为极化解码器。

上面描述了极化码的具体示例,其中所述码基于特定矩阵G2的m倍克罗内克积。该生成矩阵的使用导致信道极化。更一般地说,产生信道极化效应的任何生成矩阵在本文将被称为极化码生成矩阵。

在极化码结构中,理想情况下可将信息比特放置在输入向量的更“可靠”的位置中,并且将冻结比特(即,编码器和解码器都已知的比特)置于输入向量的更“不可靠”的位置。但是,当通过物理信道发送信息时,给定比特位置的可靠性也是物理信道特性的函数,例如物理信道的删除率。理论上,只要冻结比特序列对于编码器和解码器都是已知的,冻结比特可以被设置为任何值。在传统应用中,冻结比特全部设置为零。

循环冗余校验(CRC)比特可被包括在输入向量中以辅助解码。基于正在发送的信息比特生成CRC比特。CRC比特包括在可靠的位置(即具有可靠信道的位置)。可以添加CRC比特以改善短至中等块长度的极化码性能。对于非常长的块长度极化编码器,可能不需要CRC,尽管它仍然可以被采用。这是因为可靠性随着块长度的大小而增加。对于非常长的码字来说,可靠性变得非常强。在包含CRC比特的情况下,由K个信息比特,u比特CRC和N-K-u个冻结比特形成N比特输入向量。图3描述了一个例子。从k比特信息块300开始,在302处附加u比特CRC,以在304处产生具有K比特信息块的向量和u比特CRC。在306,插入N-K-u个冻结比特以产生具有K比特信息块的N比特输入向量以及u比特CRC和N-K-u个冻结比特,其中N是2的幂。然后在310处将向量308乘以克罗内克积矩阵以产生N比特码字312。

包括CRC比特的极化编码器的示例实施方式在图4中以示意图形式示出。其中圆圈加符号表示模2加法。编码器从输入向量402产生码字404。在所示的示例中,N=16,K=8,u=2,并且对于码率0.5,存在六个冻结比特。被示出为已被设置为零的冻结比特被插入到输入向量402的位置0、1、2、4、9和12处。分别在输入向量402的位置3、5、6、7、8、10、11和13处提供表示为Info[0]至Info[7]的信息比特。表示为CRC[0]和CRC[1]的两个CRC比特分别在输入向量402的位置14和15处提供。被编码器使用产生码字的输入向量有时被称为消息。码字可以通过信道发送,而接收器又可以接收所接收到的字。由于信道效应主要是噪声,所以接收到的字会受到噪声影响。解码器尝试解码接收到的字以确定原始发送的消息中的信息比特。

在对从输入向量编码的码字进行解码期间,输入向量中的冻结比特的位置和值被视为已知。为了描述简单起见,预先解码器未知的输入向量的比特将被称为“未知”比特。例如,信息比特和CRC比特是未知比特。传统极化解码器的一个特征是未知比特被顺序解码,或者极化解码算法基于连续的消除(cancellation)。一旦做出了关于如何解码未知比特的特定决定,该比特没有机会被改变或校正,并且解码器继续解码下一个未知比特。换句话说,“不会回返”。步骤i中设定的比特不能在步骤j>i处改变。另外,不会考虑对后续冻结比特的值的了解,就是说,即使解码器已知后续冻结比特,后续冻结比特也不会帮助解码当前未知比特。

本发明的实施例提供采用弗莱彻(Fletcher)校验和的极化编码器和解码器。计算弗莱彻校验和的第一步包括将要受保护免于错误的二进制数据字分成短的“块”比特并计算那些块的模数和(modular sum)。作为例子,数据可以是要发送的消息,由136个字符组成,每个字符被存储为8比特字节,形成总共1088比特的数据字。一个合适的块大小将是8比特,尽管这不是必需的。同样,一个合适的模数将是255,但是,也可以选择其他的值。

为了在本示例中执行计算弗莱彻校验和的第一步骤,通过确定消息的所有8比特字节的模数和(例如,除以255并仅保留其余部分)来计算作为简单校验和的第一校验和值。在实际中,在求和过程中执行模运算来控制结果的大小。计算弗莱彻校验和的第二步包括计算第二校验和值。因为,第二校验和是在计算第一简单校验和时,数据字的每个块被加到其中时产生的值的模数和。所用的模数是相同的。因此,对于数据字的每个块,按顺序取出,块的值将被加到第一校验和,然后第一校验和的新值被加到第二校验和。两个和都以零值(或其他已知值)开始。在数据字的末尾,应用模数运算符。

第一校验和值与第二校验和值然后被组合以形成弗莱彻校验和值。在一些实施例中,这通过连接两个校验和值来完成。这为所描述的示例产生了2字节的校验和。在其他实施例中,计算两个值的模数和。这为所描述的示例产生一个1字节的校验和。消息的接收者可以重新计算校验和并将其与接收到的值进行比较,以确定消息是否已被发送过程改变。

如图5所示,从K字节信息字500开始,计算并附加(或插入)2字节弗莱彻校验和502以产生(K+2)字节字。K个字节可以形成较大信息流的一部分,并且可以例如包括较大信息流的字节n至n+K。2字节弗莱彻校验和包括C0字节504(上述第一校验和值)和C1字节506(上述第二校验和值)。通过确定码字的K个字节的模数和来确定C0字节502。在所示的示例中,在510处将初始C0字节507(设置为零或另一已知值)与第一字节组合。在512将结果与第二个字节组合,依此类推,直到在514将结果与第K个字节组合为止,以产生C0字节的完成值。

通过确定在确定C0字节中产生的中间结果的模数和来确定C1字节502。在所说明的示例中,初始C0-字节215(设定为0或另一已知值)在516与第一中间结果(即510的输出)组合。在518将结果与第二中间结果(即512的输出)组合,依此类推,直至在520处将结果与最终结果(即514的输出)组合以产生C1字节的完成值。

在一些实施例中,信息比特和弗莱彻校验和比特中的一些或全部被插入到输入向量中,用于为极化码在相对可靠比特位置对应的位置内进行极化编码。可以在实施方式的具体基础上限定相对可靠的构成,例如就可靠性准则而言。例如,可以在整个输入向量上的P×u个最可靠的比特位置中插入P×u比特校验和。在另一个示例中,P×u比特校验和可以被插入到所有可靠性的前W%内的比特位置,其中W是已定义的阈值,例如10%。在一些实施例中,弗莱彻校验和比特被插入到输入向量的后面部分内的最可靠比特位置中的信息比特之后。例如,16比特校验和可以被插入到输入向量的最后四分之一的16个最可靠的比特位置中。更一般地说,只要发送器和接收器知道弗莱彻校验和比特和信息比特的位置,弗莱彻校验和比特就不需要全部在一起或在末尾。可以在极化码的相对不可靠的比特位置中插入冻结比特(更一般地,发送器和接收器都知道的比特)。更一般地,所描述的弗莱彻校验和方法可用于处理一组K个信息块以产生具有u个块的弗莱彻校验和,其中K>=2且u>=1,并且其中每个信息块或校验和块包含P比特,其中P>=2。在所描述的具体示例中块大小P是8,但可以使用其他值。

接下来,用极化码可靠比特位置中的P×K信息比特和P×u弗莱彻校验和比特以及极化码可靠比特位置中的N-(P×K)-(P×u)冻结比特来生成N比特输入向量,其中N=2m,其中m>=2。然后用极化码编码器对向量进行编码,例如通过将向量乘以先前描述的G2的m倍克罗内克积矩阵。

现在将参照图6描述示例性编码方法。以K字节的信息字600开始,计算出u字节的弗莱彻校验和。在602处插入弗莱彻校验和的比特以产生包括K个信息字节的比特和弗莱彻校验和的比特的向量604。在606,插入N-8K-8u个冻结比特以产生具有K个字节信息和u个字节的弗莱彻校验和的N比特输入向量,其中N是2m。然后在610处向量608乘以m倍克罗内克积矩阵以产生N比特码字612。

在示例实施方式中,输入向量具有K=64个字节,存在256个信息比特,16个比特包含2字节的弗莱彻校验和,以及240个码率为0.5的冻结比特。

与常规极化解码器相比,用于利用弗莱彻校验和来解码极化码的极化解码器不需要显著的额外复杂度。解码器解码将校验和比特视为未知信息比特,并且以与常规极化解码器中相同的方式使用已知的冻结比特值,对信息比特和弗莱彻校验和比特进行解码。完成时,在接收器处计算弗莱彻校验和,并与校验和的被解码的值进行比较。如果匹配,则信息比特被正确解码的可能性很高。如果匹配,则解码器可以断定被解码的信息比特是正确的,并输出这些比特以在系统的其余部分中进一步处理。

通常,本文描述的编码器被包括作为包括其他组件的设备的一部分。这些可以例如包括调制器,该调制器调制由编码器输出的比特以产生符号,以及发送器,其在诸如无线信道的信道上发送符号。类似的反向功能在接收器以及解码器中。现在转到用于实现上述方法的示例装置上,图7A是用于编码和发送码字的设备900的示意图。设备900包括耦合到发送设备906的弗莱彻校验和计算器903和极化编码器904。在所示的实施例中,发送设备906具有用于在无线信道上发送信号的天线908。在一些实施例中,发送设备906包括调制器,放大器和/或射频(RF)发送链的其他组件。极化编码器904接收包括信息比特的输入902并且还接收由弗莱彻校验和计算器903计算的校验和,并且用于为实现上述方法,将信息比特编码成码字,该码字被提供给发送设备906以经由天线908发送。

图7B是用于接收和解码接收到的字的装置910的示意图。装置910包括耦合到极化解码器916的接收设备914,极化解码器916又耦合到弗莱彻校验和计算器917。在所示实施例中,接收设备914具有用于从无线信道接收信号的天线912。在一些实施例中,接收设备914包括解调器,放大器和/或射频(RF)接收链的其他组件。接收设备914经由天线912接收携带基于码字的所接收到的字的信号。接收的字被提供给解码器916。极化解码器916和弗莱彻校验和计算器917用于实现上述方法,将接收到的字解码为由信息比特组成的输出向量,其被提供作为输出918。

在一些实施例中,可以提供包括由处理器执行的指令的非暂时性计算机可读介质以控制图8A中的编码器904或图8B中的解码器916的操作,和/或以其他方式控制上述方法的执行。在一些实施例中,被控制的处理器可以是通用计算机硬件平台的组件。在其他实施例中,处理器可以是专用硬件平台的组件。例如,所述处理器可以是嵌入式处理器,并且指令可以被提供为固件。一些实施例可以仅通过使用硬件来实现。在一些实施例中,由处理器执行的指令可以以软件产品的形式来体现。软件产品可以存储在非易失性或非暂时性存储介质中,该介质可以是:例如光盘只读存储器(CD-ROM),通用串行总线(USB)闪存盘或可移动硬盘。

描述了极化码的具体示例,其中码基于特定G2的m倍克罗内克积。如同所述,结果是极化,其中一些比特位置可靠,而另一些比特位置不可靠。在一些实施例中,采用这种特定的极化码,以及如所描述的弗莱彻校验和。更一般地,弗莱彻校验和可以与任何导致一组可靠比特位置和一组不可靠比特位置之间极化的编码器进行组合使用。任何产生这种效应的生成矩阵在本文都将被称为极化码生成矩阵。

上述实施例采用弗莱彻校验和。弗莱彻校验和是块式校验和的一个具体示例,例如对比特块执行校验和。也就是说一个字节(或者甚至在一起的更多比特)——对要保护的数据应用操作。弗莱彻校验和的例子包括弗莱彻-16,弗莱彻-32和弗莱彻-64,但还有其他的。更一般地说,可以采用任何块式校验和来代替本文描述的实施例中的弗莱彻校验和。块式校验和的另一个示例是阿德勒校验和(Adler Checksum)。这与比特级校验器(比如CRC)形成对比,其中将比特级多项式(polynomial)应用于要保护的数据比特。

更一般地,可以采用与所描述的方法在数学上等同的任何编码或解码方法。例如,一旦如本文所述确定了一组码字,则可以使用本领域已知的许多不同的编码器结构来对输入数据进行编码以产生码字。

提供一些实施例的先前描述以使得本领域的任何技术人员能够制造或使用根据本公开的装置,方法或处理器可读介质。对这些实施例的各种修改对于本领域技术人员而言将是显而易见的,并且本文描述的方法和设备的一般原理可以应用于其他实施例。因此,本公开并非旨在限于本文中所示的实施例,而是应被赋予与本文中所公开的原理和新颖特征一致的最广泛范围。

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