一种基于CRC-SSCL的分段极化码编译码方法与流程

文档序号:16006562发布日期:2018-11-20 20:08阅读:421来源:国知局

本发明属于通信信道编译码领域,主要涉及基于CRC-SSCL(CRC aided Simplified Successive Cancellation List)的极化码译码算法,以及为进一步降低CRC-SSCL的存储单元、计算复杂度及译码时延,提出的基于极化码的CRC-SSCL译码算法的分段编译码算法。



背景技术:

极化码在2008年出现之后受到了广泛的关注,作为目前为止唯一被理论证明能够到达香农容量的好码,极化码拥有结构化特性,编译码复杂度为O(NlogN)。在2016年,极化码被确定为5G增强移动带宽下控制信道的编码方案。为了满足低时延高可靠的通信要求,如何进一步提升译码性能和降低复杂度、译码时延成为众多学者的研究的重点。

在提升译码性能方面,针对极化码在SC(Successive Cancellation)译码算法下性能较差的问题,Tal和Vardy等人提出了SCL(Successive Cancellation List)译码算法,可以大幅提高SC的译码性能。但与此同时,SCL的译码复杂度相较于SC算法增加了L倍,为O(L·NlogN)。使用CRC来辅助SCL的译码算法即CRC-SCL(CRC aided SCL)译码算法,可以保证在基本不增加复杂度的情况下进一步提升译码性能,使得极化码的性能优于Turbo码和LDPC码。

在降低译码复杂度方面,Amin和Frank提出了简化的SC译码算法即SSC(Simplified SC)算法,SSC算法划分了两类特殊节点:rate-0节点和rate-1节点。相对于原先SC要遍历整棵二叉树Tn,SSC算法通过简化了特殊节点的计算只需部分遍历二叉树Tn,因此可以有效降低复杂度和时延。针对CRC-SCL算法复杂度高的问题,有学者提出了基于CRC-SCL的分段编译码算法即Multi-CRC SCL(Multiple-CRC aided SCL)译码算法,但该译码算法牺牲了一定的性能增益。

在SSC和SCL的思想基础上,Seyyed和Carlo等人提出了简化的SCL算法即SSCL(Simplified SCL)译码算法,算法划分了三类特殊节点:rate-0节点、rate-1节点、rep节点。对于这三类特殊节点,可以直接计算对应路径的路径度量值,而无需激活以特殊节点为根节点的所有子节点,因此大大降低了译码复杂度和译码时延。

本发明主要关注使用CRC来辅助SSCL的译码算法,即CRC-SSCL算法,此算法虽然相对于CRC-SCL译码算法有效降低了计算复杂度和时延,但是在译码过程仍需同时保留L条可能的译码路径,从而需要大量的存储单元和成倍的计算复杂度。针对这一问题,本专利将提出一种基于CRC-SSCL算法的分段编码和译码算法,即Multi-CRC SSCL(Multiple-CRC aided SSCL)算法。不同于文献[3]:在分段编码中,专利将给出新的分段原则和具体的分段方法;在译码算法中,专利将给出适用于SSCL算法的新的译码算法即Multi-CRC SSCL算法,该译码算法在低信噪比时能够取得一定的性能增益。且在专利中给出Multi-CRC SSCL算法和其对比算法的路径存储单元、计算复杂度的表达式。并且在此基础上考虑在平均较小的复杂度下达到较好的性能,同时还提出了一种自适应调节列表L大小的Multi-CRC AD-SSCL(Multiple-CRC aided Adaptive-SSCL)译码算法。且在专利中给出Multi-CRC AD-SSCL算法和其对比算法的路径存储单元、计算复杂度的表达式。

以下文献介绍了本文相关的译码算法:

[1]Alamdar-Yazdi A,Kschischang F R.A Simplified Successive-Cancellation Decoder for Polar Codes[J].IEEE Communications Letters,2011,15(12):1378-1380.

[2]Hashemi S A,Condo C,Gross W J.Fast Simplified Successive-Cancellation List Decoding of Polar Codes[J].2017:957-960.

[3]Guo J,Shi Z,Liu Z,et al.Multi-CRC Polar Codes and Their Applications[J].IEEE Communications Letters,2016,20(2):212-215.

其中,文献[2]为SSCL算法,是与本文提出算法进行对比的参照算法。



技术实现要素:

为了进一步降低CRC-SSCL译码算法的计算复杂度和路径存储单元,本文将基于文献[3]的思想,对信息序列提出新的适用于CRC-SSCL算法的分段原则。每一段信息序列加CRC进行校验,在译码过程中每当完整译完一段信息序列后使用CRC选出一条路径进行剪枝。因此相对于文献[2]提出的SSCL译码算法,本发明提出的Multi-CRC SSCL可以进一步降低复杂度、存储单元。同时在此基础上本发明还提出了一种自适应调节列表L大小的Multi-CRC AD SSCL算法。

其中,本发明提出的适用于CRC-SSCL算法的分段原则为:分段时不能破坏特殊节点的结构。即如果我们分的段包含特殊节点,则应该包含以该特殊节点为根的子树的所有信息位。这样做的原因在于特殊节点可以降低计算复杂度和译码时延。

本发明技术方案为一种基于Multi-CRC SSCL的分段极化码编译码方法,该方法的编码方法为:

步骤1:对信息序列进行分段,分段时不能破坏信息序列的特殊节点,其中特殊节点包括:信息序列中的rate-0节点、rate-1节点、rep节点;

步骤2:在步骤1得到的每一分段信息序列后加一段循环冗余校验码(CRC),每一段循环冗余校验码的长度相同或不同;

步骤3:将步骤2获得的各段信息序列进行拼接,对拼接后的向量按照冻结比特指示矩阵进行插值处理,生成混合向量;

步骤4:对步骤3得到的混合向量进行编码;

该方法的译码方法为:

步骤5:根据步骤1中的分段信息,对步骤4获得的编码序列进行分段,采用串行译码的方式对步骤4获得的编码进行译码;

步骤6:当完成每一段编码序列的译码后,进行CRC校验;当存在满足CRC校验的路径时,保留满足CRC校验的路径中度量值最小的一条;当没有满足CRC校验的路径时,保留所有路径中度量值最小的一条;其中每条路径表示对编码序列进行串行译码后保留的每种可能的译码结果;

步骤7:完成最后一段编码序列的译码后保留下来的路径为编码序列的译码结果。

进一步的,所述步骤6中度量值的计算方法为:l是路径索引,是l条路径的第j个比特的估计值,ajl是ujl对应的似然值。

一种基于Multi-CRC AD-SSCL的分段极化码编译码方法,该方法的编码方法为:

步骤1:对信息序列进行分段,分段时不能破坏信息序列的特殊节点,其中特殊节点包括:信息序列中的rate-0节点、rate-1节点、rep节点;

步骤2:在步骤1得到的每一分段信息序列后加一段循环冗余校验码(CRC),每一段循环冗余校验码的长度相同或不同;

步骤3:将步骤2获得的各段信息序列进行拼接,对拼接后的向量按照冻结比特指示矩阵进行插值处理,生成混合向量;

步骤4:对步骤3得到的混合向量进行编码;

该方法的译码方法为:

步骤5:初始化L=1,L表示进行SSCL译码时保留路径的条数;

步骤6:根据步骤1中的分段信息,对步骤4获得的编码序列进行分段,采用SSCL译码器对步骤4获得的编码进行译码;

步骤7:对步骤6得到的L条路径进行CRC校验,当存在满足CRC校验的路径时,保留满足CRC校验的路径中度量值最小的一条;当没有满足CRC校验的路径时,L=2L重复步骤6,直到L等于设定的最大值Lmax;若此时仍然没有满足CRC校验的路径,则从Lmax条路径中选择出度量值最小的一条;

步骤8:完成最后一段编码序列的译码后保留下来的路径为编码序列的译码结果。

进一步的,所述步骤7中度量值的计算方法为:l是路径索引,是l条路径的第j个比特的估计值,ajl是ujl对应的似然值。

本发明相对于现有技术的优势在于:在降低计算复杂度和路径存储单元的同时,且提出的算法Multi-CRC SSCL和Multi-CRC AD-SSCL算法相较于原来对应的译码算法(为了对比清楚,记作Single-CRC SSCL、Single-CRC AD-SSCL)在低信噪比时取得一定的性能增益。下面给出四种算法的计算复杂度及路径存储单元的数学表达式,极化码SCL类的译码算法的复杂度主要取决于似然值计算单元也称处理单元即PE(Processing elements)的个数,因此计算复杂度我们用PE的个数表示。用Mx表示x方法所需的路径存储单元数,用PEx表示x方法所需的PE的个数,表示对x求平均。

Single-CRC SSCL算法:

MS=K·L (1)

PES=L·[NlogN-PEsave] (2)

Multi-CRC SSCL算法:

其中,Ki表示第i段信息序列的长度,Ni表示第i段信息序列对应的混合序列长度。式(4)中的PEi表示第i段信息序列所需似然值计算单元的数目。PEsave(i)表示采用SSCL算法第i段信息序列可以节省的计算单元,有PEdrop(i)=Nilog(N/Ni)表示在第i段信息序列我们漏掉的计算单元,随着L的增大,PEdrop(i)可以省略不记。因此式子(4)可以写为:

Single-CRC AD SSCL算法:

其中,L表示Single-CRC AD SSCL的最终列表长度。L′表示Multi-CRC AD SSCL算法使用过所有列表长度的和L′=1+2+…+L。

Multi-CRC AD SSCL算法:

其中,Li表示第i段信息序列最终的列表长度。L′i表示第i段信息序列使用过所有列表长度的和PEdrop(i)=Nilog(N/Ni),注意PEdrop(i)在此不可以省略。

附图说明

图1是本发明采用的M=3的分段架构;

图2是Multi-CRC SSCL(本发明算法)和Single-CRC SSCL(对比算法)在N=256,R=0.5下误帧率仿真对比图;

图3是Multi-CRC AD-SSCL(本发明算法)和Single-CRC AD-SSCL(对比算法)在N=256,R=0.5下误帧率仿真对比图;

图4是Multi-CRC SSCL(本发明算法)和Single-CRC SSCL(对比算法)在N=256,R=0.5所需路径存储单元仿真对比图;

图5是Multi-CRC SSCL(本发明算法)和Single-CRC SSCL(对比算法)在N=256,R=0.5所需计算PE单元仿真对比图;

图6是Multi-CRC AD-SSCL(本发明算法)和Single-CRC AD-SSCL(对比算法)在N=256,R=0.5所需路径存储单元仿真对比图;

图7是Multi-CRC AD-SSCL(本发明算法)和Single-CRC AD-SSCL(对比算法)在N=256,R=0.5所需计算PE单元仿真对比图。

具体实施方式

为了更好的理解本发明,下面将以上述技术方案为基准,详细介绍本发明的实施过程,且本发明的实施范围为一般场景,不只限于下文所述情形。

码长为N=256比特的极化码的码字,码率R=0.5,采用华为公司给出的冻结比特指示矩阵。总的CRC校验长度为24比特,总的信息比特为K=NR=128比特,实际有用信息比特为K'=104比特。使用分段CRC校验,每段CRC校验长度为8。根据图1把信息序列划分为3段,每段包含CRC后信息序列的长度为[33,36,59],不含CRC的信息序列长度为[25,28,51]。则提出两种算法对应的编码方法的具体步骤如下:

步骤1:随机产生104个比特信息构成信息序列,根据图1,将信息序列划分为3段,每段长度分别为25、28、51。

步骤2:对步骤1化分的3段信息序列,分别添加对应的8比特CRC校验信息,得到3段的新的信息序列,每段长度分别为33、36、59。

步骤3:根据步骤2新的信息序列得到对应的混合比特,根据图1,可以看出该混合比特分为3段,每段长度为[128,64,64]。

步骤4:对步骤3中的混合比特进行极化码编码,最终得到两种算法对应的极化码码字。

经过AWGN信道后,得到接收到的码字。本发明提出的第一种译码算法Multi-CRC SSCL的具体步骤如下:

步骤1:根据设定的L大小进行第1段SSCL译码,根据图2,L可以取4、16。当译码序列为33(69,128)时,完成第1(2,3)段信息序列的译码。注意,译码序列和路径都只保留信息序列,故长度为33(69,128)。

步骤2:对步骤1得到的L条路径进行CRC校验,当满足下面两个条件时输出该条路径:1)路径对应的信息序列满足CRC校验;2)满足条件1)的所有CRC序列中选择路径度量值最小的一条,若没有满足1)条件的路径,则输出所有路径中路径度量值最小的一条。

步骤3:重复步骤1和2,直到完成第3段的译码校验。

本发明提出的第二种译码算法Multi-CRC AD-SSCL的具体步骤如下:

步骤1:初始化L=1,Lmax=16。

步骤2:根据L大小进行第i段SSCL译码,当译码序列为(33i=1,69i=2,128i=3),时,完成第i段信息序列的译码。注意,译码序列和路径都只保留信息序列,故长度为(33i=1,69i=2,128i=3)。

步骤3:对得到的L条路径进行CRC校验,当满足下面两个条件时输出该条路径:1)路径对应的信息序列满足CRC校验;2)满足条件1)的所有CRC序列中选择路径度量值最小的一条,若没有满足1)条件的路径,则更新L=2L,重新进行第i段SSCL译码,即重新转入步骤2;当L=Lmax,选择路径度量值最小的一条作为输出。

步骤4:重复步骤2和3,直到完成第3段的译码校验。

图2,图3分别画出了本发明的算法与其对比算法的误帧率(FER)的性能对比图,可以看出在低信噪比时,相对于对比算法,发明提出的算法可以取得一定的性能增益。

图4和图5分别画出了本发明算法Multi-CRC SSCL与对比算法Single-CRC SSCL所需的路径存储单元、计算PE单元的对比图。总体来看,相比于对比算法,Multi-CRC SSCL所需的路径存储单元、计算PE单元更少。在L=16,该算法的路径存储单元仅为对比算法的53.32%,计算PE单元可以减少到对比算法的68.52%。

图6和图7分别画出了本发明算法Multi-CRC AD-SSCL与对比算法Single-CRC AD-SSCL在Lmax=16下所需的路径存储单元、计算PE单元的对比图。可以看出相比于对比算法,Multi-CRC AD-SSCL所需的路径存储单元、计算PE单元更少。在Lmax=16,该算法的路径存储单元在1.5dB仅为对比算法的54.86%,计算PE单元在1.5dB下可以减少到对比算法的39.18%。

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