基于CRC辅助的极化码的置信度传播翻转算法设计的制作方法

文档序号:21541353发布日期:2020-07-17 17:43阅读:541来源:国知局
基于CRC辅助的极化码的置信度传播翻转算法设计的制作方法

本发明属于通信信道编码的译码技术领域,尤其涉及一种基于crc辅助的极化码的置信度传播(beliefpropagation,简称bp)翻转算法设计方法。



背景技术:

目前,5g通信标准信道编解码方案确定为极化码。arikan基于信道极化现象,提出基于信道极化原理的信道编码方案——极化码。极化码在编码过程中利用可靠性高的子信道进行信息序列的传输,对于可靠性低的子信道传输固定比特,并且随着极化码码长的增大,子信道的可靠性出现两极分化。极化码作为一种线性分组码,与turbo码相比,有较低的编译码复杂度,因而受到5g通信标准的青睐。

当前极化码的译码算法主要分为两类:一类是以sc算法为基础的衍生算法,如scl、crc-scl等;另一类是以bp算法为基础的衍生算法,如bpl算法等。sc算法具有较低的译码复杂度,但是由于sc属于串行译码,随着极化码码长的增加,其译码延时也随着增加。并且由于sc在译码过程中存在误码传播现象导致其译码性能较差。bp算法利用软信息进行迭代译码,译码过程可并行执行,降低了译码时延。对bp算法的译码过程的研究发现,bp算法在译码过程中存在与sc算法相似的误码传播现象,即当前比特的译码计算值将对后续信息比特的计算产生影响。基于该现象,利用crc的检错机制,提出基于crc辅助的极化码的bp翻转算法设计,该方法通过对可靠性较低的位的翻转操作,来提升整体bp译码器的性能。



技术实现要素:

本发明为了解决已有技术所存在的问题,利用置信度传播译码算法的特性,在极化码原始置信度传播算法的译码过程基础上,利用crc的检错特性,并根据原始置信度传播算法的译码结果的llr值的大小,选取若干较小的llr所对应的r值,对相应的r值进行翻转,以提升置信度传播算法的译码性能。

本发明所采取的技术方案如下:

(1)添加crc校验位。对信息序列进行极化码编码前,首先对信息序列进行crc编码,再进行极化码编码,即编码后的极化码序列中含有crc校验位。添加的crc校验位,将被用于对译码结果的检验。

(2)第一阶段bp译码。首先对待译码信息进行第一阶段的bp译码,该阶段的bp译码算法的迭代次数略小于正常bp的迭代次数。并对此时bp译码的结果进行crc校验,若译码结果通过crc校验,说明译码结果正确,则输出译码结果;若译码结果未通过crc校验,则进行后面的操作。

(3)翻转位确定。对未通过crc校验的第一阶段bp译码结果的llr值进行从小到大的排序。利用排序后的llr值序列进行翻转位确定。首先,确定候选翻转位数的大小。根据候选翻转位数的大小n和排序后的llr值序列,进行翻转位数确定时有两种方法:1.直接按翻转位数大小,选取排序后的llr值序列前面较小的n位,对于llr值对应的信息位是否为信息位和冻结位不进行区分。2.根据翻转位数的大小,仅选取llr值序列中较小的n个信息位所对应的位置。根据前面确定的候选翻转位,将此翻转位对应的r值置为无穷大,其他位保持不变。

(4)第二阶段bp译码。依次对(3)中翻转后的译码序列重新进行bp译码,每次仅对一位翻转位操作,若选取的翻转位数大小为n,则需进行n次bp译码,该bp译码的迭代次数略小于第一次bp译码使用的大小。需说明的是,根据(3)中可知,每次进行一位的翻转的同时其它位保持不变,即n次bp译码同时进行,这样可以减少译码所需的时间。

本发明相对现有技术具有的优点和有益效果为:

1)随着选取的信息位数的增多,本文提出的基于crc辅助的bp译码算法其ber性能随着提升。这是由于随着选取的信息位数增多,同时对译码信息序列检测的位数也随之增加,该算法以llr值最小值进行信息可靠性的评估,所以我们每次仅对一位进行操作,并在下次操作时,对上次进行操作的对应信息位进行复原,以降低对整体译码序列的影响。该算法的核心是利用bp算法译码过程中各个信息位之间的相互影响,通过对不可靠信息位进行翻转操作降低该位对整体译码信息序列的影响。

2)对算法的复杂性进行说明。本发明设计提出的基于crc辅助的bp算法的计算复杂度与原bp算法相同,该算法并没有增加复杂的译码操作,而crc校验的复杂度较低,可以忽略。对于译码时延问题,bp算法的译码时延,当码长固定时,仅取决于译码的迭代次数。当n值固定时,因为该算法中每次仅进行一位翻转操作,且相互独立。因此考虑到并行计算,本文实验中的总体译码迭代次数为iter0+iter2=40+30=70。而一般bp的迭代次数为60,即本文的算法仅需要增加少量的译码时延。

综合以上分析,本文提出的crc辅助翻转的bp算法,在增加少量译码时延时,可以提升整体的译码性能。

附图说明

图1基于crc辅助的bp翻转算法的译码流程图;

图2码长为512,不区分是否为信息位;

图3码长为512,仅对信息位进行翻转;

图4码长为512,crc辅助bp翻转算法性能对比曲线;

图5码长为1024,仅对信息位翻转的crc辅助bp翻转算法性能对比曲线。

具体实施方式

下面结合附图对本发明作进一步详细描述,以下实施例有助于对本发明的理解,是比较好的应用实例,但不应看作是对本发明的限制。

本发明设计所用的仿真工具为matlab,信道模型为awgn及bpsk调制方式,对码长为512,码率为1/2的polar码,采用crc辅助的bp翻转算法进行仿真。仿真过程中对n的大小分别取1、10、30及60,对比不同n值对译码算法的影响。仿真中一般bp算法的迭代次数为60,基于crc辅助的bp翻转算法iter0=40,iter2=30.

如图1所示,基于crc辅助的bp翻转算法的译码流程为:(1)对信道接收序列进行bp译码,在达到最大迭代次数iter0或满足crc校验时停止译码。若当迭代达到最大迭代次数iter0时,译码结果不能通过crc校验,说明译码结果错误,进行下一步操作。(2)将译码结果的llr值进行由小到大排序,选取前n个llr值l(i),i=1,2,…n,进行下面操作。(3)对第l(i)个llr值所对应的r值进行赋值无穷的操作。即将该信息比特视为冻结比特。因为该信息比特的llr值小,我们不能正确的判断出该译码结果为0或1。因此为了避免在译码计算的过程中,该不确定信息位对其它信息位产生影响,我们将该信息比特设置为冻结比特0,即将其先验信息做无效处理。需要说明的是,为保证信息的准确性,每次仅对当前l(i)进行操作,并保证其它位信息的译码结果不变,即当对l(i+1)对应的r值进行赋值无穷时,l(i)值为原bp译码结果。(4)随后进行迭代次数为iter2的bp译码,若bp译码结果不满足crc校验,则令i=i+1,重复(3),当i=n时,停止译码并输出译码结果。

如图2所示,为对翻转位不进行信息位区分的结果。从图中可以看出,当对翻转位不进行是否为信息位区分时,本发明提出的基于crc辅助的bp翻转算法随着n的增大,译码性能也随之提升。当码长为512时,n=60的crc辅助bp翻转算法的译码性能相较于一般bp算法,在ber=10-3时,提升了0.4db左右的译码性能。

如图3所示,为仅对信息进行翻转的译码性能对比图。当仅对信息位进行翻转操作时,随着n值的增大,本文提出的译码算法性能也随之增大。

如图4所示,对比了区分翻转位是否为信息位和不区分的性能对比曲线。译码性能随着n值的增加而增大,只进行信息位的翻转操作的crc辅助的bp算法译码性能最好。以上分析说明了对于仅翻转信息位或不区分翻转位是否为信息位时,随着翻转位数的增多,基于crc辅助的bp算法的性能也随着提升,从以上仿真图可以看出,仅对信息位进行翻转操作时,该算法的译码性能更好。

如图5所示,为仅对信息位进行翻转时,与scl算法的对比曲线。其中scl算法的l分别取l=2和l=4。选取的polar码码长为512,码率为1/2,scl算法和本文算法所使用的crc位数均为24。从图5可以看出,当信噪比小于3db时,本文提出的算法在翻转位数大于或等于60时,其ber性能均好于l=2时的scl算法。当ber=10-4时,该算法在翻转位数为100时,其ber性能与l=4时的scl算法相比仅相差0.1db左右;与传统的bp算法相比,当ber=10-3时,该算法提升约0.5db左右。

上述实施例不以任何形式限制本发明,凡采用本发明的相似结构、方法及其相似变化方式所获得的技术方案,均在本发明的保护范围。

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