掌桥专利:专业的专利平台
掌桥专利
首页

咬尾卷积编码方法和装置、电子设备和存储介质

文献发布时间:2023-06-19 11:21:00


咬尾卷积编码方法和装置、电子设备和存储介质

技术领域

本发明涉及通信技术领域,尤其涉及一种咬尾卷积编码方法及系统。

背景技术

咬尾卷积编码是一种特殊的卷积编码,通过将编码器的移位寄存器的初始值设置为输入数据流的尾比特值,使得移位寄存器的初始和最终状态相同。和普通的卷积编码相比,咬尾卷积编码克服了编码时的码率损失,并且适合迭代译码。咬尾卷积编码用于5G通信中广播信道和一些控制信息的编码。

在咬尾卷积编码过程中,处理的方式多种,通用的处理方法是输入数据以比特流的形式,逐个比特输入,按照卷积编码器设定的处理规则输出。目前已有的改进的处理方法虽然采用局部并行方式,但每条并行路径中仍是采用逐个比特输入输出的通用处理方法,提升速度有限,所以存在着编码处理速度较低的问题。

在咬尾卷积码的编码过程中,对输入信息比特进行分组编码,每个码组的编码输出比特不仅与该分组的信息比特有关,还与前面时刻的其他分组的信息比特有关。所以通用的处理方法是输入数据以比特流的形式,逐个比特输入,按照卷积编码器设定的处理规则输出。

申请号为CN201910477226.3的“咬尾卷积编码处理方法、装置和通信设备”专利涉及一种咬尾卷积编码处理方法、装置和通信设备,其中,咬尾卷积编码处理方法包括:获取输入数据的待编码单元;待编码单元包括32个比特;根据寄存器初值变量和待编码单元进行编码初始化处理,得到输入字变量;分别根据各生成多项式系数映射的字变量以及输入字变量,对待编码单元的各比特进行咬尾卷积编码,得到待编码单元对应的编码数据;任一字变量均包括相应生成多项式系数映射的四个相同的字节变量。通过在咬尾卷积编码处理中,使用由各路生成多项式系数映射的字节变量,分别重复映射后展开形成的各字变量,使得输入数据由字节编码处理,转化为字编码处理。

以上方法的基本运算单元是通过生成多项式,逐个比特移位计算实现。速度提升依赖于实现结构的并行路径数量,仅比通用方法提升4N倍,但是N越大,所需逻辑资源越多,成倍增加,功耗也越大,不利于实现。

发明内容

本发明提供一种咬尾卷积编码方法和装置、电子设备和存储介质,用以解决现有技术中存在的技术缺陷。

本发明提供一种咬尾卷积编码方法,包括:

将咬尾卷积编码器的串行输出按bit流水的一维进行编码,并提取时刻信息,基于所述时刻信息,将所述咬尾卷积编码器的串行输出转化成咬尾卷积编码器的二维生成矩阵;

基于生成多项式的特点,将所述二维生成矩阵转化为若干个分成矩阵;

基于每个所述分成矩阵及其对应的预设查找表,对输入码矩阵进行并行编码后输出;

所述预设查找表为对应所述分成矩阵的所有相匹配的输入向量和输出向量所列的表。

优选的是,所述的咬尾卷积编码方法,其中,所述基于所述时刻信息,将所述咬尾卷积编码器的串行输出转化成咬尾卷积编码器的二维生成矩阵之后包括输出编码矩阵,所述输出编码矩阵包括:把从k时刻开始到k+m-1时刻的连续m个时刻的编码公式用矩阵表示,即编码输出d

优选的是,所述的咬尾卷积编码方法,其中,所述输出编码矩阵之后还包括扩展编码矩阵,所述扩展编码矩阵包括:将所述二维输出矩阵的后面加n行d

优选的是,所述的咬尾卷积编码方法,其中,所述扩展编码矩阵之后还包括对所述二维扩展矩阵进行编码分块,所述编码分块具体包括:所述扩展编码矩阵的第n列的前n+1行依次是[g

优选的是,所述的咬尾卷积编码方法,其中,所述编码分块之后还包括对所述二维分块矩阵进行分组,具体包括:将所述二维分块矩阵的前n列分成

优选的是,所述的咬尾卷积编码方法,其中,所述r取值在n/2到n之间,所述二维生成矩阵拆分的第一个矩阵是一个r′行r′列的上三角阵G′,和m+n-r′行r′列的零阵组成;第二个矩阵是n行r列的矩阵G″和m行r列零阵组成;后面m/r个矩阵均是n+r行r列矩阵G″′和上下拼接i倍r行r列的零阵组成,其中G″′的第1列的前n+1行依次是[g

优选的是,所述的咬尾卷积编码方法,其中,所述基于生成多项式的特点,将所述二维生成矩阵转化为若干个分成矩阵具体包括:将所述m行m+n列的二维生成矩阵,转化成2+m/r个分成矩阵,其中,第一个分成矩阵是r′行r′列矩阵G′乘以r′行1列的输入码矩阵;第二个分成矩阵是n行r列矩阵G″乘以r行1列的输入码矩阵;其余的m/r个矩阵运算都是n+r行r列矩阵G″′乘以r行1列的输入码矩阵。

本发明提供了一种咬尾卷积编码装置,包括:

二维生成矩阵确定模块,用于将咬尾卷积编码器的串行输出按bit流水的一维进行编码,并提取时刻信息,基于所述时刻信息,将所述咬尾卷积编码器的串行输出转化成咬尾卷积编码器的二维生成矩阵;

分成矩阵确定模块,用于基于生成多项式的特点,将所述二维生成矩阵转化为若干个分成矩阵;

并行编码模块,用于基于每个所述分成矩阵及其对应的预设查找表,对输入码矩阵进行并行编码后输出,所述预设查找表为对应所述分成矩阵的所有相匹配的输入向量和输出向量所列的表。

本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述咬尾卷积编码方法的步骤。

本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述咬尾卷积编码方法的步骤。

本发明把咬尾卷积编码器串行按bit流水的一维计算,提取时刻信息后,转化成二维矩阵运算;同时根据生成多项式的特点,把大矩阵转化为很少的几个小矩阵;最后通过查找表形式快速并行进行咬尾卷积编码;同时考虑到硬件实现中要尽量减少逻辑和存储资源,根据生成矩阵的特性,用多个小规模查找表来实现大规模并行编码。经过有限且很少的步骤同时得出连续多个输入信息的编码结果。大大缩短了编码时间,用存储资源换取编码速度的增大。

附图说明

为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明提供的咬尾卷积编码方法的流程示意图之一;

图2是本发明提供的咬尾卷积编码装置的结构示意图;

图3是本发明提供的电子设备的结构示意图;

图4是本发明提供的实施例1的长度为n的卷积编码器的示意图;

图5是本发明提供的实施例2的3GPP TS 36.212中定义的卷积编码器的示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本发明实施例公开了一种咬尾卷积编码方法,参见图1,包括:

S1:将咬尾卷积编码器的串行输出按bit流水的一维进行编码,并提取时刻信息,基于所述时刻信息,将所述咬尾卷积编码器的串行输出转化成咬尾卷积编码器的二维生成矩阵;

S2:基于生成多项式的特点,将所述二维生成矩阵转化为若干个分成矩阵;

S3:基于每个所述分成矩阵及其对应的预设查找表,对输入码矩阵进行并行编码后输出;

所述预设查找表为对应所述分成矩阵的所有相匹配的输入向量和输出向量所列的表。

其中,已知一个二维矩阵,这个二位矩阵乘以一维向量(输入向量),一维向量的元素个数就是二维矩阵的列数,得到结果是元素个数为二位矩阵行数的一维向量(输出向量)。每个输入向量,对应一个结果输出向量,把所有匹配的输入向量和输出向量列成一个表,这个表就是预设查找表,把输入向量作为ram地址,输出向量作为ram的存储内容,预设查找表即可存储在ram里。

本发明把咬尾卷积编码器串行按bit流水的一维计算,提取时刻信息后,转化成二维矩阵运算;同时根据生成多项式的特点,把大矩阵转化为很少的几个小矩阵;最后通过查找表形式快速并行进行咬尾卷积编码;同时考虑到硬件实现中要尽量减少逻辑和存储资源,根据生成矩阵的特性,用多个小规模查找表来实现大规模并行编码。经过有限且很少的步骤同时得出连续多个输入信息的编码结果。大大缩短了编码时间,用存储资源换取编码速度的增大。

所述基于所述时刻信息,将所述咬尾卷积编码器的串行输出转化成咬尾卷积编码器的二维生成矩阵之后包括输出编码矩阵,所述输出编码矩阵包括:把从k时刻开始到k+m-1时刻的连续m个时刻的编码公式用矩阵表示,即编码输出d

为说明方便,对矩阵进行扩展,所述输出编码矩阵之后还包括扩展编码矩阵,所述扩展编码矩阵包括:将所述二维输出矩阵的后面加n行d

所述扩展编码矩阵之后还包括对所述二维扩展矩阵进行编码分块,所述编码分块具体包括:所述扩展编码矩阵的第n列的前n+1行依次是[g

所述编码分块之后还包括对所述二维分块矩阵进行分组,具体包括:按照输入码矩阵的行分块规则对二维生成矩阵G的列分组,将所述二维分块矩阵的前n列分成

因生成多项式的阶数n通常是很小的数,同时也为简化说明,所述r取值在n/2到n之间,所述二维生成矩阵拆分的第一个矩阵是一个r′行r′列的上三角阵G′,和m+n-r′行r′列的零阵组成;第二个矩阵是n行r列的矩阵G″和m行r列零阵组成;后面m/r个矩阵均是n+r行r列矩阵G″′和上下拼接i倍r行r列的零阵组成,其中G″′的第1列的前n+1行依次是[g

所述基于生成多项式的特点,将所述二维生成矩阵转化为若干个分成矩阵具体包括:将所述m行m+n列的二维生成矩阵,转化成2+m/r个分成矩阵,其中,第一个分成矩阵是r′行r′列矩阵G′乘以r′行1列的输入码矩阵;第二个分成矩阵是n行r列矩阵G″乘以r行1列的输入码矩阵;其余的m/r个矩阵运算都是n+r行r列矩阵G″′乘以r行1列的输入码矩阵。把这2+m/r个小矩阵运算由2+m/r个查找表实现,对应的查找表为T1,T2,T3_1,…,T3_m。

T1:输入r′比特,输出r′比特;

T2:输入r比特,输出n比特;

T3_0,…,T3_m-1是相同的m个查找表,输入r比特,输出n+r比特。

所以把全部2+m/r个对应结果错位后做伽罗瓦域相加就是最后的编码结果,由于对于每一个d

当i小于n-r时,d

当i大于等于n-r,同时i小于r时,d

当i大于等于r,同时i小于n时,d

当i大于等于n+j*r,同时i小于(j+2)*n时,d

当i大于等于(j+2)*n,同时i小于n+(j+1)*r时,d

具体的,本发明还提供了以下三个实施例。

如图4所示,实施例1为长度为n的卷积编码器结构:

其中k时刻C

d

同理k+1时刻输出为:

d

同理k+2时刻输出为:

d

同理k+m-1时刻输出为:d

由矩阵相乘原理可将(5-1)(5-2)(5-3)(5-4)写为(5-5)的形式:

设:

为说明方便,将公式左边的矩阵尾部增加n个冗余码d

m:并行处理的码长;

n:生成多项式阶数;

r:输入码单元的码长;

所以公式(5-6)可拆分成多个小矩阵的乘法和,见(5-6-1)、(5-6-2)、(5-6-3)、(5-6-4)、(5-6-5)。

设:

公式(5-6)表示为公式(5-7):

通常生成多项式阶数n远小于m,且n小于2r的数,这样公式(5-7)可写为公式(5-8):

从公式(5-8)可以看出,转换后只需计算如下3个矩阵乘法:

把矩阵的所有可能结果存成一个查找表,那么矩阵运算就变成了根据输入信息查找结果的过程,由上面的3个矩阵得到各自的查找表T1,T2,T3。

矩阵乘法(5-8-1)的计算对应查找表T1,输入是(n-(s-1)*r)比特,输出是也是(n-(s-1)*r)比特;

矩阵乘法(5-8-2)的计算查找表T2,输入是r比特,输出是n比特;

矩阵乘法(5-8-3)的计算查找表T3,输入是r比特,输出是n+r比特;

可见公式(5-8)右边t+2项矩阵乘法可通过查找表T1,T2,T3的得到t+1组结果,然后对应行相加得到最终结果d

公式(5-8)需要同时使用t个查找表T3,来完成对d

那么由公式(5-8)得到公式(5-9):

根据公式(5-9)并行得到各个编码后比特的d

实施例2提供了3GPP TS 36.212中定义的卷积编码器,128并行输入,384并行输出。

以3GPP TS 36.212中定义的卷积编码器为例,如图5,

36.212中规定编码器的移位寄存器的初始值应设置为与输入流中最后6个信息位相对应的值,以使移位寄存器的初始状态和最终状态相同。

易得

以4bit查一次表时,即r=4时,G′,G″,G分别为:

设m=128,即输入为128bit。把m,n,r,t的值带入到公式(5-8)得到公式(7-3):

同样由公式(5-9)得到公式(7-4):

T1:输入2比特,输出2比特;

T2:输入4比特/输出6比特;

T3:输入4比特/输出10比特;

NT1:输入2bit,输出6bit(前2bit为

NT2:输入4bit,输出18bit(前6bit为

NT3:输入4bit,输出30bit(前10bit为

实施例3提供了一种输入128bit,输出384bit的卷积码的并行查找表方式。

初值INT_0中配置查找表NT1;

初值INT_1中配置查找表NT2;

MUX用来在开始时选择初始值。否则,它将选择前一组128bit对应的冗余输出,即公式(7-3)的

LUT0-3各包含8个SRAM,每个SRAM配置16个30位关键字。32个SRAM都配置查找表NT3。

卷积码XOR数据通路实现公式(7-4)中的伽罗瓦域运算。

由于所提出的架构每个周期处理128位数据,在某些情况下,最后一个块可能包含小于128位的数据,因此有必要考虑如何加速最后一个输入块。由于卷积码中当前时刻输入只对该时刻以及后6个时刻造成影响,而不对前面时刻造成任何影响。所以如果最后一个块包含小于128位的数据,则可以通过向最后一个块补n个零补足128位,然后在输出时刻删除最后的n位来解决。

下面对本发明提供的咬尾卷积编码装置进行描述,下文描述的咬尾卷积编码装置与上文描述的咬尾卷积编码方法可相互对应参照。

本发明实施例公开了一种咬尾卷积编码装置,参见图2,包括:

二维生成矩阵确定模块10,用于将咬尾卷积编码器的串行输出按bit流水的一维进行编码,并提取时刻信息,基于所述时刻信息,将所述咬尾卷积编码器的串行输出转化成咬尾卷积编码器的二维生成矩阵;

分成矩阵确定模块20,用于基于生成多项式的特点,将所述二维生成矩阵转化为若干个分成矩阵;

并行编码模块30,用于基于每个所述分成矩阵及其对应的预设查找表,对输入码矩阵进行并行编码后输出,所述预设查找表为对应所述分成矩阵的所有相匹配的输入向量和输出向量所列的表。

图3示例了一种电子设备的实体结构示意图,该电子设备可以包括:处理器(processor)310、通信接口(Communications Interface)320、存储器(memory)330和通信总线340,其中,处理器310,通信接口320,存储器330通过通信总线340完成相互间的通信。处理器310可以调用存储器330中的逻辑指令,以执行一种咬尾卷积编码方法,该方法包括:

S1:将咬尾卷积编码器的串行输出按bit流水的一维进行编码,并提取时刻信息,基于所述时刻信息,将所述咬尾卷积编码器的串行输出转化成咬尾卷积编码器的二维生成矩阵;

S2:基于生成多项式的特点,将所述二维生成矩阵转化为若干个分成矩阵;

S3:基于每个所述分成矩阵及其对应的预设查找表,对输入信息进行并行编码后输出。

此外,上述的存储器330中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。

另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行一种咬尾卷积编码方法,该方法包括:

S1:将咬尾卷积编码器的串行输出按bit流水的一维进行编码,并提取时刻信息,基于所述时刻信息,将所述咬尾卷积编码器的串行输出转化成咬尾卷积编码器的二维生成矩阵;

S2:基于生成多项式的特点,将所述二维生成矩阵转化为若干个分成矩阵;

S3:基于每个所述分成矩阵及其对应的预设查找表,对输入码矩阵进行并行编码后输出。

又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行一种咬尾卷积编码方法,该方法包括:

S1:将咬尾卷积编码器的串行输出按bit流水的一维进行编码,并提取时刻信息,基于所述时刻信息,将所述咬尾卷积编码器的串行输出转化成咬尾卷积编码器的二维生成矩阵;

S2:基于生成多项式的特点,将所述二维生成矩阵转化为若干个分成矩阵;

S3:基于每个所述分成矩阵及其对应的预设查找表,对输入码矩阵进行并行编码后输出。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

相关技术
  • 咬尾卷积编码方法和装置、电子设备和存储介质
  • 咬尾卷积码的译码方法、装置及存储介质
技术分类

06120112896048