本发明涉及通信编码技术领域,具体来说是一种极化码的高效构造方法。
背景技术:
极化码被人们所熟知,是因为其对多种对称离散无记忆信道(dmc)能够实现达到香农限,同时具有明确的编码构造方法和较低的编译码复杂度,被选定为控制信道在5g增强编码方法。极化码的构造问题是:对于给定的编码率r,如何从
因此,如何降低极化码构造的复杂度,提出一种高效的极化码构造方法已经成为急需解决的技术问题。
技术实现要素:
本发明的目的是为了解决现有技术中极化码构造算法复杂度高的缺陷,提供一种极化码的高效构造方法来解决上述问题。
为了实现上述目的,本发明的技术方案如下:
一种极化码的高效构造方法,包括以下步骤:
信道之间关系的确定,根据部分序列定理的两种形式确定部分信道之间的关系,再利用广义部分序列定理找到其他信道之间的关系,最后通过中间信道确定部分信道之间的间接关系;
根据信道关系矩阵o得到信息位和休眠位的判断,根据信道关系矩阵o确定为信息位的信道和为休眠位的信道,并将这些信道分别放入集合i、f中,将余下的信道放入集合u中,设需选出k位信息位,其中i中已经确定的信息位个数为ki;
k位信息位的构成,对集合u进行信道的巴氏参数计算,选出集合u中最好的k-|i|个信道,将这k-|i|个信道放入集合i中,将集合i中的信道作为极化码的k位信息位。
所述的信道之间关系的确定包括以下步骤:
利用部分序列定理的两种形式确定部分信道之间的关系;
利用广义部分序列定理找到其他信道之间的关系;
通过中间信道确定部分信道之间的间接关系,找出所有能够利用中间信道确定部分信道之间的间接关系,其具体步骤如下:
获取信道关系矩阵o;
对于i、j、k进行初始化,令i=2、j=1、k=1;
中间信道判断,若信道i比信道k好且信道k比信道j好,则令oij=1,并跳至j值递加后再判断步骤;否则,按顺序进行下一步骤;
若信道i比信道k差且信道k比信道j差,则令oij=-1;
j值递加后再判断,将j+1的值赋给j;判断:若j<i,返回至中间信道判断步骤,若j≥i,按顺序进行下一步骤;
将i+1的值赋给i,若i≤n,返回至中间信道判断步骤,若i>n,按顺序进行下一步骤;
将k+1的值赋给k,若k≤n,返回至中间信道判断步骤,若k>n,按顺序进行下一步骤;
信道关系矩阵o更新完毕。
所述的根据信道关系矩阵o得到信息位和休眠位的判断包括以下步骤:
设信息位信道集合为i、休眠位信道集合为f、待确定信道集合为u;
获取更新完毕后的信道关系矩阵o,依次对n个信道分别进行判断:
若信道c比n-k个信道好,则将信道c加入集合i;
若信道c比k个信道差,则将信道c加入集合f;
若信道c不比n-k个信道好且不比k个信道差,则将信道z加入集合u。
所述的利用部分序列定理的两种形式确定部分信道之间的关系包括以下步骤:
获取码长n,其中n=2n;
建立信道关系矩阵o,其中信道关系矩阵o为n×n的矩阵,并将信道关系矩阵o初始化为全0;
用信道关系矩阵o去掉对角线的下三角来存放
其中,i表示第i信道,j表示第j信道,
对i、j进行初始化,令i=2,j=1;
第i信道进行二进制展开,对i-1,进行二进制展开,则i-1=(in,in-1,…,i1)b;
第j信道进行二进制展开,对j-1,进行二进制展开,则j-1=(jn,jn-1,…,j1)b;
将第i信道的二进制展开减去第j信道的二进制展开,
令x=(in,in-1,…,i1)b-(jn,jn-1,…,j1)b=(in-jn,in-1-jn-1,…,i1-j1);
判断若x中有不少于-1个数的1都比相应的-1的位置大,那么信道i比信道j好,并令oij=1;
将j+1的值赋给j;
判断:若j<i,则进行第j信道进行二进制展开步骤;
若j≥i,则将i+1的值赋给i,并判断:若i≤n,则进行第i信道进行二进制展开步骤,若i>n,码长n处理完毕,得到初步求出的信道关系矩阵o。
所述的利用广义部分序列定理找到其他信道之间的关系步骤为根据广义部分序列定理对信道关系矩阵o进行更新,其具体步骤如下:
获取信道关系矩阵o,给定要降低的维度nu(nu<n),令nl=n-nu,
对于iu、ju、il、jl、k进行初始化,令iu=2,ju=1,il=1,jl=1,k=nu;
对i和j进行赋值,令i=(iu-1)×nl+il,j=(ju-1)×nl+jl;
调用tal-vardy算法计算nu低维度信道的巴氏参数,并存储这些信息;
如果信道iu通过巴氏参数计算得到比信道ju好且信道il不比信道jl差,则信道i比信道j好;
如果i>j,则令oij=1。如果i<j,则令oji=-1;
将jl+1的值赋给jl;若jl≤il,则返回至对i和j进行赋值步骤;若jl>il,则按顺序进行下一步;
将il+1的值赋给il;若il≤nl,则返回至对i和j进行赋值步骤;若il>nl,则按顺序进行下一步;
将ju+1的值赋给ju;若ju≤nu,则返回至对i和j进行赋值步骤;若ju>nu,则按顺序进行下一步;
将iu+1的值赋给iu;若iu≤nu,则返回至对i和j进行赋值步骤;若iu>nu,则按顺序进行下一步;
将k-1的值赋给k,令nu=2k、nl=2n-k,若k≥3,则返回至对i和j进行赋值步骤;若k<3,则按顺序进行下一步;
信道关系矩阵o更新完毕。
所述的广义部分序列定理,定义如下:
给定一个作用信道w,对于信道i、j,则有i-1=(in,in-1,…,i1)b,j-1=(jn,jn-1,…,j1)b;
将n位i-1的二进制展开分成两个部分:上半部分
则i-1=(iu-1)×nl+il-1;
将n位j-1的二进制展开分成两个部分:上半部分
则j-1=(ju-1)×nl+jl-1;
若
其中:
有益效果
本发明的一种极化码的高效构造方法,与现有技术相比降低了极化码构造的复杂度,提出了极化码的高效构造。本发明首先在不计算信道的巴氏参数的条件下,确定部分信道之间的关系,再确定哪些信道一定是信息位、休眠位,并将这些信道分别放入集合i、f中,将余下的信道放入集合u中。再针对集合u中信道的巴氏参数的计算,选出最好的k位信息位。本发明避免了针对所有信道均进行巴氏参数的计算,大大减少了计算量,提高了极化码的构造效率。
附图说明
图1为本发明的方法顺序图;
图2为经过信道之间关系的确定步骤后使用matlab编译器画出的信道关系矩阵o的示意图;
图3为经过利用部分序列定理的两种形式确定部分信道之间的关系步骤后与通过中间信道确定部分信道之间的间接关系步骤后集合u的信道占总信道之比图。
具体实施方式
为使对本发明的结构特征及所达成的功效有更进一步的了解与认识,用以较佳的实施例及附图配合详细的说明,说明如下:
如图1所示,本发明所述的一种极化码的高效构造方法,包括以下步骤:
第一步,信道之间关系的确定。在不计算信息的巴氏参数的条件下,根据部分序列定理(po定理)的两种形式先确定部分信道之间的关系,再利用广义部分序列定理找到其他信道之间的关系,最后通过中间信道确定部分信道之间的间接关系。避免所有信道均进行巴氏参数的计算,只针对无法判断出的信道再进行巴氏参数的计算,从而大大减少计算量。其具体步骤如下:
首先,利用部分序列定理的两种形式确定部分信道之间的关系。
部分序列定理为现有技术中的传统定理,其定理描述如下:
在描述po定理之前先做如下定义
定义1:若1≤i,j≤n,其中i-1=(in,in-1,…,i1)b和j-1=(jn,jn-1,…,j1)b是i-1和j-1的二进制展开。在l<l′的条件下,若有
1)jl=1且jl′=0
2)il=0且il′=1
3)对于所有的
则有
定理1:如果
满足定理1的两个信道具有相同的汉明重,并将这样的信道之间的序列写成
定理2:若1≤i,j≤n,其中i-1=(in,in-1,…,i1)b和j-1=(jn,jn-1,…,j1)b是i-1和j-1的二进制展开。对于任何
满足定理2的两个信道之间的序列写成
针对部分序列定理的两种形式(上述的定理1和定理2),在此可以先确定部分信道之间的关系,其具体步骤如下:
(1)获取码长n,其中n=2n。
(2)建立信道关系矩阵o,其中信道关系矩阵o为n×n的矩阵,并将信道关系矩阵o初始化为全0。
在此,共有n个信道,所以有
其中,i表示第i信道,j表示第j信道,
(3)对i、j进行初始化,令i=2,j=1。
(4)第i信道进行二进制展开,对i-1,进行二进制展开,则i-1=(in,in-1,…,i1)b。
(5)第j信道进行二进制展开,对j-1,进行二进制展开,则j-1=(jn,jn-1,…,j1)b。
(6)将第i信道的二进制展开减去第j信道的二进制展开,令x=(in,in-1,…,i1)b-(jn,jn-1,…,j1)b=(in-jn,in-1-jn-1,…,i1-j1)。即前一信道与后一信道之间进行判断。
(7)判断若x中有不少于-1个数的1都比相应的-1的位置高,那么信道i比信道j好,并令oij=1。
举例而言,i-1=(1,1,0,1,1,0)与j-1=(0,1,1,1,0,1),则x=(1,0,-1,0,1,-1)。x里有两个-1,且可以找的两个1的位置比相应的两个-1的位置高(从右(低位)往左(高位),第2位的1比第1位的-1位置高,第6位的1比第4位的-1位置高)。
(8)将j+1的值赋给j,进行循环判断。
判断:若j<i,则进行第j信道进行二进制展开步骤;
若j≥i,则将i+1的值赋给i,并判断:若i≤n,则进行第i信道进行二进制展开步骤,继续进行相应的判断。若i>n,码长n处理完毕,得到初步求出的信道关系矩阵o。
其次,利用广义部分序列定理找到其他信道之间的关系。广义部分序列定理为本发明提出的创新技术,其特点是将信道的二进制展开分成两个部分(上半部分和下半部分),如果上半部分的信道和下半部分的信道都比另一个信道的相应部分好(差),那么这个信道就比另一个信道好(差)。定理的具体描述如下:
对广义部分序列定理进行定义,定义如下:
a、给定一个作用信道w,对于信道i、j,则有i-1=(in,in-1,…,i1)b,j-1=(jn,jn-1,…,j1)b;
将n位i-1的二进制展开分成两个部分:上半部分
则i-1=(iu-1)×nl+il-1;
将n位j-1的二进制展开分成两个部分:上半部分
则j-1=(ju-1)×nl+jl-1。
b、若
其中:
下面给出针对广义部分序列定理的证明:
已知对于任何信道i,都有当
为了方便讨论,做如下定义:
其中:记
首先,证明当
充分性:
因为
必要性:
因为
然后,证明当
充分性:
因为iu=ju,所以
必要性:
因为iu=ju,所以
最后,证明:
首先我们定义一个中间信道
在此,根据广义部分序列定理对信道关系矩阵o进行更新,其具体步骤如下:
a、获取信道关系矩阵o,给定要降低的维度nu(nu<n),令nl=n-nu,
b、对于iu、ju、il、jl、k进行初始化,令iu=2,ju=1,il=1,jl=1,k=nu。
c、对i和j进行赋值,令i=(iu-1)×nl+il,j=(ju-1)×nl+jl。按广义部分序列定理将信道分成两部分。
如果信道iu与信道ju的关系不能由部分序列定理得到(不满足部分序列定理,或者说“差x”不满足部分序列里给出的条件),但是可以通过计算相应信道的巴氏参数获得,且信道il与信道jl关系是通过部分序列定理得到,则可以通过广义部分序列定理得出之间的关系。
d、调用tal-vardy算法计算nu低维度信道的巴氏参数,并存储这些信息。
e、如果信道iu比信道ju好(通过巴氏参数判断得出)且信道il不比信道jl差,则信道i比信道j好。
例如信道i-1=(10011110)b与信道j-1=(10011011)b是不能由部分序列定理得到其关系的,如果信道iu-1=(1001)b与信道ju-1=(0110)b通过计算信道的巴氏参数可以得到信道iu比信道ju好,其中信道il-1=(1110)b比信道jl-1=(1011)b好可以通过部分序列定理的到,则可以判断信道i-1=(10011110)b比信道j-1=(10011011)b好。
f、如果i>j,则令oij=1。如果i<j,则令oji=-1。
g、将jl+1的值赋给jl进行循环遍历处理。若jl≤il,则返回至对i和j进行赋值步骤;若jl>il,则按顺序进行下一步。
h、将il+1的值赋给il;若il≤nl,则返回至对i和j进行赋值步骤;若il>nl,则按顺序进行下一步。
i、将ju+1的值赋给ju;若ju≤nu,则返回至对i和j进行赋值步骤;若ju>nu,则按顺序进行下一步。
j、将iu+1的值赋给iu;若iu≤nu,则返回至对i和j进行赋值步骤;若iu>nu,则按顺序进行下一步。
k、将k-1的值赋给k,令nu=2k、nl=2n-k,若k≥3,则返回至对i和j进行赋值步骤;若k<3,则按顺序进行下一步。
l、信道关系矩阵o更新完毕。
最后,通过中间信道确定部分信道之间的间接关系。找出所有能够利用中间信道确定部分信道之间的间接关系,其具体步骤如下:
(1)获取更新后的信道关系矩阵o。
(2)对于i、j、k进行初始化,令i=2、j=1、k=1。所有的信道都可以是中间信道,比如信道2比信道1好,信道1比信道3好,那么信道2就比信道3好。不过由于最小的三个信道和最大的三个信道特殊,在实际应用中最小的三个信道和最大的三个信道通过传统的判断方式就可以判断所有的关系(例如巴氏参数计算或部分序列定理),因此在此不需要考虑这6个信道。
(3)中间信道判断,若信道i比信道k好且信道k比信道j好,则令oij=1,并跳至j值递加后再判断步骤;否则,按顺序进行下一步骤。
(4)若信道i比信道k差且信道k比信道j差,则令oij=-1。
(5)j值递加后再判断,将j+1的值赋给j;判断:若j<i,返回至中间信道判断步骤,若j≥i,按顺序进行下一步骤。
(6)将i+1的值赋给i,若i≤n,返回至中间信道判断步骤,若i>n,按顺序进行下一步骤。
(7)将k+1的值赋给k,若k≤n,返回至中间信道判断步骤,若k>n,按顺序进行下一步骤。
(8)信道关系矩阵o更新完毕。此时,经过此步骤更新后的信道关系矩阵o已经可以明确得到哪些信道为信息位、哪些信道为休眠位、哪些信道为不确定。
如图2所示,图2为信道关系矩阵o的示意图。图片在计算机里就是以矩阵的方式存储(或者说一堆数据)的,每张图片分成多少个像点,每个像点又有不同的像素,矩阵的里每个元素相当于像点,每个元数又可以是不同的值相当于像素,将得到的矩阵o模2后矩阵里就只有0、1了,再将0对应为白色,1对应为黑色(三原色),用matlab编译器画出。
图2中黑色点表示矩阵o相应位置的点是1或者-1(表示该对信道的关系是已知的),白色点表示矩阵o相应位置的点是0(表示该对信道的关系是未知的),上三角白色区域为无意义的。该示意图是以码长为n=29=512,降低的维度为nu=6的示意图,因此下三角区域有组合数
如图3所示,码长为n=29=512时,在不同的码率r,比值γ的变化曲线。其中γ表示集合u里的信道个数占总信道个数的比值:γ=|u|/n。可以看出码率r=0.5是最坏的情况,在信道之间关系的确定步骤后,集合u中的信道个数在最坏的时候也只占总信道个数的0.2倍。
第二步,根据信道关系矩阵o得到信息位和休眠位的判断,在此,矩阵o把已经可以判断出来的关系存储了起来,根据矩阵o可以得到每个信道比多少个信道好以及比多少个信道差,要选k位信息位,那么已经比n-k个信道好的信道一定会被选进集合i,已经比k个信道差的信道一定会被选进集合f,余下的信道放入集合u中。根据信道关系矩阵o确定为信息位的信道和为休眠位的信道,并将这些信道分别放入集合i、f中,将余下的信道放入集合u中,设需选出k位信息位,其中i中已经确定的信息位个数为ki。
其具体步骤如下:
(1)设信息位信道集合为i、休眠位信道集合为f、待确定信道集合为u。
(2)获取更新完毕后的信道关系矩阵o,依次对n个信道分别进行判断:
若信道c已经比n-k个信道好,则将信道c加入集合i;
若信道c已经比k个信道差,则将信道c加入集合f;
若信道c不比n-k个信道好且不比k个信道差,则将信道z加入集合u。
第三步,k位信息位的构成。对集合u进行信道的巴氏参数计算,选出集合u中最好的k-|i|个信道,将这k-|i|个信道放入集合i中,将集合i中的信道作为极化码的k位信息位。
表1码率为r=0.5时不同码长的改进前后时间对比表
如表1所示,其显示了码率为r=0.5时(从图3可以看出码率为r=0.5是最坏的情况),不同码长的改进前后时间对比表,可以看出即使在最坏的情况下,改进后的时间也不到原来时间的1/3。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是本发明的原理,在不脱离本发明精神和范围的前提下本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明的范围内。本发明要求的保护范围由所附的权利要求书及其等同物界定。