上海时时乐计划_上海时时乐在线计划-官网|首页 
 
  首页        上海时时乐计划      医疗科室      关于我们      新闻中心      服务项目
 

基于FPGA的极化码的SCL译码算法研究

  2008年ARIKAN E提出了信道极化的概念并对信道极化现象进行了详细的描述[1]。极化码的主要过程是在编码系统中通过对信道进行结合与拆分,然后在其中选择好的部分信道来进行有效数据的传输。极化码被严格证明有以下两个特性:一是基于信道极化现象存在;二是在码长为无限长时,其信道容量可达香农极限。相比于经典的Turbo码与LDPC码,极化码具有更低的误码率和复杂度以及更高的吞吐率[2-3]。 copyright dedecms

  极化码的译码算法研究近年来发展迅速,其中成为研究热点的连续删除(Successive Cancellation,SC)译码算法的基本思想是通过对信息位的比特似然概率值的判断来进行译码。但由于在译码时前一个译码值会对之后的译码值造成影响,因此导致译码性能较差[4]。在此基础上改进的序列连续删除(Successive Cancellation List,SCL)算法能在计算复杂度与空间复杂度之间实现更好的平衡[5],相比于在软件上实现该算法,在FPGA上进行SCL译码可以使译码速度进一步加快[6]。目前极化码各方面都已经取得了硕果,但是在FPGA上的译码实现仍然存在着译码效率和吞吐率不够高等问题[6]。因此本文针对极化码的SCL译码算法进行了研究和优化,减少资源消耗同时提高译码效率;针对FPGA上的译码器设计进行了定点量化的改进;最后在Xilinx的VC707开发板上进行了译码器的实现与性能分析。实验结果表明译码器在码长为512时译码效率为143.988 MHz,吞吐率达到了28.79 Mb/s,具有较强的工程使用价值。 织梦内容管理系统

  SCL译码算法实质是对SC译码算法的推广,SC译码算法的基本思想是通过对每个传输码字的LLR(对数似然比值)进行判断译出码字,LLR的定义如式(1)所示。 内容来自dedecms

copyright dedecms

  图1所示为SC译码路径示意图,由示意图和LLR计算公式可以看出SC译码在译码过程中前一个译码值与之后的译码值相互关联,这将对其译码算法的性能造成影响。

织梦内容管理系统

织梦好,好织梦

本文来自织梦

  如图2所示的SCL译码过程中,传输的码字为1010,其中前两位为固定比特,后两位为信息比特。传输码字从根节点出发向下扩展,可以得到相应的PM值,一直扩展到4条路径,此时取出PM值较小的两条路径继续扩展,其余路径删除,因此最终只有4条路径,其中最后算出的PM值最小的相应路径即为译码结果。图2中曲线代表此次PM值最小路径为1010,译码结果正确。 织梦内容管理系统

织梦好,好织梦

  SCL译码算法的核心依然是SC译码算法,但其性能优于SC译码算法。在FPGA上进行SCL译码算法的实现会遇到如何提高译码效率和吞吐率以及如何合理利用FPGA片上资源等挑战。针对SCL译码算法的优化可以在基于其具有的递归结构下对译码计算过程进行简化,针对FPGA上的译码器设计可在运算过程中对浮点数进行量化,更有利于硬件实现。 织梦内容管理系统

  图3所示为本文所设计的SCL译码系统图,针对在SCL译码的过程中有可能出现最小PM值路径译码不是正确译码的情况,可以通过采用文献[8]中的增加循环冗余校验(Cyclic Redundancy Check,CRC)辅助的方法来进行解决。在编码系统中先对源码进行校验码的添加,然后进行极化码的编码生成相应的码字进行传输。解码系统在FPGA上使用设计的译码器对传输过来的码字进行极化码译码以及校验码校验,在译码最后阶段的路径选择时从最小PM值逐条校验,一旦出现校验通过的路径即为译码结果。

copyright dedecms

织梦内容管理系统

  SCL译码过程实质是L个SC译码算法同时进行,图4所示为码长为8时的SC译码算法递归流程图,图中传递的信息

本文来自织梦

  在图4所示的SC译码算法流程图中实线部分代表执行的f函数,虚线部分代表执行的g函数。分别定义如下: dedecms.com

织梦好,好织梦

  在SCL译码过程中的LLR计算值均为浮点数,直接在FPGA中计算会使得译码复杂度较高,因此将浮点数进行定点量化转变成定点数,定点量化的结果通过(O,R,D)来表示,定义如表1所示。

织梦内容管理系统

本文来自织梦

  对f函数进行改进之后,译码过程中的计算不再涉及乘除法,因此信道输出和LLR的小数位数可以一致。由于采用定点量化用量化值代替了原始值,必定会对译码结果造成一定影响,因此选择合适的量化比特数和小数位数尤为重要。通过对信道输出值以及运算过程中的对数似然比值进行详细的分析以及对比实验,选出了三种如下较好的量化方式。图5所示为量化前后的BER曲线所示的三种量化方式相比,(4,4,0)由于LLR量化的比特数过小,导致效果不是很理想。(4,5,0)和(5,6,1)的量化选择基本没有降低SCL的译码性能,而(4,5,0)这种没有小数位的量化选择更有利于在FPGA上进行计算,因此译码器的设计选用(4,5,0)的量化方式。

织梦内容管理系统

内容来自dedecms

  本文选择在Xilinx的VC707开发板上对译码器进行实现。该开发板的主芯片为XC7VX485T,包含有485 760个逻辑单元、2 800个DSP Slice、37 080 KB内存以及700个I/O引脚等资源。其最高运行频率可以达到741 MHz,可以用来实现极化码的译码。图6为该评估板实物图。

织梦好,好织梦

  为了对SCL和SC算法进行对比以及选择一个合适的路径删减值L,在译码器编写前对各L值下的SCL算法进行了MATLAB仿线时误比特率差别较大,再继续加大L值时虽然可以使误比特率进一步降低,但是差别已经没有那么明显,为了在FPGA上能够更容易实现SCL算法,选择L=2来进行路径删减实现算法。

织梦好,好织梦

本文来自织梦

  如图8所示上半部分为在ModelSim上码长为64时的仿真结果,data_u_out和data_uhat_out分别为输入源码字和译码仿真结果。下半部分为使用Chipscope抓取的FPGA中运行结果波形图,data_u和data_uhat分别为输入源码字和实际译码结果。输入源码中有一半码字为固定比特,因此有效码字只有32位。由图8可以看出源码字和仿真结果以及FPGA译码结果均为69ab4d68,因此本次译码结果正确。

内容来自dedecms

本文来自织梦

内容来自dedecms

  下面对算法的性能以及工程占用资源等进行综合分析,在ISE软件上的综合报告中可以查看译码器在FPGA上的资源使用结果,如表2所示。

织梦好,好织梦

织梦好,好织梦

织梦内容管理系统

  式中N为有效码长,fmax为最大时钟频率,td为译码延迟的时钟周期数。吞吐率计算结果如表3所示。

内容来自dedecms

织梦内容管理系统

  如今极化码正越来越受到研究者们的重视,而国内在极化码译码算法研究方面有待深入,尤其是在硬件平台中实现的较少。基于此本文主要针对极化码的SCL译码算法进行了研究与优化,并在FPGA上设计了译码器,最后在Xilinx的VC707开发板上进行译码器的实现。该译码器的设计降低了译码复杂度以及FPGA上的资源消耗,在码长为512时译码最高频率为143.988 MHz,吞吐率为28.79 Mb/s,有较强的工程实用性。

织梦内容管理系统


上一篇:千万别在朋友圈晒登机牌!网传“译码器”直接读取个人信息   下一篇:没有了
>