更全的杂志信息网

基于FPGA的低硬件复杂度的极化码编码实现方案

更新时间:2009-03-28

极化码(polar codes)是Arikan[1]于2008年提出的一种可以达到信道容量的信道编码,相较于传统的信道编码具有编译码算法复杂度低的特点,近年来成为信道编码领域的研究热点。2016年,极化码被列为5G控制信道的编码方案。

虽然极化码算法复杂度低,但其硬件实现复杂度却随着码长的增长而急剧增加。很多学者对极化码的硬件实现作了相关研究,如Leroux等[2]针对极化码的SC译码算法提出了一系列的硬件实现结构,Pamuk[3]采用FPGA技术实现了极化码译码结构,但早期的硬件实现结构复杂度非常高;Arpure等[4]利用FPGA实现了码长为16的全并行极化码编码结构,但其硬件成本随码长上升而急剧增加,不适合实际应用;Trifonov等[5]设计了一种利用RS核的极化码快速编码方案,并将其应用于数据存储系统;Zhang等[6]提出了极化码的编译码流水线实现结构,提高了极化码编译码的吞吐率;Yin等[7]提出了一种根据信道特征选择编码模式的极化码编码方案。Korada等[8]的研究表明,不同维度的克罗内克积内核具有不同的误码性能,内核的维度越大,性能越好,而此前的编码[4-7]都是基于Arikan[1]所提出的2×2维的克罗内克积的内核,在编码灵活性上存在欠缺,且都存在硬件复杂度较高的问题。

鉴于此,为降低极化码编码硬件电路的成本,提高编码结构灵活性,设计了一种基于FPGA的低硬件复杂度的极化码编码实现方案。该方案采用复用结构替换极化码编码中硬件复杂度较高的直接并行克罗内克积运算结构,并将其封装成可以实现任意维数克罗内克积运算的IP核,使其整体硬件复杂度由原来的O(n2)降低至与码长呈线性关系的复杂度O(n)。

1.灌输式、被动的接受性教学仍是当前高中政治课堂教学的主要模式,教师仍然起着绝对的主体作用,霸占着课堂教学的话语权,学生的主体地位没有得到尊重和充分体现。教师习惯一讲到底,惟恐学生听不懂,总认为讲得越细越好。

1 原理介绍

1.1 极化码生成矩阵

根据文献[1]提出的BEC信道下的极化码构造方法,由信道极化过程可得极化码的生成矩阵GN。码长为4的极化码编码与传输过程如图1所示。其中,输入为信息序列(u1,u2,u3,u4),经过编码得到码字序列(x1,x2,x3,x4),输出为接收序列(y1,y2,y3,y4)。W2为信道W的二重复用信道,在W2的基础上可以递归得到W4,按如图1所示的结构递归N次,便可得到信道WN

从图3可看出,进行一次最小阶数的运算需要16个与门,此外还需要4个输入端,16个输出端,对应20 bit的存储单元。当n>2时,运算Fn所需的硬件资源为4×(n-2)×16个与门,4×(n-2)×4个输入端,4×(n-2)×16个输出端,4×(n-2)×20 bit的存储单元。随着运算阶数的增加,电路面积也会急剧增加,每升一阶就需要4倍的硬件资源,而实际使用中的极化码码长一般都很长,最少为1 024,对应的n≥10,很显然,直接全并行实现结构的硬件复杂度非常高,所以需要对其进行改进。此外,FPGA实现此结构是通过将结构功能映射至查找表LUT与寄存器的方式,实际的硬件资源使用更多。为了方便理解,以F为克罗内克积核矩阵为例进行描述。

  

图1 码长为4的极化码编码过程Fig.1 Polarization process with code length of 4

(3) σix x°K R/σσiy y°和τx°λxL*L /ττy°λy对任意CS°(x), CS°(y), Ix, Iy, Λx和Λy成立。

 

图1中的R4为置换矩阵,其功能是实现一次比特逆序操作,即将输入序列(s1,s2,s3,s4)重新映射为序列(v1,v2,v3,v4),虚线框所对应的部分即为极化码的编码矩阵G4,由此可得极化码的生成矩阵公式:

其中:

GN=BNFn

其中:BN为进行比特逆序操作的置换矩阵,N=2nn>0;Fn为克罗内克幂(Kronecker power)矩阵。因此,构造极化码生成矩阵的关键是构造出BNFnBN定义为BNRN(I2BN/2),其中“⊗”表示克罗内积运算。Fn即基矩阵

 

在第1个时钟周期,基矩阵F中第1个元素F11与基矩阵F相乘,得F⊗2的第1个分块矩阵;第2个时钟周期,基矩阵F中第2个元素F12与基矩阵F相乘,得F⊗2的第2个分块矩阵,以此类推,便可求出F⊗2中的所有分块矩阵,实现一次完整的克罗内克积最小运算过程。

1.2 克罗内克积

设有m×n阶矩阵Ar×s阶矩阵B,则AB的克罗内积为

A

AB为一个m×r行、n×s列的矩阵,而克罗内克幂矩阵An定义为

AA⊗(n-1),n>1,A⊗0≜[1]。

为了方便描述,采用的极化码码长均为8。根据定义可知,当码长N=8时,极化码生成矩阵G8所对应的编码结构如图2所示,G8所对应的F⊗3

 
  

图2 N=8的极化码编码结构Fig.2 Coding structure of polarization code which N=8

2 克罗内克积硬件结构

2.1 全并行最小单元硬件结构

由克罗内克积的定义,将F⊗3按2×2拆分为分块矩阵,则F⊗3可分解为16个分块矩阵,按照从左至右,从上到下的顺序依次标记为每个分块矩阵都对应一个矩阵元素与矩阵相乘的结果。因此,可将2阶分块矩阵的计算过程作为克罗内克积的最小运算单元。最小运算单元为

F

图3为该最小运算单元的逻辑门实现结构。由图3可知,克罗内克积运算十分耗费硬件资源。

  

图3 最小运算单元的逻辑门实现结构Fig.3 Logical gate implementation structure of minimum arithmetic unit

1.4统计学分析 通过采用SPSS22.0软件进行分析处理,数据以均数±标准差(±s)表示,计量资料比较采用t检验,计数资料比较采用X2检验,P<0.05为差异具有统计学意义。

通过各种途径,以多种形式加强高等学校财务人员的培训,让财务人员了解《政府会计制度》的各项创新和所产生的重大变化,让全体财务人员全面掌握《政府会计制度》和《政府会计准则》的各项规定。同时,要求全体财务人员参与本单位多维科目体系的构建和财务会计和预算会计“平行记账”平台的搭建,要求财务人员结合《政府会计制度》尽快掌握权责发生制度下相关经济业务的会计核算方法。

2.2 改进的最小单元硬件结构

(2)高度重视施工组织方案的编制。施工组织方案(包括:施工总体组织设计及施工专项方案)是施工单位组织进行施工的指导性文件,应包含了工程施工的全部主要内容。是根据项目的具体要求,在仔细熟悉施工图纸、分析了项目自身的特点、施工现场的具体情况以及施工资源等基础上编制而成。施工组织方案的编制水平,体现了整个企业的施工水平。目前,在施工过程中,还存在着施工方案不够科学合理及不按施工方案组织进行施工的情况。需要我们进一步完善施工方案的编制,并将各项管理措施落实到位。同时,施工过程中的环保工作,在品质工程的建设中提出了更高的要求,应该在整个施工过程中都要体现(如:施工过程中对裸露土及土方运输车辆的覆盖)。

对最小运算单元FF的逻辑门结构进行分析后发现,全并行结构可简化为如图4所示的结构。其中,寄存器两侧的箭头表示寄存器循环移位方向。输入端与输出端各设置一个位宽为4 bit的循环移位寄存器,分别用来存储基矩阵F和作为计算结果的分块矩阵,根据不同的克罗内克积核可以设置相应位宽的寄存器,如16×16的克罗内克积核,相应的寄存器位宽为256 bit[6]

极化码所对应的编码公式为

  

图4 克罗内克积最小单元实现结构Fig.4 Kronecker product minimal unit implementation structure

进行n次克罗内克积运算的结果,矩阵F又叫克罗内克积核。极化码生成矩阵的构造过程中,克罗内克积运算所占的比重很大,因此克罗内积运算单元的硬件实现与优化对于极化码编码硬件实现具有重要意义。

采用复用的方式改进全并行运算结构,以牺牲速度为代价对其进行面积优化。生成矩阵是既定矩阵,对速度要求并不敏感,因此在速度上的损失并不会对性能造成太大影响。

图4结构针对的是基矩阵F的克罗内克幂运算,参与克罗内克积运算矩阵只有基矩阵本身,而置换矩阵的定义为BNRN(I2BN/2),参与计算的矩阵不再是固定的基矩阵F,而是单位矩阵I2与置换矩阵BN/2,因此,提出如图5所示的通用克罗内积运算结构。此结构可利用较低位宽的寄存器处理计算过程中的高阶矩阵。在输入端用2个位宽为4的寄存器分别存储矩阵A与矩阵B的分块矩阵,值得注意的是,只有第1个寄存器需要循环移位,而第2个寄存器寄存的是矩阵B的2阶子矩阵。当参与运算的矩阵是2阶矩阵时,寄存器存储的矩阵即为其矩阵本身。

  

图5 通用克罗内克积最小单元实现结构Fig.5 General Kronecker product minimal unit implementation structure

2.3 硬件复杂度分析

在未采用流水线结构的情况下,直接用图3结构实现m×n阶矩阵Ar×s阶矩阵B的克罗内克积计算,一般情况下,矩阵AB是方阵,即m=nr=s,计算过程中需要n2+r2 的存储单元和r2个逻辑门,其硬件复杂度为O(n2)。而通过复用图5所示的最小运算单元实现克罗内克积运算只需要3个固定深度为1 bit、位宽为4 bit的寄存器和4个与门,其硬件资源消耗随矩阵阶数增加而线性增大,所以改进的克罗内克积实现方案硬件复杂度为O(n)。

用进样针吸取20μL浓度为10mg·kg-1的氯标准样品(或样品)缓缓地插入裂解管进样口处的硅橡胶垫,再平放在液体进样器的针槽内。单击“启动”按钮,仪器自动测定分析样品,即可得出样品浓度。

采用此最小运算单元,便可实现任意n阶克罗内克积运算。图6为利用此结构计算F⊗3的数据流程图。其中F为基矩阵,PE为最小运算单元,分别为F⊗2的第1、2、3、4个分块矩阵,分别为F⊗3的1~16个分块矩阵。基矩阵F输入最小计算单元后,每个时钟周期输出一个计算结果,分别是F⊗2的分块矩阵再将这4个分块矩阵输入各自的最小计算单元,可分别计算出F⊗3对应的分块矩阵。整个计算过程需要8个时钟周期。

2)监测数据显示最大位移大概位于开挖深度为8 m左右,模拟显示最大位移出现在12 m左右,这与模拟土层的划分情况、现场施工操作和基坑模型考虑的深度也比现场标准段深2 m左右可能都有一定关系.

  

图6 F⊗3计算过程数据流程图Fig.6 Calculation process data flow diagram of F⊗3

3 实验结果

3.1 最小模块实现

将通用克罗内克积最小运算单元在Vivado上用Verilog语言进行描述,便可打包成如图7所示的IP核。输入端除了时钟信号与复位信号以外,A_valid信号表示数据输入A有效,B_valid表示数据输入B有效。A、B均为位宽为4 bit的数据输入端,分别表示最小运算单元输入端的矩阵AB,输入端位宽可以根据实际使用的克罗内克积核进行改变。该模块输出端为kron_valid信号,当此信号为1时,表示输出数据有效,4 bit位宽的数据输出端kron_out输出作为计算结果的分块矩阵。

  

图7 克罗内克积最小单元模块Fig.7 Kronecker product minimum unit module

3.2 硬件资源消耗

通过基于Xilinx旗下的XC7Z020CLG484-2这款FPGA实现该模块。单个模块所需的查找表(LUT)数量为13个,触发器(FF)数量为18个,需要的IO数量为17个。当此模块作为子模块被调用时,IO会被内部连线代替。单独驱动此模块,会消耗一个全局时钟资源(BUFG),而在被当作子模块使用时,不会直接使用BUFG。表1为复用结构实现一次克罗内克积运算与全并行编码结构[3]所需硬件资源的对比。

 

1 复用结构与全并行结构所需的硬件资源对比Tab.1 Comparison of hardware resources required for multiplex structure and full parallel structure

  

硬件资源复用结构全并行结构LUT1352FF1872IO1727

3.3 FPGA实验结果

图8为该模块实现一次所对应的时序波形图。其中Kron_out对应的是输出结果,Kron_valid为输出有效信号。从图8可看出,该模块每个时钟周期输出一个2阶分块矩阵的值,共需4个周期才能完成计算。

F

用版本为R2014 A的Matlab,在处理器为i7-3740QM 2.7 GHz,内存16 GB的PC上运行一次克罗内克积最小运算单元需1.7 ms,而在50 MHz时钟频率下运行本研究提出的克罗内克积最小单元结构只需0.000 08 ms,可见算法的硬件实现可以极大地提升其运行速度。

  

图8 最小单元时序波形图Fig.8 Minimum unit timing waveform

4 结束语

针对极化码编码中克罗内克积硬件实现复杂度高的问题,提出了一种低硬件复杂度的极化码编码的硬件实现方案。给出了针对克罗内克幂矩阵的硬件实现结构,并利用该结构基于FPGA实现了克罗内积的最小运算单元。该方案通过复用本研究所提出的最小运算单元结构,可以显著降低极化码编码器的硬件复杂度,并实现任意维度的克罗内克积核矩阵的克罗内克幂计算,进一步提高了编码结构的灵活性。

参考文献:

[1] ARIKAN E.Channel polarization:a method for constructing capacity-achieving codes for symmetric binary-input memoryless channels[J].IEEE Transactions on Information Theory,2008,55(7):3051-3073.

[2] LEROUX C,TAL I,VARDY A,et al.Hardware architectures for successive cancellation decoding of polar codes[C]//IEEE International Conference on Acoustics,Speech and Signal Processing,2011:1665-1668.

[3] PAMUK A.An FPGA implementation architecture for decoding of polar codes[C]//IEEE International Symposium on Wireless Communication Systems,2012:437-441.

[4] ARPURE A,GUGULOTHU S.FPGA implementation of polar code based encoder architecture[C]//IEEE International Conference on Communication and Signal Processing,2016:691-695.

[5] TRIFONOV P,MILOSLAVSKAYA V,CHEN C,et al.Fast encoding of polar codes with reed-solomon Kernel[J].IEEE Transactions on Communications,2016,64(7):2746-2753.

[6] ZHANG C,YANG J,YOU X,et al.Pipelined implementtations of polar encoder and feed-back part for SC polar decoder[C]//IEEE International Symposium on Circuits and Systems,2015:3032-3035.

[7] YIN J,HUANG Q,LI L,et al.High throughput parallel encoding and decoding architecture for polar codes[C]//IEEE/CIC International Conference on Communications,2017:1-5.

[8] KORADA S B,SASOGLU E,URBANKE R.Polar codes:characterization of exponent,bounds,and constructions[J].IEEE Transactions on Information Theory,2009,56(12):6253-6264.

 
周秉毅,陈紫强,谢跃雷,黄志成
《桂林电子科技大学学报》2018年第06期文献

服务严谨可靠 7×14小时在线支持 支持宝特邀商家 不满意退款

本站非杂志社官网,上千家国家级期刊、省级期刊、北大核心、南大核心、专业的职称论文发表网站。
职称论文发表、杂志论文发表、期刊征稿、期刊投稿,论文发表指导正规机构。是您首选最可靠,最快速的期刊论文发表网站。
免责声明:本网站部分资源、信息来源于网络,完全免费共享,仅供学习和研究使用,版权和著作权归原作者所有
如有不愿意被转载的情况,请通知我们删除已转载的信息