解码方法、装置、电子设备和存储介质与流程

文档序号:31599312发布日期:2022-09-21 08:12阅读:74来源:国知局
解码方法、装置、电子设备和存储介质与流程

1.本发明涉及解码技术领域,尤其涉及一种解码方法、装置、电子设备和存储介质。


背景技术:

2.在nb-iot的数字基带处理中,turbo码是通常用于无线数据传输的一种接近香农极限的纠错编码方案,在nb-iot应用场景中,对于功耗的要求比较严格,但在传统的编译码中,运算量大,计算过程复杂,存储量大,从而导致turbo解码器的功耗高。


技术实现要素:

3.本发明提供一种解码方法、装置、电子设备和存储介质,用以解决turbo解码器功耗高的问题,通过合并解码器中状态度量的计算,减少计算单元的使用,降低功耗。
4.本发明提供一种解码方法,包括:根据解码器在第一时刻的前向状态度量以及在第二时刻的分支度量,确定所述解码器在所述第二时刻的前向状态度量;根据所述解码器在第三时刻的后向状态度量和分支度量,确定所述解码器在所述第二时刻的后向状态度量;根据所述第二时刻的前向状态度量和所述后向状态度量确定所述解码器的译码电路,并根据所述译码电路进行译码。
5.在一个实施例中,所述根据解码器在第一时刻的前向状态度量以及在第二时刻的分支度量,确定所述解码器在所述第二时刻的前向状态度量,包括:确定所述解码器在所述第一时刻中第一状态的前向状态度量和第二状态的前向状态度量,以及在所述第二时刻中第一状态的分支度量和第二状态的分支度量;根据所述解码器在所述第一时刻中第一状态的前向状态度量和第二状态的前向状态度量,以及在所述第二时刻中第一状态的分支度量和第二状态的分支度量,确定所述解码器在第二时刻的前向状态度量。
6.在一个实施例中,所述根据所述解码器在所述第一时刻中第一状态的前向状态度量和第二状态的前向状态度量,以及在所述第二时刻中第一状态的分支度量和第二状态的分支度量,确定所述解码器在第二时刻的前向状态度量,包括:确定所述解码器在所述第一时刻中第一状态的前向状态度量和在所述第二时刻中第一状态的分支度量的第一乘积,以及所述解码器在所述第一时刻中第二状态的前向状态度量和在所述第二时刻中第二状态的分支度量的第二乘积;根据所述第一乘积与所述第二乘积,确定所述解码器在所述第二时刻的前向状态度量。
7.在一个实施例中,所述根据所述解码器在第三时刻的后向状态度量和分支度量,确定所述解码器在所述第二时刻的后向状态度量,包括:确定所述解码器在所述第三时刻中第三状态的后向状态度量和分支度量,以及第
四状态的后向状态度量和分支度量;根据所述第三状态的后向状态度量和分支度量以及所述第四状态的后向状态度量和分支度量,确定所述解码器在所述第二时刻的后向状态度量。
8.在一个实施例中,所述根据所述第三状态的后向状态度量和分支度量以及所述第四状态的后向状态度量和分支度量,确定所述解码器在所述第二时刻的后向状态度量,包括:确定第三状态的后向状态度量和分支度量的第三乘积,以及所述第四状态的后向状态度量和分支度量的第四乘积;根据所述第三乘积与所述第四乘积,确定所述解码器在所述第二时刻的后向状态度量。
9.在一个实施例中,所述根据所述第二时刻的前向状态度量和所述后向状态度量确定所述解码器的译码电路,包括:根据所述第二时刻的前向状态度量和所述后向状态度量,确定加法器和选择器的数量以及连接关系;根据所述加法器和所述选择器的数量以及连接关系,确定所述解码器的译码电路。
10.在一个实施例中,所述根据解码器在第一时刻的前向状态度量以及在第二时刻的分支度量,确定所述解码器在所述第二时刻的前向状态度量之前,包括:根据所述解码器的前向状态度量和后向状态度量的递推计算,确定所述前向状态度量和所述后向状态度量的递推关系。
11.本发明还提供一种解码装置,包括:第一确定模块,用于根据解码器在第一时刻的前向状态度量以及在第二时刻的分支度量,确定所述解码器在所述第二时刻的前向状态度量;第二确定模块,用于根据所述解码器在第三时刻的后向状态度量和分支度量,确定所述解码器在所述第二时刻的后向状态度量;译码模块,用于根据所述第二时刻的前向状态度量和所述后向状态度量确定所述解码器的译码电路,并根据所述译码电路进行译码。
12.本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述解码方法。
13.本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述解码方法。
14.本发明提供的解码方法、装置、电子设备和存储介质,通过根据解码器在第一时刻的前向状态度量以及在第二时刻的分支度量,确定解码器在第二时刻的前向状态度量;根据解码器在第三时刻的后向状态度量和分支度量,确定解码器在第二时刻的后向状态度量;根据第二时刻的前向状态度量和后向状态度量确定解码器的译码电路,并根据译码电路进行译码。本发明实施例在状态度量计算的过程中,经过对状态度量计算共性的分析,合并状态度量的计算,在解码结构上进行改进,能够减少计算单元的使用,从而降低整体译码的功耗。
附图说明
15.为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
16.图1是本发明提供的解码方法的流程示意图之一;图2是本发明提供的解码方法的流程示意图之二;图3是本发明提供的解码方法的流程示意图之三;图4是本发明提供的turbo解码器的网格图边的示意图;图5是本发明提供的turbo解码器中合并状态度量计算的电路示意图;图6是本发明提供的解码装置的结构示意图;图7是本发明提供的电子设备的结构示意图。
具体实施方式
17.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
18.下面结合图1-图7描述本发明的解码方法、装置、电子设备和存储介质。
19.具体地,本发明提供一种解码方法,参照图1,图1是本发明提供的解码方法的流程示意图之一。
20.本发明实施例提供了解码方法的实施例,需要说明的是,虽然在流程图中示出了逻辑顺序,但是在某些数据下,可以以不同于此处的顺序完成所示出或描述的步骤。
21.本发明实施例提供的解码方法,包括:步骤s10,根据解码器在第一时刻的前向状态度量以及在第二时刻的分支度量,确定所述解码器在所述第二时刻的前向状态度量;需要说明的是,在传统的编译码中,运算量大,计算过程复杂,存储量大,导致turbo解码器的功耗大,而turbo码解码的计算复杂度主要体现在单个算法块中,通过寻找前向状态度量以及后向状态度量计算的递推关系,可以得出前向状态度量和后向状态度量的计算具有相似性,因此可以合并解码器中状态度量的计算,从而减少计算单元的使用,降低功耗。
22.首先定义turbo解码器中网格中的边概念,也称为分支,如图4所示,其中边的起始状态和终止状态分别为和;输入信息符号为,码字符号为,时间索引为。可见,在k时刻,输入信息比特和起始状态唯一确定了输出码字、结束状态以及网格图中的边,其中,。
23.需要说明的是,本发明实施例采用max-log-map译码算法进行译码,其中,max-log-map算法是对map算法的进一步简化,与 log-map算法相比,使用了max()函数来拟等于max*()函数,去除了查找数据表的流程,进一步简化了运算过程,减少译码延时,降低复
杂度和所需的存储空间。
24.根据max-log-map译码算法可知,利用k-1时刻计算得到的前向递推值和当前k时刻确定的分支度量值来计算当前k时刻的前向递推值,以及利用k+1时刻的分支度量值和k+1时刻的后向递推值来计算当前k时刻的后向递推值,其中,前向递推值是指前向状态度量,后向递推值是指后向状态度量,公式如下所示:当k=0时刻,前向状态度量和后向状态度量计算如公式(1)和公式(2)所示。
[0025]25.当时刻,按照max-log-map译码算法可知,前向状态度量和后向状态度量计算如公式(3)和公式(4)所示。
[0026]026]
其中,在公式(3)和公式(4)中:为编码器输出的校验位;为编码输出的信息位;为接收的序列时刻;为编码器状态,其中,的取值与turbo解码器结构的寄存器个数有关,假设d=3,则。
[0027]
基于上述内容,容易得出接收到的编码信息位0或1分别对应8种状态的前向递推值和8种状态的后向递推值,那么求当前k时刻的前向递推值和后向递推值就是比较信息位0或1的转移概率值,求出最大值。其中,公式(5)和公式(6)列出了一个四状态前向状态度量及后向状态度量计算的例子,八状态的模块结构的复杂度是其两倍,状态度量模块采用了反馈迭代结构,将运算得到的新状态度量值反馈到输入端,以参与下次的运算。
[0028]
其中,各个状态的递推值由分量编码器的网格图中状态转移关系决定,本系统的分量编码器的rsc分量码的生成函数矩阵为:基于解码器的前向状态度量和后向状态度量的递推计算,确定前向状态度量和后向状态度量的递推关系,例如,由公式(5)和公式(6)所知,前向状态度量和后向状态度量的递推计算具有相似性,为了减少前向状态度量和后向状态度量分别计算的次数,可以确定前向状态度量和后向状态度量递推关系,然后,基于该递推关系进行合并状态度量计算,基于此,可以减少turbo解码器计算单元的产生,降低功耗。
[0029]
具体地,根据解码器在第一时刻的前向状态度量以及在第二时刻的分支度量,确定解码器在第二时刻的前向状态度量,例如,确定k-1时刻(即第一时刻)的前向状态度量和,其中,为0状态时的前向状态度量,为1状态时的前向状态度量,指的是0状态,指的是1状态。同时,确定k时刻(即第二时刻)的分支度量和,其中,为0状态时的分支度量,为1状态时的分支度量。采用k-1时刻的前向状态度量和和k时刻的分支度量和共同递推k时刻的前向状态度量。
[0030]
步骤s20,根据所述解码器在第三时刻的后向状态度量和分支度量,确定所述解码器在所述第二时刻的后向状态度量;具体地,根据解码器在第三时刻的后向状态度量和分支度量,确定解码器在第二时刻的后向状态度量,例如,确定k+1时刻(即第三时刻)的后向状态度量和,以及分支度量和,其中,为0状态时的后向状态度量,为4状态时的后向状态度量,为0状态时的分支度量,为4状态时的分支度量。采用k+1时刻的后向状态度量和,以及分支度量和共同递推k时刻的后向状态度量。
[0031]
步骤s30,根据所述第二时刻的前向状态度量和所述后向状态度量确定所述解码器的译码电路,并根据所述译码电路进行译码。
[0032]
需要说明的是,map译码算法中,含有大量的指数运算和乘法运算,导致译码复杂度较高,硬件实现难度大,本发明实施例通过对译码器的输入输出计算过程转化为对数形式,把乘法运算转换为加法运算,避免复杂的指数运算。
[0033]
具体地,根据第二时刻的前向状态度量和后向状态度量,确定加法器和选择器的数量以及连接关系,然后根据加法器和选择器的数量以及连接关系,确定解码器的译码电
路,最后根据译码电路进行译码。例如,参考图5,该译码电路是一个四状态前向递推硬件实现结构图,后向递推同理,状态度量模块计算采用反馈迭代结构,将运算得到的新的状态度量值反馈到输入端,以便参与下次的递推运算,前后向递推值是turbo译码迭代过程中两个重要的中间变量,由图5中电路结构可以看出,递推值的计算是将对应的分支度量值以及前一时刻的递推值通过加法器(图中带“+”的组件为加法器)进行相加,并通过选择器(图中带“max”的组件为选择器)进行比较,从而计算当前时刻的递推值,在状态度量计算的过程中,经过对状态度量计算共性的分析,合并状态度量的计算,在解码结构上进行改进,能够减少计算单元的使用,从而降低整体译码的功耗。
[0034]
本发明实施例提供的解码方法,通过根据解码器在第一时刻的前向状态度量以及在第二时刻的分支度量,确定解码器在第二时刻的前向状态度量;根据解码器在第三时刻的后向状态度量和分支度量,确定解码器在第二时刻的后向状态度量;根据第二时刻的前向状态度量和后向状态度量确定解码器的译码电路,并根据译码电路进行译码。本发明实施例在状态度量计算的过程中,经过对状态度量计算共性的分析,合并状态度量的计算,在解码结构上进行改进,能够减少计算单元的使用,从而降低整体译码的功耗。
[0035]
参考图2,图2是本发明提供的解码方法的流程示意图之二。在本发明实施例中,所述根据解码器在第一时刻的前向状态度量以及在第二时刻的分支度量,确定所述解码器在所述第二时刻的前向状态度量,包括:步骤s11,确定所述解码器在所述第一时刻中第一状态的前向状态度量和第二状态的前向状态度量,以及在所述第二时刻中第一状态的分支度量和第二状态的分支度量;步骤s12,根据所述解码器在所述第一时刻中第一状态的前向状态度量和第二状态的前向状态度量,以及在所述第二时刻中第一状态的分支度量和第二状态的分支度量,确定所述解码器在第二时刻的前向状态度量。
[0036]
确定解码器在第一时刻中第一状态的前向状态度量和第二状态的前向状态度量,以及在第二时刻中第一状态的分支度量和第二状态的分支度量,例如,确定turbo解码器在k-1时刻(即第一时刻)的前向状态度量和,其中,为0状态时的前向状态度量,为1状态时的前向状态度量,可以理解的是,表示turbo解码器的状态,指的是k状态,k可以理解为任意状态时刻,指的是0状态,指的是1状态。同时,确定turbo解码器在k时刻(即第二时刻)的分支度量和,其中,为0状态时的分支度量,为1状态时的分支度量。采用k-1时刻的前向状态度量和和k时刻的分支度量和共同递推k时刻的前向状态度量。
[0037]
具体地,确定解码器在第一时刻中第一状态的前向状态度量和在第二时刻中第一状态的分支度量的第一乘积,以及解码器在第一时刻中第二状态的前向状态度量和在第二时刻中第二状态的分支度量的第二乘积,然后根据第一乘积与第二乘积,确定解码器在第二时刻的前向状态度量,其中,前向状态度量递推公式如下所示:
本发明实施例通过采用k-1时刻的前向状态度量和k时刻的分支度量共同递推k时刻的前向状态度量,基于此,通过合并状态度量的计算,能够减少计算单元的使用,从而降低整体译码的功耗。
[0038]
参考图3,图3是本发明提供的解码方法的流程示意图之三。在本发明实施例中,所述根据所述解码器在第三时刻的后向状态度量和分支度量,确定所述解码器在所述第二时刻的后向状态度量,包括:步骤s21,确定所述解码器在所述第三时刻中第三状态的后向状态度量和分支度量,以及第四状态的后向状态度量和分支度量;步骤s22,根据所述第三状态的后向状态度量和分支度量以及所述第四状态的后向状态度量和分支度量,确定所述解码器在所述第二时刻的后向状态度量。
[0039]
确定解码器在第三时刻中第三状态的后向状态度量和分支度量,以及第四状态的后向状态度量和分支度量,例如,确定k+1时刻(即第三时刻)的后向状态度量和,以及分支度量和,其中,为0状态时的后向状态度量,为4状态时的后向状态度量,为0状态时的分支度量,为4状态时的分支度量。采用k+1时刻的后向状态度量和,以及分支度量和共同递推k时刻的后向状态度量。
[0040]
具体地,确定第三状态的后向状态度量和分支度量的第三乘积,以及第四状态的后向状态度量和分支度量的第四乘积,然后根据第三乘积与第四乘积,确定解码器在第二时刻的后向状态度量,其中,后向状态度量递推公式如下所示:本发明实施例通过采用k+1时刻的后向状态度量以及分支度量共同递推k时刻的后向状态度量,基于此,通过合并状态度量的计算,能够减少计算单元的使用,从而降低整体译码的功耗。
[0041]
下面对本发明实施例提供的解码装置进行描述,下文描述的解码装置与上文描述的解码方法可相互对应参照。
[0042]
参考图6,本发明实施例提供一种解码装置,该解码装置包括第一确定模块601、第二确定模块602和译码模块603,其中:所述第一确定模块601,用于根据解码器在第一时刻的前向状态度量以及在第二时刻的分支度量,确定所述解码器在所述第二时刻的前向状态度量;所述第二确定模块602,用于根据所述解码器在第三时刻的后向状态度量和分支度量,确定所述解码器在所述第二时刻的后向状态度量;
所述译码模块603,用于根据所述第二时刻的前向状态度量和所述后向状态度量确定所述解码器的译码电路,并根据所述译码电路进行译码。
[0043]
本发明实施例提供的解码装置,通过根据解码器在第一时刻的前向状态度量以及在第二时刻的分支度量,确定解码器在第二时刻的前向状态度量;根据解码器在第三时刻的后向状态度量和分支度量,确定解码器在第二时刻的后向状态度量;根据第二时刻的前向状态度量和后向状态度量确定解码器的译码电路,并根据译码电路进行译码。本发明实施例在状态度量计算的过程中,经过对状态度量计算共性的分析,合并状态度量的计算,在解码结构上进行改进,能够减少计算单元的使用,从而降低整体译码的功耗。
[0044]
在一个实施例中,所述第一确定模块601包括:确定所述解码器在所述第一时刻中第一状态的前向状态度量和第二状态的前向状态度量,以及在所述第二时刻中第一状态的分支度量和第二状态的分支度量;根据所述解码器在所述第一时刻中第一状态的前向状态度量和第二状态的前向状态度量,以及在所述第二时刻中第一状态的分支度量和第二状态的分支度量,确定所述解码器在第二时刻的前向状态度量。
[0045]
在一个实施例中,所述第一确定模块601包括:确定所述解码器在所述第一时刻中第一状态的前向状态度量和在所述第二时刻中第一状态的分支度量的第一乘积,以及所述解码器在所述第一时刻中第二状态的前向状态度量和在所述第二时刻中第二状态的分支度量的第二乘积;根据所述第一乘积与所述第二乘积,确定所述解码器在所述第二时刻的前向状态度量。
[0046]
在一个实施例中,所述第二确定模块602包括:确定所述解码器在所述第三时刻中第三状态的后向状态度量和分支度量,以及第四状态的后向状态度量和分支度量;根据所述第三状态的后向状态度量和分支度量以及所述第四状态的后向状态度量和分支度量,确定所述解码器在所述第二时刻的后向状态度量。
[0047]
在一个实施例中,所述第二确定模块602包括:确定第三状态的后向状态度量和分支度量的第三乘积,以及所述第四状态的后向状态度量和分支度量的第四乘积;根据所述第三乘积与所述第四乘积,确定所述解码器在所述第二时刻的后向状态度量。
[0048]
在一个实施例中,所述译码模块603包括:根据所述第二时刻的前向状态度量和所述后向状态度量,确定加法器和选择器的数量以及连接关系;根据所述加法器和所述选择器的数量以及连接关系,确定所述解码器的译码电路。
[0049]
在一个实施例中,所述第一确定模块601包括:根据所述解码器的前向状态度量和后向状态度量的递推计算,确定所述前向状态度量和所述后向状态度量的递推关系。
[0050]
图7示例了一种电子设备的实体结构示意图,如图7所示,该电子设备可以包括:处
理器(processor)710、通信接口(communications interface)720、存储器(memory)730和通信总线740,其中,处理器710,通信接口720,存储器730通过通信总线740完成相互间的通信。处理器710可以调用存储器730中的逻辑指令,以执行解码方法,该方法包括:根据解码器在第一时刻的前向状态度量以及在第二时刻的分支度量,确定所述解码器在所述第二时刻的前向状态度量;根据所述解码器在第三时刻的后向状态度量和分支度量,确定所述解码器在所述第二时刻的后向状态度量;根据所述第二时刻的前向状态度量和所述后向状态度量确定所述解码器的译码电路,并根据所述译码电路进行译码。
[0051]
此外,上述的存储器730中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
[0052]
另一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的解码方法,该方法包括:根据解码器在第一时刻的前向状态度量以及在第二时刻的分支度量,确定所述解码器在所述第二时刻的前向状态度量;根据所述解码器在第三时刻的后向状态度量和分支度量,确定所述解码器在所述第二时刻的后向状态度量;根据所述第二时刻的前向状态度量和所述后向状态度量确定所述解码器的译码电路,并根据所述译码电路进行译码。
[0053]
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
[0054]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
[0055]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;
而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1