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

Turbo编码方法和装置、电子设备和存储介质

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


Turbo编码方法和装置、电子设备和存储介质

技术领域

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

背景技术

无线通信相对有线通信而言,其数据传输的带宽资源有限,且传输信道环境较为恶劣。为提高数据传输效率,数据传输时通常需要对信道内的数据流进行编码,以降低误码率,进而增强信道可靠性。Turbo码在信道信噪比较低的高噪声环境下性能优越,还具有较强的抗衰落、抗干扰的能力。由于时变衰落信道以及干扰和噪声之类的原因,无线传输过程中无线信号的可靠性降低了。Turbo码将卷积码作为其成员码,并且引入了内交织器,以便降低相关性。Turbo码的性能理论上可以接近香农极限。

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

Turbo编码处理的方式有多种,Turbo编码器的传统实现结构时采用单比特编码方式,一个时钟周期处理一个输入bite。为提高通信系统的吞吐量,目前通常采用以逻辑资源换速度的并行turbo编码,对并行的系统比特流进行并行编码,每一路并行使用各自的逻辑资源,资源成倍增加。

例如,专利CN200910151557.4提供了一种对数据进行并行编码处理的装置,包括:第一并行编码器,用于对从第一路输入的M位输入数据进行并行编码处理;内交织器,用于对从平行于第一路的第二路输入的M位输入数据进行内交织处理;以及第二并行编码器,用于接收经内交织处理的数据,并对经内交织处理的数据进行并行编码处理,其中,M=2m,m是大于0小于13的整数,并且,所述输入数据的总位数能够被M整除。以上方法通过时间扩展,导出连续M个时刻的编码公式,同时并行计算这M个时刻的编码公式。速度提升依赖于实现结构的并行路径数量,仅比传统方法提升M倍,M最大取值26,但是该方法需要的逻辑资源成倍增加,功耗也相应增加,不利于实现。

发明内容

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

本发明提供一种Turbo编码方法,包括:

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

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

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

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

优选的是,所述的Turbo编码方法,其中,包括:分别对所述成员编码器的串行输出连续n个时刻的编码公式采用矩阵表示,其中,n为自然数,所述成员编码器的串行输出包括反馈部分的编码输出和正向部分的编码输出。

优选的是,所述的Turbo编码方法,其中,所述反馈部分的编码输出等于矩阵A

优选的是,所述的Turbo编码方法,其中,所述正向部分的编码输出等于正向部分生成矩阵乘以所述反馈部分的编码输出,得到矩阵B(

优选的是,所述的Turbo编码方法,其中,所述基于生成多项式的特点,将所述二维生成矩阵转化为若干个分成矩阵包括:将二维生成矩阵的前h列为初值计算部分H0

优选的是,所述的Turbo编码方法,其中,所述基于每个所述分成矩阵及其对应的预设查找表,对输入信息进行并行编码后输出之前还包括:将所述分成矩阵

优选的是,所述的Turbo编码方法,其中,通过查找表计算矩阵运算,对应各个矩阵的查找表为Tablel、Table2至

本发明提供了一种Turbo编码装置,其特征在于,包括:

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

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

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

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

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

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

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

附图说明

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

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

图2是本发明提供的Turbo编码装置的结构示意图;

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

具体实施方式

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

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

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

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

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

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

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

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

进一步的,该方法包括:分别对所述成员编码器的串行输出连续n个时刻的编码公式采用矩阵表示,其中,n为自然数,所述成员编码器的串行输出包括反馈部分的编码输出和正向部分的编码输出。

所述反馈部分的编码输出等于矩阵A

所述正向部分的编码输出等于正向部分生成矩阵乘以所述反馈部分的编码输出,得到矩阵B

由矩阵B

根据上面所得到

所述基于生成多项式的特点,将所述二维生成矩阵转化为若干个分成矩阵包括:将二维生成矩阵的前h列为初值计算部分H0

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

通过查找表计算矩阵运算,对应各个矩阵的查找表为Table1、Table2至

具体的,Turbo编码器结构如下式1-1Turbo编码器,两个相同的成员编码器和一个交织器组成,其中成员编码器如下式1-2:

设寄存器中初始值分别为D

首先,我们对下式1-3所示的内容进行讨论,,设该部分输出为m

m

m

m

m

m

...................... .........................

m

由简单的矩阵乘法易得:

由(1-3)易得:

由于A是下三角矩阵且对角线元素均不为零,所以A矩阵可逆。故有:

[D

(1-5)中A只与上述结构有关,故(1-5)表明当上述结构已知时,上述结构可并行处理任意比特,输出为mk序列。

然后我们对下式1-4所示的部分进行讨论,输入为m

d

d

d

d

d

..............................

d

由简单的矩阵乘法易得:

故当上述部分结构已知时,上述部分可实现并行处理任意比特。综上所述,可得出结论:Turbo编码器的结构已知,可实现并行处理任意比特。

将(1-7)矩阵公式增加冗余部分可得公式(1-8):

并行度为60时,(1-5)中n=59,(1-5)可以写为:

[D

将(1-9)代入(7-8)可得(1-10)如下:

其中H1~H16、R1~R8均为32×4的矩阵。0为32×4的全零矩阵。

将[D

注意到(1-11)最后的形式为F1

除此之外,注意到(1-11)第一个矩阵相乘并不满足形式F

设M1′

使用M1’分别与[0 0 0 0]T、[0 0 0 1]T、[0 0 1 0]T、[0 0 1 1]T、[0 1 0 0]T、······、[1 1 1 1]T这16个线性无关列向量相乘并将结果转置顺序排列便可获得Table24。

使用M2’分别与[0 0 0 0]T、[0 0 0 1]T、[0 0 1 0]T、[0 0 1 1]T、[0 1 0 0]T、······、[1 1 1 1]T这16个线性无关列向量相乘并将结果转置顺序排列便可获得Table25。

这里需要指出:上述对M1和M2的操作等效于将

将这25张表配置给25个16×32的SRAM,应用时将输入的4bit状态信息作为SRAM地址查询便可获得设计输出,每个SRAM都等效于完成了(1-11)中的一个矩阵乘法,伽罗瓦域运算的相加与异或等效,故只需将(1-11)中的相加项映射到相应的SRAM结果设计相应异或便可完成(1-11)的运算。计算过程见上式1-5,

MUX:在开始时选择初始值(标准中定义初始值固定为0)。否则,它将选择TXOR0模块的输出(最后四位比特)。

TXOR1:将输入的9个32比特数据进行异或,并将异或结果(32bit)输出

TXOR0:将输入的16个32比特数据进行异或,并将异或结果(32bit)的前28bit输出,后4bit输入MUX作为下次循环的初始值;

注:上式中每个LUT中有划分了8个区域用于表示8个SRAM,每个区域表有T1、......、T25表示该SRAM装配了Table1、......、Table25。“空”或者空白表示该SRAM没有装配任何表(此算法编码过程中不会使用到该SRAM区域)。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

相关技术
  • Turbo编码方法和装置、电子设备和存储介质
  • 视频编码方法、装置、存储介质及电子设备
技术分类

06120112896047