一种基于FPGA的极化码编码器硬件实现方法技术

技术编号:18497584 阅读:37 留言:0更新日期:2018-07-21 20:24
本发明专利技术公开了一种基于FPGA的极化码编码器硬件实现方法,该方法主要针对极化码编码结构的前后级之间关联性较强所导致的并行结构设计困难等问题,在总结出极化码编码生成矩阵规律的基础上,设计出一种简化运算的方法。该方法只需进行生成矩阵第一列的运算,而后根据规律可以得到整个编码结果。该方法在解决并行问题的基础上还引入了ROM查表法作为初始计算单元,从而大大提高了编码器整体的运算速度。

A hardware implementation method of polarization encoder based on FPGA

This invention discloses a hardware implementation method of polarization code encoder based on FPGA. This method mainly focuses on the difficulty of parallel structure design caused by the strong correlation between the front and back levels of the polarization code coding structure. On the basis of summarizing the law of the coding generation matrix of the polarization code, a simplified operation method is designed. This method only needs the operation of the first column of the generating matrix, and then the whole coding result can be obtained according to the rule. On the basis of solving parallel problems, the ROM look-up table method is introduced as the initial calculation unit, which greatly improves the overall computing speed of the encoder.

【技术实现步骤摘要】
一种基于FPGA的极化码编码器硬件实现方法
本专利技术属于信道编码领域,尤其涉及一种基于FPGA的极化码编码器硬件实现方法。
技术介绍
极化码编码技术由E.Arikan在2007年提出,该编码技术在二进制离散无记忆信道条件下,当码长趋于无穷大时会出现信道极化现象,即部分信道容量趋近于1而部分趋近于0。在这种条件下极化码可以达到香浓极限,并且其编码算法的复杂度较低,这使得极化码编码成为信道编码史上的一个重大的突破。极化码作为一种新兴的编码技术,引起了无线通信界广泛的关注。成为在编码领域广受关注的热门研究课题之一。由于极化码编码结构的前后级之间具有较高的关联性,这使得极化码在并行设计上存在着许多困难。目前极化码的编码器设计主要借鉴FFT算法的处理思想进行FPGA硬件设计,但该方法依然属于串行运算。本专利技术将利用G矩阵的分布规律,结合查表法设计出一种并行结构的极化码编码器。
技术实现思路
本专利技术极化码编码方法主要针对极化码编码在并行设计上存在的问题,在总结出极化码编码生成矩阵结构规律的基础上,利用查表法设计出一种基于FPGA的极化码编码器,从而大大提高了极化码编码的并行度。本专利技术所采取的技术方案如下:(1)找出生成矩阵的结构规律。极化码编码器的结构是基于一个单元矩阵组成的,该单元矩阵为:当码长为2n时,其生成矩阵与单元矩阵的关系为:其中是一个2n×2n矩阵。根据以上特性可以看出,在用该生成矩阵进行运算时,必定有着很多的重复计算,我们可以将重复的部分只计算一次并以该结果代替其他重复的部分。假设码长64的生成矩阵G如式⑶所示:其中,A为:设长度为64位的信息比特为C={c0,c1,c2,c3,c4,c5,c6,c7},其中ci为8位。则我们可以用以下方式来简化,令A1={a0,a1,a2,a3,a4,a5,a6,a7},其中,ai=ci×A。设编码后的信息序列为S={s0,s1,s2,s3,s4,s5,s6,s7},则有s0=a0^a1^a2^a3^a4^a5^a6^a7(5)s1=a1^a3^a5^a7(6)s2=a2^a3^a6^a7(7)s3=a3^a7(8)s4=a4^a5^a6^a7(9)s5=a5^a7(10)s6=a6^a7(11)s7=a7(12)式(5)~(12)为该算法的基本运算式,对比于直接运算,该方法有简化了运算过程,只进行第一列的运算,整体上提高了7倍的速度,后期的运算直接剔除G矩阵中的0元素,且该G矩阵为稀疏矩阵,这就很大程度上节约了计算单元。(2)基于FPGA的编码器设计。该编码器系统结构如图1所示。该系统包括信息分割模块、查表编码模块、8位编码结果存储器、编码中间结果存储器、编码结构运算器、输出模块。基于以上的简化算法,进行编码器的硬件设计。为了更进一步的简化运算,提高编码器的吞吐率,该编码器采用查表法对八位编码结果进行查表。首先通过MATLAB对8位编码器的所有输入(总共256种)进行编码计算并得出编码结果,然后在QUARTUSⅡ中创建深度为256的8位只读存储器ROM,将信息比特作为ROM的地址,将其编码结果作为ROM中对应地址的存储信息。为了提高并行度,本系统中建立了2个双口ROM,同时进行4线程的8位极化码编码。在同样的并行度下,查表法节约了8倍的计算周期。附图说明图1系统结构图图2256位编码器系统程序框图具体实施方式下面用码长为1024的FPGA极化码编码器作为实例,并结合图2对本专利技术进行详细的描述,具体实施方式如下步骤:步骤一:使能编码器,设置循环标志位n=1,编码器开始接收32位信息比特,将32位信息比特分成四线程分别传输到ROM中进行查表操作,ROM分别输出4个8位编码序列。并将结果存于编码中间结果存储器中。步骤二:编码结构运算器从中间结果存储器中读取数据,并根据技术方案(1)中所述算法计算32位编码序列。并将其存储于32位编码存储器中。再根据编码器目前编码码长选择是否进行下一组编码。步骤三:循环标志位加1,并接收下一组32位信息比特,重复步骤一步骤二的操作。步骤四:当n=9时,系统停止接收信息比特,并调用编码结构运算器读取8个32位编码序列,根据技术方案(1)中所述算法计算出256编码。并开始编码下一个256位信息序列。本文档来自技高网...

【技术保护点】
1.一种基于FPGA的极化码编码器硬件实现方法,其特征在于该方法包括以下步骤:(1)找出生成矩阵的结构规律,设计G矩阵计算的简化方法;(2)构建用于8位编码查表的ROM;

【技术特征摘要】
1.一种基于FPGA的极化码编码器硬件实现方法,其特征在于该方法包括以下步骤:(1)找出生成矩阵的结构规律,设计G矩阵计算的简化方法;(2)构建用于8位编码查表的ROM;2.根据权利要求1所述的硬件实现方法,其特征在于所述步骤(1)找出生成矩阵的结构规律,设计G矩阵计算的简化方法,具体是:设长度为64位的信息比特为C={c0,c1,c2,c3,c4,c5,c6,c7},其中ci为8位。则我们可以用以下方式来简化,令A1={a0,a1,a2,a3,a4,a5,a6,a7},其中,ai=ci×A。设编码后的信息序列为S={s0,s1,s2,s3,s4,s5,s6,s7},则有s0=a0^a1^a2^a3^a4^a5^a6^a7⑴s1=a1^a3^a5^a7⑵s2=a2^a3^a6^a7⑶s3=a3^a7⑷s4=a...

【专利技术属性】
技术研发人员:王秀敏吴卓铤王怡李君洪波
申请(专利权)人:中国计量大学
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1