极化码的块编码器及其编码方法转让专利

申请号 : CN201610607951.4

文献号 : CN106253913B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 张小军曾庆田刘艳盛瑞平张德学崔建明高键范学升隋荣全董雁飞

申请人 : 山东科技大学

摘要 :

本发明涉及极化码的块编码器及其编码方法,属于编码装置技术领域。本发明解决了现有技术存在的算法复杂度高和处理速度较低的问题。本发明的块编码器包括输入编码模块、生成矩阵模块和乘法器模块,每个模块有多个异或门和多个延时单元。编码方法包括如下步骤:将待编码的输入信息序列分组;构造极化码的生成矩阵;生成编码结果。本发明的原理在于:将矩阵GN压缩,含的位置用“1”代替,K×K的零矩阵用“0”代替,压缩后的矩阵即本编码器的生成矩阵使信息序列每个时钟输入K位信息比特,与矩阵GK做相应的编码运算的结果经过选择和异或运算后输出。本发明每个时钟可输入K位数据,经过1+N/K个时钟后输出N位数据,减少了编码延迟,提高了编码效率。

权利要求 :

1.一种极化码的编码方法,其特征在于:包括下列步骤:

第一步:设待编码的输入信息序列为uN=(u1,u2,u3,…,uN),其中N为码长,N为正整数;

将uN分为N/K组,每组有K个输入信息,即uN=(u′1,u′2,…,u′i,…,u′N/K-1,u′N/K),u′i=u(i-1)*K+1,u(i-1)*K+2,…,u(i-1)*K+K-1,ui*K;其中K=2k(k<n,k为正整数),n=log2N,1≤i≤N;

第二步:构造极化码的生成矩阵:矩阵为 其中 表示n次克罗内克积,GN为N×N矩阵,n=log2N,即矩阵F连续做n次克罗内克积,其中:

由以上矩阵可知矩阵GN的第一列数据均为1,第一行除第一列的数据为1,其他都是0,除第一列外从第二行开始每一列的数据都是上一行序列中该列和前一列数据的异或结果;若将矩阵GN用以下方式表示,则将

看作一个整体,其中K=2k(k<n,k为正整数),则小矩阵为 故GN可由若干个 和K×K的零矩阵构成;若以K×K矩阵块为单位,将原矩阵压缩,含 的位置用“1”代替,K×K的零矩阵用“0”代替,压缩后的矩阵即本编码器的生成矩阵那么 其中

第三步:生成编码结果:将编码输出序列分为N/K组,每组K位,即uN=(u′1,u′2,…,u′i,…,u′N/K-1,u′N/K),其中v′i=v(i-1)*K+1,v(i-1)*K+2,…,v(i-1)*K+K-1,vi*K,则

2.一种采用权利要求1所述的极化码的编码方法的块编码器,其特征在于:包括输入编码模块、生成矩阵模块和乘法器模块,每个模块有多个异或门和多个延时单元。

3.根据权利要求2所述的块编码器,其特征在于:所述延时单元均为D触发器。

4.根据权利要求2所述的块编码器,其特征在于:所述输入编码模块包括 个异或门和K个延时单元。

5.根据权利要求2或4所述的块编码器,其特征在于:所述异或门可分成log2K即k级,每级均含 个异或门,设第i级第j个(1≤i≤k,0≤j≤K-1)输出表示为level[i][j],当i=1,即第1级第j个输出表示为level[1][j],输入端表示为in[j]和in[j+1],则当2≤i≤k时,

第k级输出端通过延时单元连接到乘法器模块的输入端。

6.根据权利要求2所述的块编码器,其特征在于:所述生成矩阵模块由N/K-1个异或门和N/K个延时单元组成移位寄存器,输入端每个时钟输入1位数据,与上一个时钟的输入数据做异或运算并寄存结果,每个时钟输出移位寄存器的结果作为生成矩阵的每一行数据,该模块的一个输入端连接整个模块的输入端,输出端连接到乘法器模块的输入端。

7.根据权利要求2所述的块编码器,其特征在于:所述乘法器模块由N个异或门,其中K个为一组,N/K个K位二选一多路选择器以及N/K个由K个延时单元组成的延时单元组组成。

8.根据权利要求2或7所述的块编码器,其特征在于:所述乘法器模块的输入端与输入编码模块及生成矩阵模块的输出端连接,输入编码模块的K位输出端的每一位与每组异或门中的一个异或门的其中一个输入端连接,本模块的一个N位输出端中的相邻K个比特位依次与上述异或门的另一个输入端连接,每组异或门的输出端均连接到一个K位二选一多路选择器的“1”输入端,本模块的N位输出端的每K个相邻的比特位依次连接到K位二选一多路选择器的“0”输入端,生成矩阵模块的N/K位输出端的每一位依次连接一个K位二选一多路选择器的选择输入端,若生成矩阵中每一行中对应的第i位为1(0≤i≤K-1)时,该模块对应的输出为:否则,该模块对应的输出为:

V′[(i*K),(i*K)+1,…,(i+1)*K-1]=V[(i*K),(i*K)+1,…,(i+1)*K-1],每个选择器的输出端通过一个延时单元组连接到模块的输出端。

说明书 :

极化码的块编码器及其编码方法

技术领域

[0001] 本发明涉及极化码的块编码器及其编码方法,属于编码装置技术领域。

背景技术

[0002] 现代通信系统及网络的不断演化,深刻改变了人们的生活,其中人们感触最深的是传输速率的变化,从第一代模拟通信技术、第二代数字通信技术、第三代CDMA通信技术以及目前产业化的4G技术,编码装置的传输速率越来越快。随着通信技术的发展,5G网络逐渐开始发展,当前全球多个国家已竞相开展5G网络技术的研发,早在2009年,华为就已经展开了相关技术的早期研究,并在之后的几年里向外界展示了5G原型机基站,2013年,欧盟宣布将拨款5000万欧元加快5G移动技术的发展。2016世界移动通信大会上,5G成为此次大会的热点之一,多家厂商,如诺基亚、爱立信、中兴等,都带来了5G的相关技术。
[0003] 5G网络作为第五代移动通信技术,其最高理论传输速率可达10Gbit/s,是4G网络的数百倍,并且其覆盖范围广、低延时等特点对现代通信技术是一个高难度的挑战。自2008年Arikan提出极化码以来,经过学者的努力,目前的极化码的编译码算法较已有的编码方式(Turbo、LDPC)相当、甚至更优的性能,从而成为下一代通信技术的候选者。因此本文研究的高效的极化码的块编码器有极强的理论意义和应用价值。
[0004] 目前极化码的编码设计有多种方案,但其算法复杂度高、处理速度较低。

发明内容

[0005] 本发明的目的在于克服现有极化码的编码设计存在的上述缺陷,提出了一种极化码的块编码器及其编码方法,通过极化码的编码思想和软件硬件化,可以有效增加编码速度,降低硬件复杂度,提高处理频率,具有良好的实用价值。
[0006] 本发明是采用以下的技术方案实现的:一种极化码的编码方法,包括下列步骤:
[0007] 第一步:设编码器的输入信息序列:uN=(u1,u2,u3,…,uN),其中N为码长,N为正整数;将uN分为N/K组,每组有K个输入信息,即uN=(u1′,u′2,…,ui′,…,u′N/K-1,u′N/K),ui′=u(i-1)*K+1,u(i-1)*K+2,…,u(i-1)*K+K-1,ui*K;其中K=2k(k<n,k为正整数),n=log2N,1≤i≤N;
[0008] 第二步:构造极化码的生成矩阵:矩阵为 其中 表示n次克罗内克积,GN为N×N矩阵,n=log2N,即矩阵F连续做n次克罗内克积,其中
[0009]
[0010] 由以上矩阵可知矩阵GN的第一列数据均为1,第一行除第一列的数据为1,其他都是0,除第一列外从第二行开始每一列的数据都是上一行序列中该列和前一列数据的异或结果;若将矩阵GN用以下方式表示,
[0011]
[0012] 则将
[0013]
[0014] 看作一个整体,其中K=2k(k<n,k为正整数),则该小矩阵为 故GN可由若干个和K×K的零矩阵构成;若以K×K矩阵块为单位,将原矩阵压缩,含 的位置用“1”代替,K×K的零矩阵用“0”代替,压缩后的矩阵即本编码器的生成矩阵
[0015] 那么 其中
[0016] 第三步:生成编码结果:将编码输出序列分为N/K组,每组K位,即uN=(u1′,u′2,…,ui′,…,u′N/K-1,u′N/K),其中vi′=v(i-1)*K+1,v(i-1)*K+2,…,v(i-1)*K+K-1,vi*K,则[0017] 一种极化码的块编码器,包括输入编码模块、生成矩阵模块和乘法器模块,每个模块有多个异或门和多个延时单元。
[0018] 进一步地,所述延时单元均为D触发器。
[0019] 进一步地,所述输入编码模块包括 K个异或门和K个延时单元。
[0020] 进一步地,所述异或门可分成log2K即k级,每级均含 个异或门,设第i级第j个(1≤i≤k,0≤j≤K-1)输出表示为level[i][j],当i=1,即第1级第j个输出表示为level[1][j],输入端表示为in[j]和in[j+1],则
[0021]
[0022] 当2≤i≤k时,
[0023]
[0024] 第k级输出端通过延时单元连接到乘法器模块的输入端。
[0025] 进一步地,所述生成矩阵模块由N/K-1个异或门和N/K个延时单元组成移位寄存器,输入端每个时钟输入1位数据,与上一个时钟的输入数据做异或运算并寄存结果,每个时钟输出移位寄存器的结果作为生成矩阵的每一行数据,该模块的一个输入端连接整个模块的输入端,输出端连接到乘法器模块的输入端。
[0026] 进一步地,所述乘法器模块由N个异或门,其中K个为一组,(N/K)个K位二选一多路选择器以及N/K个由K个延时单元组成的延时单元组组成。
[0027] 进一步地,所述乘法器模块的输入端与输入编码模块及生成矩阵模块的输出端连接,输入编码模块的K位输出端的每一位与每组异或门中的一个异或门的其中一个输入端连接,本模块的一个N位输出端中的相邻K个比特位依次与上述异或门的另一个输入端连接,每组异或门的输出端均连接到一个K位二选一多路选择器的“1”输入端,本模块的N位输出端的每K个相邻的比特位依次连接到K位二选一多路选择器的“0”输入端,生成矩阵模块的N/K位输出端的每一位依次连接一个K位二选一多路选择器的选择输入端,若生成矩阵中每一行中对应的第i位为1(0≤i≤K-1)时,该模块对应的输出为:
[0028]
[0029] 否则,该模块对应的输出为:
[0030] V′[(i*K),(i*K)+1,…,(i+1)*K-1]=V[(i*K),(i*K)+1,…,(i+1)*K-1]
[0031] 每个选择器的输出端通过一个延时单元组连接到模块的输出端。
[0032] 工作原理:本发明采用异或门、延时单元、选择器等器件组成的编码模块,将其依次连接,实现极化码的块编码工作。
[0033] 本发明的有益效果是:本发明所述的极化码的块编码器及其编码方法,与现有技术相比,本发明可每个时钟输入K位数据,经过1+N/K个时钟后输出N位数据,减少了编码延迟,提高了编码效率。

附图说明

[0034] 图1是本发明的整体结构图。
[0035] 图2是本发明中输入编码模块的结构示意图。
[0036] 图3是本发明中生成矩阵模块的硬件架构图。
[0037] 图4是本发明中乘法器模块的硬件架构图。
[0038] 图5是码长N=16的输入编码模块的硬件架构图。
[0039] 图6是码长N=16的生成矩阵模块是硬件架构图。
[0040] 图7是码长N=16的乘法器模块的硬件架构图。

具体实施方式

[0041] 为使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实例,对本发明提出的编码方法进行详细说明。
[0042] 如图1所示,本发明提供的极化码块编码器由三个模块依次连接组成,三个模块分别命名为输入编码模块、生成矩阵模块及乘法器模块。输入编码模块的输入端连接编码器的一个K位输入端,其输出端和生成矩阵的输出端均连接到乘法器模块的输入端,乘法器模块的输出端即为编码器的输出。其中生成矩阵模块的输出端位宽是N/K,乘法器模块的输出端位宽是N。
[0043] 如图2所示,输入编码模块包括 个异或门和K个延时单元,异或门可分为log2K即k级,每级均含 个异或门。
[0044] 设第i级第j个(1≤i≤k,0≤j≤K-1)输出表示为level[i][j],当i=1,即第1级第j个输出表示为level[1][j],输入端表示为in[j]和in[j+1],则
[0045]
[0046] 当2≤i≤k时,
[0047]
[0048] 第k级输出端通过延时单元连接到乘法器模块的输入端。
[0049] 如图3所示,生成矩阵模块由(N/K-1)个异或门和N/K个延时单元组成移位寄存器,输入端每个时钟输入1位数据,每个时钟输出移位寄存器的结果作为生成矩阵的每一行数据,连接到乘法器模块的输入端。如图3所示,G'[2]=G[2]^G[1],G'[j]=G[j]^G[j-1],(1≤j≤N/K-1),当j=N/K-1,G'[N/K-1]=G[N/K-1]^G[N/K-2]。
[0050] 如图4所示,乘法器模块由N个异或门,其中K个为一组,(N/K)个K位二选一多路选择器以及N/K个由K个延时单元组成的延时单元组组成。本模块的输入端与输入编码模块及生成矩阵模块的输出端连接,输入编码模块的K位输出端的每一位与每组异或门中的一个异或门的其中一个输入端连接,本模块的一个N位输出端中的相邻K个比特位依次与上述异或门的另一个输入端连接,每组异或门的输出端均连接到一个K位二选一多路选择器的“1”输入端,本模块的N位输出端的每K个相邻的比特位依次连接到K位二选一多路选择器的“0”输入端,生成矩阵模块的N/K位输出端的每一位依次连接一个K位二选一多路选择器的选择输入端,若生成矩阵中每一行中对应的第i位为1(0≤i≤K-1)时,即G[i]=1时,该模块对应的输出为:
[0051]
[0052] 否则,即G[i]=0时,该模块对应的输出为:
[0053] V′[(i*K),(i*K)+1,…,(i+1)*K-1]=V[(i*K),(i*K)+1,…,(i+1)*K-1]
[0054] 每个选择器的输出端通过一个延时单元组连接到模块的输出端。
[0055] 三个模块中延时单元均为D触发器。
[0056] 对于这个结构,所用各种器件的数量为:
[0057] 延时单元:
[0058] 异或门:
[0059] K位二选一多路选择器:
[0060] 工作原理:本发明采用异或门、延时单元、选择器等器件组成的编码模块,将其依次连接,实现极化码的块编码工作。
[0061] 实施例一:
[0062] 图5、6、7分别是以码长N=16、K=4的极化码块编码器为例的输入编码模块,生成矩阵模块及乘法器模块,本发明以G16中G4 和4×4零矩阵为一个块,使信息序列每个时钟输入4位信息比特,该4位信号与4×4矩阵块的运算结果寄存到16位的寄存器中的低四位,第二个时钟再输入4位信息比特,与4×4矩阵块的运算结果按照生成矩阵每行的运算结果和16位的寄存器中的相应的4位做异或运算,以此类推,按照生成矩阵的特征使每个时钟的4比特输入信息和4×4矩阵块的运算结果做异或运算,最后4位信息比特输入经过选择和异或运算后输出编码器的编码结果。
[0063] 输入编码模块包括4个异或门和4个延时单元,本模块可分为两级异或运算,每级含两个异或门,结合门级出现的规律,第1级各个输出为level[1][0]=in[0]^in[1]、level[1][1]=in[1]、level[1][2]=in[2]^in[3]、level[1][3]=in[3],第2级各个输出为level[2][0]=level[1][0]^level[1][2]、level[2][1]=level[1][1]^level[1][3]、level[2][2]=level[1][2]、level[2][3]=level[1][3],第2级各个输出通过一个延时单元连接到乘法器模块的输入端。
[0064] 生成矩阵模块由3个异或门和4个延时单元组成移位寄存器,输入端每个时钟输入1位数据,寄存器的输入为上个时钟相邻两个寄存器的异或值,每个时钟输出移位寄存器的结果作为生成矩阵的每一行数据,该模块的输出端连接到乘法器模块的输入端。
[0065] 乘法器模块由16个异或门、4个4位二选一多路选择器以及4个延时单元组组成,其中4个异或门为一组,每个延时单元组由4个延时单元组成。本模块的输入端与输入编码模块及生成矩阵模块的输出端连接,输入编码模块的每个输出端与每组异或门中的一个异或门的其中一个输入端连接,本模块的一个4位输出端中的4个比特位依次与上述异或门的另一个输入端连接,每组异或门的输出端均连接到1个四位二选一多路选择器的“1”输入端,本模块的4位输出端的每4个相邻的比特位依次连接到四位二选一多路选择器的“0”输入端,生成矩阵模块的4位输出端的每一位依次连接一个四位二选一多路选择器的选择输入端,每个选择器的输出端通过一组延时单元连接到模块的输出端,三个模块中延时单元均为D触发器。
[0066] 实施例二:
[0067] 假设测试输入数据为1101_1111_0001_0101,则第一个时钟进入编码器的信号为in[3:0]=1011,在输入编码模块中经过一系列异或运算,该模块输出分别为out[0]=in[0]^in[1]^in[2]^in[3]=1、out[1]=in[1]^in[3]=0、out[2]=in[2]^in[3]=1、out[3]=in[3]=1,同时生成矩阵模块中G[0]=1,G[1]、G[2]、G[3]分别保存移位寄存器中G[0]、G[1]、G[2]的数据,那么G[3:0]=0001,上述两模块的输出作为乘法器模块的输入,由图7,以G[0]为选择端的四位二选一多路选择器,由于G[0]=1,该选择器的输出端是1101,则V[3:0]=1101,G[1]、G[2]、G[3]均为0,所以以这三个比特位为选择端的选择器的输出均为
0000,所以V[15:4]=0000_0000_0000,综上V[15:0]=0000_0000_0000_1101;第二个时钟的输入信号为in[3:0]=1111,输入编码模块的输出分别为out[0]=in[0]^in[1]^in[2]^in[3]=0、out[1]=in[1]^in[3]=0、out[2]=in[2]^in[3]=0、out[3]=in[3]=1,生成矩阵模块中G[0]=1、G[1]=G[0]^G[1]=1、G[2]=G[1]^G[2]=0、G[3]=G[2]^G[3]=0,在乘法器模块中,G[0]=1,以G[0]为选择输入端的选择器的“1”输入端是out[3:0]与V[3:0]按位异或的结果,所以选择器的输出端经过延时单元后得V[3:0]=0101,G[1]=1,以G[1]为选择输入端的选择器的“1”输入端是out[3:0]与V[7:4]按位异或的结果,该选择器的输出端经过延时单元后得V[7:4]=1000,G[2]=0,以G[2]为四位二选一多路选择器的“0”输入端是V[11:8],G[3]=0,以G[3]为四位二选一多路选择器的“0”输入端是V[15:12],则V[15:8]=0000_0000,则V[15:0]=0000_0000_1000_0101;第三个时钟的输入信号为in[3:
0]=1000,输入编码模块的输出分别为out[0]=in[0]^in[1]^in[2]^in[3]=1、out[1]=in[1]^in[3]=1、out[2]=in[2]^in[3]=1、out[3]=in[3]=1,生成矩阵模块的输出G[0]=1、G[1]=G[0]^G[1]=0、G[2]=G[1]^G[2]=1、G[3]=G[2]^G[3]=0,在乘法器模块中G[0]=1,以G[0]为选择器的输入端的“1”输入端是out[3:0]与V[3:0]按位异或的结果,所以选择器的输出端经过延时单元后得V[3:0]=1010,G[1]=0,以G[1]为选择器的输入端的“0”输入端是V[7:4],该选择器的输出端经过延时单元后得V[7:4]=1000,G[2]=1,以G[2]为四位二选一多路选择器的“1”输入端是out[3:0]与V[7:4]按位异或结果,该选择器的输出端经过延时单元后得V[11:8]=1111,G[3]=0,以G[3]为四位二选一多路选择器的“0”输入端是V[15:12],则V[15:12]=0000,则V[15:0]=0000_1111_1000_1010;第四个时钟的输入信号为in[3:0]=1010,输入编码模块的输出分别为out[0]=in[0]^in[1]^in[2]^in[3]=0、out[1]=in[1]^in[3]=0、out[2]=in[2]^in[3]=1、out[3]=in[3]=1,生成矩阵模块的输出G[0]=1、G[1]=G[0]^G[1]=1、G[2]=G[1]^G[2]=1、G[3]=G[2]^G[3]=1,在乘法器模块中,由于G[0]=1,以G[0]为选择器的输入端的“1”输入端是out[3:0]与V[3:0]按位异或的结果,该选择器的输出端经过延时单元后得V[3:0]=0110,G[1]=1,以G[1]为选择器的输入端的“1”输入端是out[3:0]与V[7:4]按位异或的结果,该选择器的输出端经过延时单元后得V[7:4]=0100,G[2]=1,以G[2]为四位二选一多路选择器的“1”输入端是out[3:0]与V[11:8]按位异或的结果,该选择器的输出端经过延时单元后得V[11:8]=0011,G[3]=1,以G[3]为四位二选一多路选择器的“1”输入端是out[3:0]与V[15:12]按位异或,则V[15:12]=1100,则V[15:0]=1100_0011_0100_0110。
[0068] 实施例三:
[0069] 需要说明的是,虽然举例N=16、K=4,但不是对N=16、K=4的限制,如果N=4、K=2,N=8、K=2,N=8、K=4,N=32、K=2,N=32、K=8……依然采用相似原理也应在本发明的保护范畴内。
[0070] 需要说明的是,图2和图5中的 表示异或运算。
[0071] 当然,上述内容仅为本发明的较佳实施例,不能被认为用于限定对本发明的实施例范围。本发明也并不仅限于上述举例,本技术领域的普通技术人员在本发明的实质范围内所做出的均等变化与改进等,均应归属于本发明的专利涵盖范围内。明也并不仅限于上述举例,本技术领域的普通技术人员在发明的实质范围内所做出的均等变化与改进等,均应归属于发明的专利涵盖范围内。