一种可变长Polar码的码字构造方法与流程

文档序号:11628571阅读:1335来源:国知局
一种可变长Polar码的码字构造方法与流程

本发明属于通信信道编码领域,具体是指一种可变长polar码的码字构造方法。



背景技术:

polarcodes,即极化码,是2009年由e.提出的一种新型信道编码。极化码基于信道极化(channelpolarization)进行设计,是第一种能够通过严格的数学方法证明达到信道容量的构造性编码方案。然而,极化码由kronecker幂构造,这种构造方式限制了polar码的码长,不便于polar码在实际系统中的使用。原始方法只能构造码长为2n(n=1,2,...)的polar码。尽管其他码长的polar码可以由bch码核等其他极化核构造,但是这种方法构造的polar码码长依然限制在核长的幂次,并且这种方法构造的polar码的译码结构较为复杂。

本领域内公知,在实际通信系统中,原始信息的长度往往是不确定的,这就要求编码能够根据原始信息的长度进行调整。即根据信道条件和信息的长度得到具有一系列不同码长码率的编码结构。目前现有的可变长极化码的码字构造采用的是对原始长度为2的幂次的码字比特删除部分码字比特来实现非2的幂次的码字构造。该方法在接收端译码时对于删除掉的码字比特的似然信息置为0、1等概率,之后再对其进行普通极化码的译码。该方法虽然实现了可变码长的polar码构造,但其译码错误概率也被提高,严重损失通信系统的性能。因此,一种性能更好的码长可变的polar码的码字构造方法是一种需求。



技术实现要素:

基于该需求,本发明提出一种可变长polar码的码字构造方法,对原始长度限定为2的幂次polar码生成矩阵进行组合来实现任意码长的polar码的生成矩阵的构造。

本发明提供的一种可变长polar码的码字构造方法,包括步骤如下:

步骤1:对码长n二进制展开,得到对应的二进制比特序列s;其中n为正整数;

步骤2:根据步骤1得到的二进制比特序列s中“1”的位置,确定需要选取的生成矩阵的大小。

设序列s中比特值为“1”的数量为q,其中序列s中索引编号hd的比特值为1,d表示序列s中从高位到低位出现的第d个1,d=1,2,…q。则选取q个polar码的原始生成矩阵,分别是大小为l1,l2,...,lq的方阵,hd为正整数,序列s从低位到高位从1开始进行索引编号。

步骤3:通过combo-sum运算来组合上述选取的子矩阵,从而得到码长为n的生成矩阵。

设根据步骤2得到q个生成矩阵则码长为n的生成矩阵c表示为:

其中,表示combo-sum运算。

所述的combo-sum运算为:设参与运算的矩阵为得到组合矩阵为:

其中,l1、l2分别为矩阵a、b的大小,矩阵b′大小为l2×l1,b′中的前l2列和矩阵b相同,后l1-l2列为全0列。

本发明的优点与积极效果在于:本发明的码字构造方法通过combo-sum运算来实现,该方法所构造的polar码能使译码错误概率有效降低,提升通信系统性能。本发明通过扩展短码的生成矩阵来实现长码生成矩阵的构造,与传统方法相比不需要删除打孔操作,降低编码复杂度,减少时延。本发明在译码端对于未知比特的似然信息已知,避免了传统传统方法利用先验知识估计未知比特似然信息的问题,从而降低译码的误比特率,提升系统性能。

附图说明

图1为本发明所提出的码字构造方法的流程示意图;

图2为本发明构造生成矩阵过程中所用到的原始生成矩阵的三个具体示例;

图3为本发明新生成矩阵与子矩阵的一般对应关系的示意图。

具体实施方式

下面将结合附图和实施例对本发明作进一步的详细说明。

如图1所示,本发明所述的可变长polar码的码字构造方法,通过下面步骤1~3实现polar码生成矩阵的构造。

步骤1:对于码长n通过二进制展开得到二进制比特序列表示。n为正整数。

对于码长n,用二进制展开得到m比特二进制比特序列s={sm,sm-1,...,s2,s1},设h为二进制比特序列从低位到高位的索引编号,h=1,2,…m,sh表示序列s中索引位置为h的比特值,sh∈{0,1},m表示二进制序列最高位1的索引位置,sm=1。

这里码长n可以取任意正整数,不需要像原始polar码的码长只能限定为2的幂次的形式。

例如当码长n=13时,对应的二进制序列s={1,1,0,1}。

步骤2:根据得到的二进制展开序列中“1”的位置来确定组合运算待选取的生成矩阵。

找出二进制展开序列中比特值是“1”的位置,设“1”的数量为q。根据步骤1所得二进制展开序列,则n可以表示为:

公式(1)表示按照二进制比特序列中1的位置,将n表示为2的幂次形式,其中,序列s中索引编号hd的比特值为1,d表示序列s中从高位到低位出现的第d个1。

则选取q个polar码的原始生成矩阵,其中第d个生成矩阵的大小为ld是自然数并且为2的幂次形式。

选取与n的二进制分解所对应的q个ld×ld的polar码的原始生成矩阵作为组合运算待选取的子矩阵,选取的子矩阵表示为其中表示ld×ld的方阵,矩阵为polar码原始生成矩阵,通过克罗内克乘积产生,即其中矩阵参数n=log2ld,表示克罗内可乘积运算,该克罗内可乘积运算和原始生成矩阵为领域内所公认。

例如:当码长n=6时,6=22+21=l1+l2,l1=4,l2=2,然后选取原始polar码码长为4的生成矩阵g4×4和码长为2生成矩阵g2×2作为构成码长为6的生成矩阵的子矩阵,生成矩阵g4×4和g2×2具体值表示如图2所示。

当码长n=8时,8=23=l1,可以看出原始的长度为2的幂次的polar码生成矩阵构造只是本发明方法的一个特例,生成矩阵g8×8如图2所示。

步骤3:通过combo-sum运算来组合上述选取的生成矩阵,从而构造码长为n的生成矩阵。

首先提出矩阵combo-sum运算定义。combo-sum是两个矩阵的组合运算,矩阵a和矩阵b的combo-sum之和c可以表示为矩阵是方阵,l1、l2分别为矩阵a、b的大小。为了得到任意的大小c,a和b的大小不需要相同,这里取l1≥l2。式中矩阵b′除了全0列以外,和矩阵b相同,b′大小为l2×l1,其中,b′的前l2列与矩阵b中的列相同,后l1-l2列为全0列。

由矩阵c作为生成矩阵得到的码字可以表示为x=uc,然后进一步把x和u分解为两部分,分别表示为x=(x1,x2)和u=(u1,u2),x表示由生成矩阵得到的编码码字向量,x1表示前l1个码字,x2表示后l2个码字,u1表示编码输入序列的前l1个比特,u2表示编码输入序列的后l2个比特,根据矩阵c的结构,x1由u1和u2通过矩阵a和b′共同得到x2由u2通过矩阵b得到x2=u2b,所以生成码字x可以表示为

combo-sum运算定义:给定两个方阵其中i表示矩阵的行索引,j表示矩阵的列索引,l1,l2表示方阵的大小,并且l1≥l2。定义两个矩阵进行combo-sum运算得到组合表示combo-sum组合运算,其中:

式(2)表示的cij与aij和bij的对应的具体比特位置如图3所示。其中,γ是{1,2,...,l1}的一个子集,称为差异集,集合元素个数为l2,γ是矩阵b′的非零列的集合,一定取b′的前l2列,但取值顺序不一定是按1,2,…的顺序排列。设集合γ中索引标记为j0=1,2,...,l2,矩阵c中索引j是集合γ中的第j0个元素,根据j从γ中确定j0,获得cij对应的矩阵b中元素

combo-sum和c可以表示为

式(3)表示的对应比特位置如图3所示。

例如

组合运算有以下限定:

①参与运算的a,b矩阵不可以交换顺序。

②第一个矩阵的大小不能小于第二个矩阵,即l1≥l2。

③combo-sum运算结果不唯一。不同的差异集γ和运算顺序会得到不同的combo-sum和。

例如对于码长为5的生成矩阵的构造可以有如下两种构造方式:

构造方式一:

构造方式二:

长码可以分解成两个或多个短码,由于combo-sum运算不唯一,步骤3在确定其参与combo-sum运算的子矩阵时,严格按照码长n通过步骤2得到的二进制分解顺序和表示形式。

例如对于n=5的生成矩阵只能表示为而不能表示为组合形式或者其它表示形式。

所以,步骤3的计算过程为根据步骤2得到的q个原始生成矩阵对其进行combo-sum组合运算,规定在组合运算过程中,每次选择码长最大的两个生成矩阵参与combo-sum组合运算,即根据q个原始生成矩阵通过combo-sum运算得到的码长为n的生成矩阵

例如,码长n=7的生成矩阵组合运算过程为:根据步骤2得到参与组合运算的生成矩阵为g4×4,g2×2,g1×1,根据运算准则:每次选择最大的两个生成矩阵参与运算,则矩阵组合表示为:

每次combo-sum运算得到的组合矩阵作为一个新的子矩阵,替换组合生成它的子矩阵,继续参与下一轮combo-sum运算,直到只剩下一个子矩阵,得到最终的码长为n的生成矩阵c。

实施例1:码长n=6的polar码的生成矩阵构造过程。

步骤1:码长n=6的二进制比特序列表示为s={1,1,0}。

步骤2:根据步骤1得到的二进制比特序列,选取构成码长n=6的组合矩阵:

根据6=22+21=l1+l2,所以得到构成码长为6的子矩阵为g4×4,g2×2。

步骤3:通过combo-sum运算组合步骤2所得到的构成码长n=6的生成矩阵的子矩阵。运算过程如下:

实施例2:码长n=11的polar码的生成矩阵构造过程。

步骤1:码长n=11的二进制比特序列表示为s={1,0,1,1}。

步骤2:根据步骤1得到的二进制比特序列,选取构成码长n=11的组合矩阵:

根据11=23+21+20=l1+l2+l3,子矩阵的大小为l1=8,l2=2,l3=1。所以得到构成码长为11的子矩阵为g8×8,g2×2,g1×1。

步骤3:通过combo-sum运算组合步骤2所得到的构成码长n=11的生成矩阵的子矩阵。运算过程如下:

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