法律状态公告日
法律状态信息
法律状态
2020-05-19
授权
授权
2018-08-14
实质审查的生效 IPC(主分类):G06F17/50 申请日:20180202
实质审查的生效
2018-07-20
公开
公开
技术领域
本发明属于信道编码领域,尤其涉及一种基于FPGA的极化码编码器硬件实现方法。
背景技术
极化码编码技术由E.Arikan在2007年提出,该编码技术在二进制离散无记忆信道条件下,当码长趋于无穷大时会出现信道极化现象,即部分信道容量趋近于1而部分趋近于0。在这种条件下极化码可以达到香浓极限,并且其编码算法的复杂度较低,这使得极化码编码成为信道编码史上的一个重大的突破。极化码作为一种新兴的编码技术,引起了无线通信界广泛的关注。成为在编码领域广受关注的热门研究课题之一。
由于极化码编码结构的前后级之间具有较高的关联性,这使得极化码在并行设计上存在着许多困难。目前极化码的编码器设计主要借鉴FFT算法的处理思想进行FPGA硬件设计,但该方法依然属于串行运算。本发明将利用G矩阵的分布规律,结合查表法设计出一种并行结构的极化码编码器。
发明内容
本发明极化码编码方法主要针对极化码编码在并行设计上存在的问题,在总结出极化码编码生成矩阵结构规律的基础上,利用查表法设计出一种基于FPGA的极化码编码器,从而大大提高了极化码编码的并行度。
本发明所采取的技术方案如下:
(1)找出生成矩阵的结构规律。极化码编码器的结构是基于一个单元矩阵组成的,该单元矩阵为:
当码长为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>
s1=a1^a3^a5^a7(6)
s2=a2^a3^a6^a7(7)
s3=a3^a7>
s4=a4^a5^a6^a7(9)
s5=a5^a7>
s6=a6^a7>
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系统结构图
图2 256位编码器系统程序框图
具体实施方式
下面用码长为1024的FPGA极化码编码器作为实例,并结合图2对本发明进行详细的描述,具体实施方式如下步骤:
步骤一:使能编码器,设置循环标志位n=1,编码器开始接收32位信息比特,将32位信息比特分成四线程分别传输到ROM中进行查表操作,ROM分别输出4个8位编码序列。并将结果存于编码中间结果存储器中。
步骤二:编码结构运算器从中间结果存储器中读取数据,并根据技术方案(1)中所述算法计算32位编码序列。并将其存储于32位编码存储器中。再根据编码器目前编码码长选择是否进行下一组编码。
步骤三:循环标志位加1,并接收下一组32位信息比特,重复步骤一步骤二的操作。
步骤四:当n=9时,系统停止接收信息比特,并调用编码结构运算器读取8个32位编码序列,根据技术方案(1)中所述算法计算出256编码。并开始编码下一个256位信息序列。
机译: 生成时钟信号,以实现基于周期的,可重复的基于FPGA的FPGA硬件加速器
机译: 生成时钟信号,以实现基于周期的,可重复的基于FPGA的FPGA硬件加速器
机译: 生成时钟信号,以实现基于周期的,可重复的基于FPGA的FPGA硬件加速器