CN117792406A - 一种译码方法、终端、存储介质及程序产品 - Google Patents

一种译码方法、终端、存储介质及程序产品 Download PDF

Info

Publication number
CN117792406A
CN117792406A CN202410166235.1A CN202410166235A CN117792406A CN 117792406 A CN117792406 A CN 117792406A CN 202410166235 A CN202410166235 A CN 202410166235A CN 117792406 A CN117792406 A CN 117792406A
Authority
CN
China
Prior art keywords
result
decoding
minimum sum
communication data
correction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202410166235.1A
Other languages
English (en)
Other versions
CN117792406B (zh
Inventor
刘毅
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honor Device Co Ltd
Original Assignee
Honor Device Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Honor Device Co Ltd filed Critical Honor Device Co Ltd
Priority to CN202410166235.1A priority Critical patent/CN117792406B/zh
Publication of CN117792406A publication Critical patent/CN117792406A/zh
Application granted granted Critical
Publication of CN117792406B publication Critical patent/CN117792406B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Mobile Radio Communication Systems (AREA)

Abstract

本申请实施例提供了一种译码方法、终端、存储介质及程序产品,涉及移动通信技术领域,上述方法包括:接收终端发送的通信数据;采用最小和译码算法对所述通信数据进行译码,获得译码过程中各校验节点包括的各第一元素的更新结果;基于最小和运算与双曲运算之间的运算结果误差,矫正所述更新结果,得到矫正结果,其中,所述最小和运算为:最小和译码算法中用于获得校验节点的元素更新结果的运算,所述双曲运算为:置信度传播译码算法中用于获得校验节点的元素更新结果的运算;基于所述矫正结果,对所述通信数据进行译码,得到所述原始通信数据。应用本申请实施例提供的译码方案,能够提高终端的译码准确度。

Description

一种译码方法、终端、存储介质及程序产品
技术领域
本申请涉及移动通信领域,尤其地涉及一种译码方法、终端、存储介质及程序产品。
背景技术
现代移动通信中,为了提高通信数据传输的可靠性,发送通信数据的终端可以采用编码算法对原始通信数据进行编码,得到纠错码(Error Correcting Code,ECC),接收到纠错码的终端可以采用相应的译码算法对纠错码进行译码,基于译码结果检测并纠正原始通信数据在传输中出现的错误,从而能够较为准确的还原出原始通信数据。
例如,在语音通话场景下,用户A使用的终端1将拾音器采集的语音信号进行编码,得到纠错码,通过移动网络和基站的转发,用户B的终端2可以接收到纠错码,并对纠错码进行译码,基于译码结果还原出语音信号,进而可以基于上述语音信号还原出用户A的语音。
低密度校验码(Low Density Parity Check Code,LDPC)是目前常用的一种纠错码,最小和(Min-Sum)译码算法是LDPC的一种应用较为广泛的译码算法。
然而,为了降低译码过程中的计算复杂度,最小和译码算法中部分译码步骤涉及的运算是经过简化的近似运算,导致终端基于最小和译码算法进行译码时的译码准确度较低。
发明内容
有鉴于此,本申请提供一种译码方法、终端、存储介质及程序产品,以提高终端的译码准确度。
第一方面,本申请实施例提供了一种译码方法,所述方法包括:
接收终端发送的通信数据,所述通信数据包括:所述终端对原始通信数据进行编码后得到的低密度奇偶校验码LDPC;
采用最小和译码算法对所述通信数据进行译码,获得译码过程中各校验节点包括的各第一元素的更新结果,其中,所述更新结果通过对第一元素的取值进行更新得到,第一元素的初始取值基于所述LDPC码字的信道似然比确定;
基于最小和运算与双曲运算之间的运算结果误差,矫正所述更新结果,得到矫正结果,其中,所述最小和运算为:最小和译码算法中用于获得校验节点的元素更新结果的运算,所述双曲运算为:置信度传播译码算法中用于获得校验节点的元素更新结果的运算;
基于所述矫正结果,对所述通信数据进行译码,得到所述原始通信数据。
可以看出,得到第一元素的更新结果后,考虑了最小和运算与双曲运算之间的运算结果误差,基于上述运算结果误差对于更新结果进行了矫正,通过上述矫正,能够使得基于最小和运算的得到的更新结果趋近于基于双曲运算的得到的运算结果,从而减弱或者消除最小和运算相对于双曲之间的运算结果误差,使得矫正后得到的矫正结果相较于初始的更新结果准确度更高,进而提高了基于矫正结果进行译码的准确度。
再者,由于本申请实施例提供的译码方案是基于最小和运算进行译码的,而最小和运算是双曲运算的简化运算,计算复杂度较低,因此整个译码流程的效率较高。可见,本申请实施例提供的译码方案可以在保证较高的译码效率的同时,提高译码的准确度。
本申请的一个实施例中,所述采用最小和译码算法对所述通信数据进行译码,获得译码过程中各校验节点中包括的各第一元素的更新结果,包括:
针对每一校验节点中包括的每一第一元素,对中间结果和目标元素进行最小和运算,得到该第一元素的更新结果,其中,所述中间结果为:上一次最小和运算得到的运算结果,所述中间结果的初始值为:该校验节点中包括的第一个第二元素与第二个第二元素的最小和运算的运算结果,所述第二元素为:该校验节点中除该第一元素外的元素,所述目标元素为:位于上一参与最小和运算的第二元素之后的第二元素,所述第一元素和第二元素的取值不为预设的目标取值。
可见,这样可以将多元最小和运算拆解为多个二元最小和运算的嵌套,采用分而治之的方式提高了获得第一元素更新结果的效率。
本申请的一个实施例中,在所述基于所述矫正结果,对所述通信数据进行译码之前,还包括:
判断所述目标元素是否为校验节点中包括的最后一个第二元素;
若为是,执行所述基于所述矫正结果,对所述通信数据进行译码的步骤;
若为否,将所述中间结果更新为所述矫正结果,返回所述对中间结果和目标元素进行最小和运算,得到该第一元素的更新结果的步骤。
可见,这样在将多元最小和运算拆解为多个二元最小和运算的嵌套时,针对每一二元最小和运算的结果都进行了矫正,矫正后的结果再参与后续的二元最小和运算,这样细粒度的对每一二元最小和运算的结果都进行矫正,进而提高了最终得到的矫正结果的准确度。
本申请的一个实施例中,所述更新结果包括:中间结果的绝对值与目标元素的绝对值之间的最小值、中间结果的正负号与目标元素的正负号之间的异或值;
所述基于最小和运算与双曲运算之间的运算结果误差,矫正所述更新结果,得到矫正结果,包括:
基于最小和运算与双曲运算之间的运算结果误差,矫正所述更新结果中包括的最小值;
基于矫正后的最小值和所述异或值,得到矫正结果。
这样可以仅对更新结果中包括的绝对值之间的最小值进行更新,基于矫正后的最小值和更新结果中包括的原始的异或值即可得到矫正结果,可见,在矫正值只需考虑绝对值之间的最小值,无需考虑正负号,进一步提高了更新结果的矫正效率。
本申请的一个实施例中,所述基于最小和运算与双曲运算之间的运算结果误差,矫正所述更新结果中包括的最小值,包括:
基于矫正曲线矫正所述更新结果中包括的最小值,其中,所述矫正曲线基于最小和运算与双曲运算之间的运算结果误差获得。
由于矫正曲线是对最小和运算相较于双曲运算的运算结果偏移进行曲线拟合的,能够较好的反映上述运算结果偏移,从而可以提高后续基于矫正曲线矫正更新结果时的准确度。
本申请的一个实施例中,所述矫正曲线按照以下方式构建得到:
获得针对相同输入集合的最小和运算的第一运算结果以及双曲运算的第二运算结果;
根据所述第一运算结果和第二运算结果的分布信息,确定所述最小和运算相较于双曲运算的运算结果偏移;
对所述运算结果偏移进行曲线拟合,得到所述矫正曲线。
由以上可见,获得针对相同输入集合的最小和运算的第一运算结果以及双曲运算的第二运算结果后,可以根据第一运算结果和第二运算结果的分布信息,确定最小和运算相较于双曲运算的运算结果偏移,进而可以通过对运算结果偏移进行曲线拟合,得到能够较好反映上述偏移的矫正曲线,提高了后续基于矫正曲线矫正更新结果时的准确度。
本申请的一个实施例中,根据所述第一运算结果和第二运算结果的分布信息,确定所述最小和运算相较于双曲运算的运算结果偏移,包括:
以针对同一输入的第一运算结果为纵坐标、第二运算结果为横坐标绘制坐标点,获得反映最小和运算相较于双曲运算的运算结果偏移的点群;
确定所述点群中与所述目标直线之间的距离大于预设距离的目标点,其中,所述目标直线为:穿过原点且斜率为1的直线;
获得反映所述最小和运算相较于双曲运算的运算结果偏移的目标点群,其中,所述目标点群中包括所述目标点。
点群包括的点与目标直线之间的距离可以较好的反映最小和运算相较于双曲运算的运算结果偏移,从而,基于上述距离可以较为准确的确定出反映最小和运算相较于双曲运算的运算结果偏移的目标点群。
本申请的一个实施例中,所述矫正曲线贯穿所述目标点群,所述矫正曲线用于缩小大于0的元素,放大小于0的元素。
目标点群能够反映最小和运算相较于双曲运算的运算结果偏移,确定贯穿目标点群的矫正曲线,也就是确定符合上述运算结果偏移的矫正曲线,提高了所得矫正曲线的合理性。
本申请的一个实施例中,所述对所述运算结果偏移进行曲线拟合,得到所述矫正曲线,包括:
确定2条贯穿所述目标点群的边界直线,其中,所述边界直线的斜率为1且截距绝对值相同;
确定权重曲线,其中,所述权重曲线的曲线函数的函数值在自变量无穷大时趋近于1、自变量负无穷大时趋近于0;
基于所述边界直线和权重曲线,构建所述矫正曲线。
可以看出,首先确定了贯穿目标点群的两条边界直线,所确定的两条边界直线分别反映了最小和运算和双曲运算在不同象限内的运算结果偏移,再确定用于连接两边界直线的权重曲线,能够使得两条边界直线之间平滑过渡,从而可以得到准确、合理的矫正曲线。
本申请的一个实施例中,所述基于所述边界直线和权重曲线,构建所述矫正曲线,包括:
按照以下表达式构建所述矫正曲线
;
其中,表示所述权重曲线,/>、/>表示所述边界直线。
可见,基于上述表达式可以方便、快捷的对更新结果进行矫正。
本申请的一个实施例中,所述基于矫正曲线矫正所述更新结果中包括的最小值,包括:
按照以下表达式矫正所述更新结果包括的最小值
;
其中,表示矫正后的最小值,/>表示所述矫正曲线的曲线函数。
这样,采用上述表达式可以快捷、准确的基于边界直线和权重曲线构建得到矫正曲线。
本申请的一个实施例中,所述终端包括通信数据接收电路、更新结果确定电路、更新结果矫正电路和译码电路,其中,
所述通信数据接收电路,用于接收终端发送的通信数据;
所述更新结果确定电路,用于采用最小和译码算法对所述通信数据进行译码,获得译码过程中各校验节点包括的各第一元素的更新结果;
所述更新结果矫正电路,用于基于最小和运算与双曲运算之间的运算结果误差,矫正所述更新结果,得到矫正结果;
所述译码电路,用于基于所述矫正结果,对所述通信数据进行译码,得到所述原始通信数据。
这样,终端通过运行上述各类电路,可以执行本申请实施例提供的译码方案进行译码。上述译码过程中,得到第一元素的更新结果后,考虑了最小和运算与双曲运算之间的运算结果误差,基于上述运算结果误差对于更新结果进行了矫正,通过上述矫正,能够使得基于最小和运算的得到的更新结果趋近于基于双曲运算的得到的运算结果,从而减弱或者消除最小和运算相对于双曲运算之间的运算结果误差,使得矫正后得到的矫正结果相较于初始的更新结果准确度更高,进而提高了基于矫正结果进行译码的准确度。
再者,由于本申请实施例提供的译码方案是基于最小和运算进行译码的,而最小和运算是双曲运算的简化运算,计算复杂度较低,因此整个译码流程的效率较高。可见,本申请实施例提供的译码方案可以在保证较高的译码效率的同时,提高译码的准确度。
本申请的一个实施例中,所述更新结果确定电路,具体用于针对每一校验节点中包括的每一第一元素,对中间结果和目标元素进行最小和运算,得到该第一元素的更新结果,其中,所述中间结果为:上一次最小和运算得到的运算结果,所述中间结果的初始值为:该校验节点中包括的第一个第二元素与第二个第二元素的最小和运算的运算结果,所述第二元素为:该校验节点中除该第一元素外的元素,所述目标元素为:位于上一参与最小和运算的第二元素之后的第二元素,所述第一元素和第二元素的取值不为预设的目标取值。
这样,终端通过运行更新结果确定电路,可以将多元最小和运算拆解为多个二元最小和运算的嵌套,采用分而治之的方式提高了获得第一元素更新结果的效率。
本申请的一个实施例中,所述更新结果确定电路,包括:
最小值确定子电路,用于确定所述中间结果的绝对值与目标第二元素的绝对值之间的最小值;符号异或电路,用于计算所述中间结果的符号与目标第二元素的符号之间的异或值;
所述更新结果矫正电路,包括:
矫正子电路,用于基于矫正曲线矫正所述最小值,其中,所述矫正曲线基于最小和运算与双曲运算之间的运算结果误差获得;结果获得电路,用于基于矫正后的最小值和所述异或值,得到矫正结果。
由以上可见,采用本申请实施例提供的译码模块对第一元素进行更新时,将更新时涉及的多元最小和运算拆分为了多个二元最小和运算,并且,针对每一二元最小和运算,都通过矫正曲线对运算过程中涉及的最小值进行了矫正,矫正后的结果会作为中间结果进行后续二元最小和运算。这样,通过多次嵌套矫正,提高了矫正效果,进一步提高了所得更新结果的准确度。
本申请的一个实施例中,所述基于矫正结果,对所述通信数据进行译码,得到所述原始通信数据,包括:
基于所述矫正结果进行译码判决,得到待验证的译码结果;
基于预设的校验矩阵对所述译码结果进行验证,得到验证结果;
基于验证结果,确定所述原始通信数据。
可以看出,得到译码结果后,还对译码结果进行了验证,基于验证结果确定原始通信数据,提高了最终得到的原始通信数据的准确度。
本申请的一个实施例中,所述基于预设的校验矩阵对所述译码结果进行验证,得到验证结果,包括:
计算所述校验矩阵与所述译码结果之积;若计算结果为0,则确定验证结果为验证成功;否则,则确定验证结果为验证失败。
这样,基于校验矩阵与译码结果之间的乘积,可以快捷、准确的对译码结果进行验证。
本申请的一个实施例中,所述基于验证结果,确定所述原始通信数据,包括:
若所述验证结果为验证成功,则将所述译码结果确定为原始通信数据;
若所述验证结果为验证失败,则基于所述译码结果,对各变量节点进行更新,返回所述获得译码过程中各校验节点中包括的各第一元素的更新结果的步骤,直至达到最大迭代次数,将达到最大迭代次数时得到的译码结果确定为原始通信数据。
这样,能够将验证成功的译码结果或者达到最大迭代次数时得到的译码结果确定为原始通信数据,通过循环的多次迭代译码,提高了译码准确度。
第二方面,本申请实施例提供了一种译码器,所述译码器用于实现第一方面所述的方法。
第三方面,本申请实施例提供了一种终端,包括:
一个或多个处理器、存储器以及第二方面所述的译码器;
所述存储器与所述一个或多个处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,所述一个或多个处理器调用所述计算机指令以使得所述终端基于所述译码器执行第一方面所述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,包括计算机程序,当所述计算机程序在终端上运行时,使得所述终端执行第一方面所述的方法。
第五方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品包含可执行指令,当所述可执行指令在终端上执行时,使得终端执行第一方面所述的方法。
第六方面,本申请实施例提供了一种芯片系统,所述芯片系统应用于终端,所述芯片系统包括一个或多个处理器,所述处理器用于调用计算机指令以使得所述终端将通信数据输入芯片系统,并执行第一方面所述的方法对通信数据进行译码后输出原始通信数据。
上述第二方面至第六方面中各实施例所提供方案的有益效果可参见上述第一方面中各实施例所提供方案的有益效果。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本申请实施例提供的一种终端的结构示意图;
图2为本申请实施例提供的一种终端的软件结构框图;
图3为本申请实施例提供的一种校验节点和变量节点的示意图;
图4为本申请实施例提供的一种译码方法的流程示意图;
图5为本申请实施例提供的一种运算结果误差示意图;
图6为本申请实施例提供的一种矫正曲线构建方法的流程示意图;
图7为本申请实施例提供的第一种点群分布的示意图;
图8为本申请实施例提供的第一种矫正曲线的示意图;
图9为本申请实施例提供的一种边界直线的示意图;
图10为本申请实施例提供的一种权重曲线的示意图;
图11为本申请实施例提供的第二种矫正曲线的示意图;
图12为本申请实施例提供的第二种点群分布的示意图;
图13为本申请实施例提供的一种矫正效果示意图;
图14为本申请实施例提供的一种译码模块的示意图;
图15为本申请实施例提供的一种芯片系统的结构示意图。
具体实施方式
为了更好的理解本申请的技术方案,下面结合附图对本申请实施例进行详细描述。
为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一指令和第二指令是为了区分不同的用户指令,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
需要说明的是,本申请中,“示例性地”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性地”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性地”或者“例如”等词旨在以具体方式呈现相关概念。
本申请实施例提供的方案可应用于手机、平板电脑、智能手表、可穿戴电子设备、增强现实技术(Augmented Reality,AR)设备、虚拟现实(Virtual Reality,VR)设备、车载设备、智能汽车、机器人等具有移动通信功能的终端中。
示例性的,图1示出了终端100的结构示意图。终端100可以包括处理器110,显示屏120,摄像头130,内部存储器140,SIM(Subscriber Identification Module,用户标识模块)卡接口150,USB(Universal Serial Bus,通用串行总线)接口160,充电管理模块170,电池管理模块171,电池172,传感器模块180,移动通信模块190,无线通信模块200,天线1以及天线2等。其中传感器模块180可以包括压力传感器180A,指纹传感器180B,触摸传感器180C,环境光传感器180D,译码器210等。
可以理解的是,本申请实施例示意的结构并不构成对终端100的具体限定。在本申请另一些实施例中,终端100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括中央处理器(Central Processing Unit,CPU)、应用处理器(Application Processor,AP),调制解调处理器,图形处理器(graphics processing unit,GPU),图像信号处理器(Image SignalProcessor,ISP),控制器,视频编解码器,数字信号处理器(Digital SignalProcessor,DSP),基带处理器,和/或神经网络处理器(Neural-network Processing Unit,NPU)等。其中,不同的处理单元可以是独立的部件,也可以集成在一个或多个处理器中。在一些实施例中,终端100也可以包括一个或多个处理器110。其中,控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。在其他一些实施例中,处理器110中还可以设置存储器,用于存储指令和数据。示例性地,处理器110中的存储器可以为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从存储器中直接调用。这样就避免了重复存取,减少了处理器110的等待时间,因而提高了终端100处理数据或执行指令的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路间(Inter-Integrated Circuit,I2C)接口、集成电路间音频(Inter-Integrated CircuitSound,I2S)接口、脉冲编码调制(Pulse CodeModulation,PCM)接口、通用异步收发传输器(Universal Asynchronous Receiver/Transmitter,UART)接口、移动产业处理器接口(Mobile Industry Processor Interface,MIPI)、用输入输出(General-Purpose Input/Output,GPIO)接口、SIM卡接口和/或USB接口等。其中,USB接口160是符合USB标准规范的接口,具体可以是Mini USB接口、Micro USB接口、USB Type C接口等。USB接口160可以用于连接充电器为终端100充电,也可以用于终端100与外围设备之间传输数据。该USB接口160也可以用于连接耳机,通过耳机播放音频。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,用于示意性说明,并不构成对终端100的结构限定。在本申请另一些实施例中,终端100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
终端100的无线通信功能可以通过天线1、天线2、移动通信模块190、无线通信模块200、调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。终端100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
终端100通过GPU,显示屏120,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏120和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏120用于显示图像、视频等。显示屏120包括显示面板。显示面板可以采用液晶显示屏(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-EmittingDiode,OLED)、有源矩阵有机发光二极体或主动矩阵有机发光二极体(Active-MatrixOrganic Light Emitting Diode,AMOLED)、柔性发光二极管(FlexLight-Emitting Diode,FLED)、Miniled、MicroLed、Micro-oLed、量子点发光二极管(Quantum Dot Light EmittingDiodes,QLED)等。在一些实施例中,终端100可以包括1个或多个显示屏120。
在本申请的一些实施例中,当显示面板采用OLED、AMOLED、FLED等材料时,上述图1中的显示屏120可以被弯折。这里,上述显示屏120可以被弯折是指显示屏可以在任意部位被弯折到任意角度,并可以在该角度保持,例如,显示屏120可以从中部左右对折。也可以从中部上下对折。
终端100的显示屏120可以是一种柔性屏,目前,柔性屏以其独特的特性和巨大的潜力而备受关注。柔性屏相对于传统屏幕而言,具有柔韧性强和可弯曲的特点,可以给用户提供基于可弯折特性的新交互方式,可以满足用户对于终端的更多需求。对于配置有可折叠显示屏的终端而言,终端上的可折叠显示屏可以随时在折叠形态下的小屏和展开形态下大屏之间切换。因此,用户在配置有可折叠显示屏的终端上使用分屏功能,也越来越频繁。
终端100可以通过ISP、摄像头130、视频编解码器、GPU、显示屏120以及应用处理器等实现拍摄功能,其中,摄像头130包括前置摄像头和后置摄像头。
ISP用于处理摄像头130反馈的数据。例如,拍摄时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将电信号传递给ISP处理,转化为肉眼可见的图像。ISP可以对图像的噪点、亮度和色彩进行算法优化,ISP还可以优化拍摄场景的曝光和色温等参数。在一些实施例中,ISP可以设置在摄像头130中。
摄像头130用于拍摄照片或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(Charge Coupled Cevice,CCD)或互补金属氧化物半导体(Complementary Metal-Oxide-Semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的红绿蓝(Red Green Blue,RGB),YUV等格式的图像信号。在一些实施例中,终端100可以包括1个或N个摄像头130,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当终端100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。终端100可以支持一种或多种视频编解码器。这样,终端100可以播放或录制多种编码格式的视频,例如:动态图像专家组(Moving Picture Experts Group,MPEG)1、MPEG2、MPEG3和MPEG4。
NPU为神经网络(Neural-Network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现终端100的智能认知等应用,例如:图像识别、人脸识别、语音识别、文本理解等。
内部存储器140可以用于存储一个或多个计算机程序,该一个或多个计算机程序包括指令。处理器110可以通过运行存储在内部存储器140的上述指令,从而使得终端100执行本申请一些实施例中所提供的译码方法,以及各种应用以及数据处理等。内部存储器140可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统;该存储程序区还可以存储一个或多个应用(比如图库、联系人等)等。存储数据区可存储终端100使用过程中所创建的数据(比如照片,联系人等)等。此外,内部存储器140可以包括高速随机存取存储器,还可以包括非易失性存储器,例如一个或多个磁盘存储部件,闪存部件,通用闪存存储器(Universal Flash Storage,UFS)等。在一些实施例中,处理器110可以通过运行存储在内部存储器140的指令,和/或存储在设置于处理器110中的存储器的指令,来使得终端100执行本申请实施例中所提供的译码方法,以及其他应用及数据处理。
内部存储器140可以用于存储本申请实施例中提供的译码方法的相关程序,处理器110可以用于在展示信息时调用内部存储器140中存储的译码方法的相关程序,执行本申请实施例的译码方法。
传感器模块180可以包括压力传感器180A、指纹传感器180B、触摸传感器180C、环境光传感器180D等。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏120。压力传感器180A的种类很多,例如可以是电阻式压力传感器、电感式压力传感器或电容式压力传感器。电容式压力传感器可以是包括至少两个具有导电材料的平行板,当力作用于压力传感器180A,电极之间的电容改变,终端100根据电容的变化确定压力的强度。当触摸操作作用于显示屏120时,终端100根据压力传感器180A检测触摸操作。终端100也可以根据压力传感器180A的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令;当触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。
指纹传感器180B用于采集指纹。终端100可以利用采集的指纹特性实现解锁、访问应用锁、拍摄和接听来电等功能。
触摸传感器180C,也称为触控器件。触摸传感器180C可以设置于显示屏120,由触摸传感器180C与显示屏120组成触摸屏,触摸屏也称为触控屏。触摸传感器180C用于检测作用于其上或其附近的触摸操作。触摸传感器180C可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏120提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180C也可以设置于终端100的表面,并且与显示屏120设置于不同的位置。
环境光传感器180D用于感知环境光亮度。终端100可以根据感知的环境光亮度自适应调节显示屏120亮度。环境光传感器180D也可用于拍摄时自动调节白平衡。环境光传感器180D还可以将设备所处的环境信息传入GPU。
环境光传感器180D还用于获取摄像头130采集图像的采集环境的亮度、光比、色温等。
译码器210用于采用本申请实施例提供的方案对接收到的通信数据进行译码,基于译码结果确定原始通信数据。
图2为本申请实施例适用的终端的一种软件结构框图。终端的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。
分层架构将终端的软件系统分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,可以将软件系统分为五层,分别为应用程序层(applications)、应用程序框架层(application framework)、系统库、硬件抽象层(Hardware Abstract Layer,HAL)以及内核层(kernel)。
应用程序层可以包括一系列应用程序包,应用程序层通过调用应用程序框架层所提供的应用程序接口(Application Programming Interface,API)运行应用程序。如图2所示,应用程序包可以包括浏览器、图库、音乐以及视频等应用程序。可以理解地,上述的每个应用程序的端口均可以用于接收数据。
应用程序框架层为应用程序层的应用程序提供API和编程框架。应用程序框架层包括一些预先定义的函数。如图2所示,应用程序框架层可以包括窗口管理器、内容提供器、视图系统、资源管理器、通知管理器以及DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)模块等。
系统库可以包括多个功能模块,如表面管理器、三维图形处理库、二维图形引擎以及文件库等。
硬件抽象层,可以包含多个库模块,库模块如可以为显示器库模块以及马达库模块等。终端系统可以为设备硬件加载相应的库模块,进而实现应用程序框架层访问设备硬件的目的,例如,终端系统可以为摄像头加载相应的库模块,进而实现相机应用程序访问摄像头等。
内核层是硬件和软件之间的层。内核层用于驱动硬件,使得硬件工作。内核层至少包含显示驱动、译码器驱动、传感器驱动以及马达驱动等,本申请实施例对此不做限制。可以理解地,显示驱动、相机驱动、译码器驱动、传感器驱动以及马达驱动等均可以视为一个驱动节点。上述的每个驱动节点均包括可以用于接收数据的接口。
本方案中,终端中部署的操作系统可以通过调用内核层中的译码器驱动,运行上述译码器,从而执行本申请实施例提供的译码方案。
为便于理解本申请实施例提供的方案,下面首先对本申请实施例涉及的部分概念进行介绍。
1、LDPC
LDPC是目前常用的一种纠错码,数据发送终端可以采用预先定义的生成矩阵对原始通信数据进行编码,得到LDPC;数据接收终端可以采用生成矩阵对应的校验矩阵,经过一系列计算对接收到的LDPC进行译码,并校验译码结果,在验证结果为验证成功时,即可确定原始通信数据。
2、置信度传播译码算法、最小和译码算法
置信度传播(Brief Probagation,BP)译码算法和最小和译码算法均是LDPC应用较为广泛的译码算法。
其中,最小和译码算法可以理解为置信度传播译码算法的一个简化版本,其将置信度传播译码算法中涉及的部分复杂运算替换为经过简化的近似运算。
3、校验节点、变量节点
区别于硬件设备,本申请中涉及的校验节点和变量节点是指最小和译码算法中为便于描述译码过程而引出的逻辑概念。
具体的,终端采用最小和译码算法对LDPC进行译码的过程中,会涉及两类信息矩阵的初始化以及更新,本申请将上述两类信息矩阵分别称为Mcv矩阵和Mvc矩阵,上述矩阵中的每一行可以称为一个校验节点,每一列可以称为一个变量节点。
参见图3,为本申请实施例提供的一种校验节点和变量节点的示意图。
图3中大矩形表示Mvc矩阵,小矩形表示矩阵中的元素。可以看出,对于3行4列的Mvc矩阵而言,其包括校验节点1-校验节点3共3个校验节点,包括变量节点1-变量节点4共4个变量节点。
上述Mcv矩阵和Mvc矩阵的初始化以及更新的具体方式与校验矩阵相关,详见后续实施例,这里暂不详述。
5、第一元素、第二元素
由于校验节点是矩阵中的行,因此,一个校验节点包括其对应行中的所有元素。
第一元素是指校验节点包括所有元素中取值不为预设的目标取值的元素。
例如,若上述目标取值为0,校验节点1包括元素1-元素4,其中,元素1的取值为0,则第一元素是指校验节点1中取值不为0的元素2-元素4。
第二元素是相对于第一元素的概念。
校验节点内的第一元素是逐个更新的,对于每一待更新的第一元素而言,该校验节点中除该第一元素外的元素可以称为第二元素。
6、双曲运算
BP译码算法中的核心运算步骤是更新校验节点中的第一元素,得到更新结果,针对第i个校验节点中的第j个第一元素,该第一元素的更新步骤可以采用以下表达式表示:
(1)
其中,表示反双曲正切函数,/>表示双曲正切函数,0≤i≤M,M表示校验矩阵的行数,j∈/>,/>表示第i个校验节点中取值不为目标取值的元素的列号,/>表示译码迭代次数,/>表示第i个校验节点的第j个第一元素在第/>次迭代时的更新结果,,表示第i个校验节点中取值不为预设取值、且不同于第j 个元素外的元素(也即第二元素)的列号,/>表示第/>-1次迭代后的第二元素/>
可见,BP译码算法中,更新校验节点中的第一元素的运算涉及求解多个元素的tanh函数和tanh反函数,本申请将其称为双曲运算。
7、最小和运算
相较于BP译码算法,最小和译码算法对更新校验节点中的第一元素的运算作了简化,针对第i个校验节点中的第j个第一元素,该第一元素的更新步骤可以采用以下表达式表示:
(2)
其中,0≤i≤M,M表示校验矩阵的行数,j∈,/>表示第i个校验节点中取值不为目标取值的元素的列号,/>表示译码迭代次数,/>表示第i个校验节点的第j个第一元素在第/>次迭代时的更新结果,/>,表示第i个校验节点中取值不为预设取值、且不同于第j 个元素外的元素(也即第二元素)的列号,/>表示第/>-1次迭代后的第二元素/>的正负号,/>表示第/>-1次迭代后的第二元素/>的绝对值。
可见,最小和译码算法中,更新校验节点中的第一元素的运算仅涉及求解多个元素的绝对值的最小值以及正负号的累乘运算,本申请将其称为最小和运算。
下面对本申请实施例提供的译码方案进行详细介绍。
参见图4,为本申请实施例提供的一种译码方法的流程示意图,上述方法包括以下步骤S401-步骤S404。
步骤S401:接收终端发送的通信数据。
区别于作为本申请实施例提供方案的执行主体的终端,上述步骤S401中的终端是指用于向作为本申请实施例提供方案的执行主体的终端发送通信数据的终端,可以将其称为数据发送终端。
上述通信数据包括:数据发送终端对原始通信数据进行编码后得到的低密度奇偶校验码LDPC。
上述原始通信数据可以是语音数据、图像数据等任意类型的数据的原始码字序列,可以称为码字序列S,如S=[s1 s2 s3…],其中,s1-s3表示各个码字,取值为0或1。
LDPC是对原始的码字序列进行编码后得到的码字序列,可以称为码字序列C,如C=[c1 c2 c3…],其中,c1-c3表示各个码字,取值为0或1。
步骤S402:采用最小和译码算法对通信数据进行译码,获得译码过程中各校验节点包括的各第一元素的更新结果。
其中,更新结果通过对第一元素的取值进行更新得到,第一元素的初始取值基于LDPC码字的信道似然比确定。
LDPC码字的信道似然比基于码字的取值确定,其大小反映了码字取值为1或0的概率。
具体的,假设每一LDPC码字在信道中被正确传送的概率P=0.8,则对于取值为 1的码字,其对数似然比为=/>=-1.368;对于取值为 0的码字,其对数似然比为/>=/>=1.368。可见,当信道似然比小于0时,表征码字取值为1的概率较高,当信道似然比大于0时,表征码字取值为0的概率较高。
上述第一元素的初始取值也就是初始化的Mvc矩阵中校验节点内元素的取值。
下面对初始化Mvc矩阵的方式进行介绍。
具体的,若校验矩阵H的大小为M×N,为校验矩阵H中第i行第j列的元素,第j个LDPC码字的信道似然比为/>,0≤j<N,则可以采用以下表达式初始化Mvc矩阵:
(3)
其中,表示初始化Mvc矩阵中第i行第j列的元素,i、j的取值满足/>=1,校验矩阵的列数与码字的个数相同。
可见,上述表达式相当于将校验矩阵H中取值为1的元素更新为该元素对应列的码字LLR。
例如,假设校验矩阵H=,LDPC码字序列C=[1 1 0 1 1 1],LDPC码字的LLR=[-1.368 -1.368 1.368 -1.368 -1.368 -1.368],则将校验矩阵H中取值为1的元素更新为该元素对应列的码字LLR,可以得到初始化Mvc矩阵如下:
;
需要说明的是,上述举例仅仅是为了便于理解而做出的简单示意,不代表实际的应用场景。如,实际场景下,上述校验矩阵可以包括上千行和/或上千列。
得到初始化的Mvc矩阵后,第一元素的初始取值也就是初始化的Mvc矩阵中各校验节点内元素的取值。
下面对获得第一元素的更新结果的方式进行介绍。
一种实施方式中,针对第i个校验节点中的第j个第一元素,可以采用前述公式(2)更新该第一元素,得到更新结果。
另一种实施方式中,可以针对每一校验节点中包括的每一第一元素,对中间结果和目标元素进行最小和运算,得到该第一元素的更新结果。
其中,上述中间结果为:上一次最小和运算得到的运算结果,上述中间结果的初始值为:该校验节点中包括的第一个第二元素与第二个第二元素的最小和运算的运算结果,上述第二元素为:该校验节点中除该第一元素外的元素,上述目标元素为:位于上一参与最小和运算的第二元素之后的第二元素,上述第一元素和第二元素的取值不为预设的目标取值。
上述公式(1)涉及多个第二元素的运算,本申请将其称为多元box-plus运算,发明人在实践中发现,多元box-plus运算可以拆解为简化为二元box-plus运算的嵌套。
具体的,若定义这一运算符,该运算符用于实现以下运算,本申请将其称为box-plus运算:
,则:
;
在此基础上,由于公式(2)是公式(1)的简化运算,公式(2)具有与公式的具有相同的运算形式,因此,在计算公式(1)所示的多元box-plus 运算时,可以将其拆解成多个嵌套的二元box-plus运算,而每个box-plus运算又可以用二元最小和运算进行简化运算。
从而,若将公式(2)涉及的多个第二元素的运算称为多元最小和运算,则多元最小和运算可以拆解为多个二元最小和运算的嵌套。
也就是,针对多个元素参与计算的多元最小和运算,可以将上一次二元最小和运算的中间结果和下一元素进行二元最小和计算,得到新的中间结果,返回将上一次二元最小和运算的中间结果和下一元素进行二元最小和计算,直到全部元素均参与计算。
例如,若校验节点1包括元素1-6,针对校验节点1包括的第一元素1而言,若第一元素1对应第二元素3-6,则可以先计算第二元素3和第二元素4的最小和计算结果,作为中间结果的初始值temp1;然后,计算temp1与第二元素5的最小和计算结果,作为新的中间结果temp2;最后,计算temp2与第二元素6的最小和计算结果,此时,校验节点中全部第二元素均已参与计算,得到的结果result即为第一元素1的更新结果。
可见,这样可以将多元最小和运算拆解为多个二元最小和运算的嵌套,采用分而治之的方式提高了获得第一元素更新结果的效率。
步骤S403:基于最小和运算与双曲运算之间的运算结果误差,矫正更新结果,得到矫正结果。
由前述概念介绍处可知,最小和运算是双曲运算的简化运算,发明人在实践中发现,最小和运算与双曲运算之间的运算结果存在一定误差。
参见图5,为本申请实施例提供的一种运算结果误差示意图。
图5为802.11n的一个实例仿真,码长(Block length)648bit(比特),编码率(Rate)为1/2,横轴表示信噪比(Eb/N0),单位为dB(分贝),纵轴表示误块率(Block ErrorRate,BLER),深黑色矩形、浅黑色矩阵和带阴影的矩阵分别表示译码迭代次数为5、10、20时不同信噪比下基于最小和运算译码时的误块率,深黑色圆形、浅黑色圆形和带阴影的圆形分别表示译码迭代次数为5、10、20时不同信噪比下基于双曲运算译码时的误块率。
可以看出,最小和运算相对于双曲运算会造成较大的性能损失,尤其是在LDPC译码迭代次数较大时,性能损失特别突出。如图5所示,在不同的译码迭代次数的约束下,最小和运算的译码性能与双曲运算均存在0.2dB以上的性能差距。并且,在迭代次数逐渐增大到20次的过程中,最小和运算的译码性能与理论双曲运算之间的差距越来越大,在20次迭代时扩大到了0.4dB。
本申请实施例不限定基于上述运算结果误差矫正更新结果的具体方式,例如,可以预先设置最小和运算与双曲运算的运算结果偏移值、基于上述偏移值矫正更新结果等。
一种情况下,第一元素的更新结果可以包括:中间结果的绝对值与目标元素的绝对值之间的最小值、中间结果的正负号与目标元素的正负号之间的异或值。
其中,上述正负号之间异或值是指:正号(+)在异或运算中取0、负号(-)在异或运算中取1得到的运算结果。
例如,若中间结果的正负号是正号,目标元素的正负号的正负号为负号,则中间结果的正负号与目标元素的正负号之间的异或值为:0⊕1=1;又如,若中间结果的正负号是正号,目标元素的正负号的正负号也为正号,则中间结果的正负号与目标元素的正负号之间的异或值为:0⊕0=0。其他情况同理,不再一一举例。
这种情况下,可以基于最小和运算与双曲运算之间的运算结果误差,矫正更新结果中包括的最小值,基于矫正后的最小值和上述异或值,得到矫正结果。
例如,若上述最小值为min,异或值为1,表征负号(-),则可以对min进行矫正,得到min’,然后为min’赋予异或值表征的负号,得到-min’,作为矫正结果。
这样可以仅对更新结果中包括的绝对值之间的最小值进行更新,基于矫正后的最小值和更新结果中包括的原始的异或值即可得到矫正结果,可见,在矫正值只需考虑绝对值之间的最小值,无需考虑正负号,进一步提高了更新结果的矫正效率。
本申请的一个实施例中,可以基于矫正曲线矫正更新结果中包括的最小值,其中,矫正曲线基于最小和运算与双曲运算之间的运算结果误差获得。
具体的,可以按照以下表达式矫正所述更新结果包括的最小值
;
其中,表示矫正后的最小值,/>表示所述矫正曲线的曲线函数。
可见,基于上述表达式可以方便、快捷的对更新结果进行矫正。
上述矫正曲线的具体构造方式详见后续实施例,这里暂不详述。
步骤S404:基于矫正结果,对通信数据进行译码,得到原始通信数据。
具体的,可以基于矫正结果,采用最小和译码算法进行后续的译码流程,得到原始通信数据。
一种实施方式中,可以基于矫正结果进行译码判决,得到待验证的译码结果,基于预设的校验矩阵对译码结果进行验证,得到验证结果,再基于验证结果,确定原始通信数据。
首先对得到待验证的译码结果的方式进行介绍。
得到第一元素的矫正结果后,可以累加每一变量节点包括的元素,得到计算结果,再计算累加结果与该变量节点对应的码字LLR的和,得到每一变量节点对应的累加结果,最后针对每一变量节点对应的累加结果进行译码判决。
其中,针对变量节点j,上述得到累加结果的步骤可以采用以下表达式表示:
;
上述表示变量节点j中取值不为目标取值的元素的行号,/>表示变量节点j在第l次迭代时对应的累加结果,/>表示变量节点j在第l次迭代时包括的各个元素,/>表示变量节点j对应的码字LLR。
上述针对每一变量节点对应的累加结果进行译码判决的步骤可以采用以下表达式表示:
;
上述表示变量节点j在第l次迭代时对应的译码判决结果。
可见,针对变量节点j而言,若其对应的累加结果<0,其译码判决结果为1;若其对应的累加结果/>0,其译码判决结果为0。
各个变量节点对应的译码判决结果即为第l次迭代时待验证的译码结果
下面对验证译码结果的方式进行介绍。
得到待验证的译码结果后,可以采用校验矩阵进行验证。
一种实施方式中,可以计算校验矩阵与译码结果之积,若计算结果为0,则确定验证结果为验证成功;否则,则确定验证结果为验证失败。
具体的,可以采用以下表达式验证译码结果:
;
若s=0,则确定验证结果为验证成功,否则确定验证结果为验证失败。
其中,为上述校验矩阵的转置。
这样,基于校验矩阵与译码结果之间的乘积,可以快捷、准确的对译码结果进行验证。
再对基于验证结果确定原始通信数据的方式进行介绍。
具体的,若上述验证结果为验证成功,则直接将上述译码结果确定为原始通信数据;若上述验证结果为验证失败,则基于上述译码结果,对各变量节点进行更新,返回上述步骤S102,直至达到最大迭代次数,将达到最大迭代次数时得到的译码结果确定为原始通信数据。
上述最大迭代次数可以由工作人员根据经验和实际需求设定,本申请实施例对此不作限定。
其中,可以采用以下表达式对变量节点j包括的元素i进行更新:
;
上述表示变量节点j在第l次迭代时包括的元素i,/>变量节点j在第l次迭代时对应的累加结果,/>表示第i个校验节点的第j个第一元素在第/>次迭代时的更新结果。
这样,能够将验证成功的译码结果或者达到最大迭代次数时得到的译码结果确定为原始通信数据,相比于单次得到的译码结果,通过循环的多次迭代译码,提高了译码准确度。
可以看出,得到译码结果后,还对译码结果进行了验证,基于验证结果确定原始通信数据,提高了最终得到的原始通信数据的准确度。
由以上可见,应用本申请实施例提供的译码方案进行译码时,接收终端发送的通信数据后,可以采用最小和译码算法对所述通信数据进行译码,获得译码过程中各校验节点包括的各第一元素的更新结果,然后,基于最小和运算与双曲运算之间的运算结果误差,矫正更新结果,得到矫正结果,最后,基于矫正结果,对通信数据进行译码,得到原始通信数据。
可以看出,得到第一元素的更新结果后,考虑了最小和运算与双曲运算之间的运算结果误差,基于上述运算结果误差对于更新结果进行了矫正,通过上述矫正,能够使得基于最小和运算的得到的更新结果趋近于基于双曲运算的得到的运算结果,从而减弱或者消除最小和运算相对于双曲运算之间的运算结果误差,使得矫正后得到的矫正结果相较于初始的更新结果准确度更高,进而提高了基于矫正结果进行译码的准确度。
再者,由于本申请实施例提供的译码方案是基于最小和运算进行译码的,而最小和运算是双曲运算的简化运算,计算复杂度较低,因此整个译码流程的效率较高。可见,本申请实施例提供的译码方案可以在保证较高的译码效率的同时,提高译码的准确度。
由前文可知,多元最小和运算可以拆解为多个二元最小和运算的嵌套,也就是,可以通过不断对中间结果和目标元素进行最小和运算,来得到第一元素最终的更新结果。
基于此,本申请的一个实施例中,在步骤S404之前,可以判断目标元素是否为校验节点中包括的最后一个第二元素,若为是,表征所得更新结果即为第一元素最终的更新结果,因此可以执行步骤S304;若为否,表征所得更新结果不是最终的更新结果,因此,可以在对更新结果进行矫正、得到矫正结果后,将上述中间结果更新为矫正结果,返回步骤S402。
可见,这样在将多元最小和运算拆解为多个二元最小和运算的嵌套时,针对每一二元最小和运算的结果都进行了矫正,矫正后的结果再参与后续的二元最小和运算,这样细粒度的对每一二元最小和运算的结果都进行矫正,进而提高了最终得到的矫正结果的准确度。
下面通过一个具体的举例,对本申请实施例所提供方案的应用进行直观的介绍。
在语音通话场景下,当用户A讲话时,用户A使用的终端1将拾音器采集的用户A的语音信号转换为原始码字序列,然后再对原始码字序列进行编码,得到LDPC,终端1作为数据发送终端,向用户B的终端2发送包括上述LDPC的通信数据。
通过移动网络和基站的转发,用户B的终端2可以接收到包括上述LDPC的通信数据,然后,终端2可以作为执行主体,执行本申请实施例提供的方案,对接收到的通信数据进行译码,基于译码结果还原出原始码字序列,从而可以基于原始码字序列还原出语音信号,进而可以基于上述语音信号还原出用户A的语音。
当然,在用户B讲话时,用户B使用的终端2可以将拾音器采集的用户B的语音信号转换为原始码字序列,此时终端2可以作为数据发送终端,终端1可以作为本申请实施例提供的方案的执行主体,还原出用户B的语音,这里不再赘述。
下面对用于矫正更新结果的矫正曲线的构建方式进行介绍。
参见图6,为本申请实施例提供的一种矫正曲线构建方法的流程示意图,上述方法包括以下步骤S601-步骤S603。
步骤S601:获得针对相同输入集合的最小和运算的第一运算结果以及双曲运算的第二运算结果。
步骤S602:根据第一运算结果和第二运算结果的分布信息,确定最小和运算相较于双曲运算的运算结果偏移。
本申请实施例不对第一运算结果和第二运算结果的分布信息的表征形式作限定。
一种情况下,可以基于点群表征第一运算结果和第二运算结果的分布信息,并基于上述分布信息确定上述运算结果偏移。
具体的,可以采用以下步骤A-步骤C确定上述运算结果偏移。
步骤A:获得以针对同一输入的第一运算结果为纵坐标、第二运算结果为横坐标绘制坐标点,获得反映最小和运算相较于双曲运算的运算结果偏移的点群。
参见图7,为本申请实施例提供的第一种点群分布的示意图。
图7中,输入集合(x1,x2)遵从独立的同一均匀分布,纵轴表示针对同一输入的第一运算结果,横轴表示针对同一输入的第二运算结果。
当然,图7仅为针对某一输入集合的一种点群分布示例,针对不同分布的输入集合,本领域技术人员可以得到其他的点群分布。
步骤B:确定点群中与目标直线之间的距离大于预设距离的目标点。
上述目标直线为:穿过原点且斜率为1的直线,如图7所示直线,表示最小和运算的第一运算结果(简称为估计值)和双曲运算的第二运算结果(简称为理论值)一致时的点的收敛位置。
上述预设距离可以由工作人员根据经验或实际需求设定,本申请实施例对此不作限定。
图7中,与目标直线之间距离较大的点均可以称为目标点。
步骤C:获得反映最小和运算相较于双曲运算的运算结果偏移的目标点群。
其中,目标点群中包括目标点。
例如,图7中,第一象限和第三象限内直线之间的两个点群即为目标点群。
由图7的目标点群可见,估计值分布在理论值附近,在第一象限,估计值偏大,在第三象限,估计值偏小。并且,第一象限内估计值相比于理论值的分布有一个向上偏移,其偏移量在1.5左右。
点群包括的点与目标直线之间的距离可以较好的反映最小和运算相较于双曲运算的运算结果偏移,从而,基于上述距离可以较为准确的确定出反映最小和运算相较于双曲运算的运算结果偏移的目标点群。
步骤S603:对运算结果偏移进行曲线拟合,得到矫正曲线。
本申请实施例不对上述曲线拟合的具体方式作限定,例如可以采用各种曲线拟合算法对上述运算结果偏移进行曲线拟合。
由于矫正曲线是对最小和运算相较于双曲运算的运算结果偏移进行曲线拟合的,能够较好的反映上述运算结果偏移,从而可以提高后续基于矫正曲线矫正更新结果时的准确度。
一种情况下,经过曲线拟合得到的矫正曲线贯穿上述目标点群,且矫正曲线用于缩小大于0的元素,放大小于0的元素。
参见图8,为本申请实施例提供的第一种矫正曲线的示意图。
图8中,纵轴表示针对同一输入的第一运算结果,横轴表示针对同一输入的第二运算结果,斜率为1的执行表示上述目标直线,虚线表示矫正曲线。
可以看出,图8所示的矫正曲线贯穿了第一象限和第三象限的两个目标点群,且在自变量大于0时,曲线上偏,自变量小于0时,曲线下偏。这样,矫正曲线可以用于缩小第一象限内最小和运算的结果,放大第三象限内最小和运算的结果。
目标点群能够反映最小和运算相较于双曲运算的运算结果偏移,确定贯穿目标点群的矫正曲线,也就是确定符合上述运算结果偏移的矫正曲线,提高了所得矫正曲线的合理性。
本申请的一个实施例中,可以确定2条贯穿目标点群的边界直线,并确定权重曲线,从而基于上述边界直线和权重曲线,构建上述矫正曲线。
上述边界直线的斜率为1且截距绝对值相同。
参见图9,为本申请实施例提供的一种边界直线的示意图。
图9中,纵轴表示针对同一输入的第一运算结果,横轴表示针对同一输入的第二运算结果。可见,图9中示出了边界直线1和边界直线2,边界直线1和边界直线2分别贯穿位于第一象限和第三象限的目标点群。
其中,边界直线1可以表示为:,边界直线1可以表示为:/>表示边界直线的截距绝对值。可见,边界直线1和边界直线2斜率为1且截距绝对值相同。
上述权重曲线的曲线函数的函数值在自变量无穷大时趋近于1、自变量负无穷大时趋近于0。
任何在自变量无穷大时趋近于1、自变量负无穷大时趋近于0的曲线均可以作为上述权重曲线,下面给出一种实例。
参见图10,为本申请实施例提供的一种权重曲线的示意图。
图10的各条曲线均可以作为权重曲线,区别仅为调节曲线上升的陡峭程度的参数不同。
一种情况下,上述权重曲线可以采用以下表达式表示:
;
其中,α为调节曲线上升的陡峭程度的参数。
这样,基于权重曲线连接两条边界直线,即可得到矫正曲线。
可以看出,首先确定了贯穿目标点群的两条边界直线,所确定的两条边界直线分别反映了最小和运算和双曲运算在不同象限内的运算结果偏移,再确定用于连接两边界直线的权重曲线,能够使得两条边界直线之间平滑过渡,从而可以得到准确、合理的矫正曲线。
本申请的一个实施例中,按照以下表达式构建上述矫正曲线
;
其中,表示上述权重曲线,/>、/>表示上述边界直线。
将w(x)、、/>的曲线函数带入,则:
;
如,若设置α=2,β=1,则矫正曲线,其函数图像如图11所示。
参见图11,为本申请实施例提供的第二种矫正曲线的示意图。
其中,边界直线1的表达式为:,边界直线2的表达式为:/>,权重曲线的表达式为:/>,所得矫正曲线如图11所示。
这样,采用上述表达式可以快捷、准确的基于边界直线和权重曲线构建得到矫正曲线。
由以上可见,获得针对相同输入集合的最小和运算的第一运算结果以及双曲运算的第二运算结果后,可以根据第一运算结果和第二运算结果的分布信息,确定最小和运算相较于双曲运算的运算结果偏移,进而可以通过对运算结果偏移进行曲线拟合,得到能够较好反映上述偏移的矫正曲线,提高了后续基于矫正曲线矫正更新结果时的准确度。
需要说明的是,本申请实施例不对上述矫正曲线的设置方式作限定,工作人员可以依据自身经验和实际业务需求,灵活的设置矫正曲线。
一种情况下,设置边界直线和权值曲线时,需要考虑的因素可以包括参与最小和运算的元素个数,也即嵌套的二元最小和运算的次数。
参见图12,为本申请实施例提供的第二种点群分布的示意图。
图12中,图13中,纵轴表示针对同一输入的第一运算结果,横轴表示针对同一输入的第二运算结果,直线表示目标直线,N表示参与最小和运算的元素个数。由图12可以看出,N=4时(嵌套三次),估计值相对于的理论值的偏移量沿着目标直线较为均匀分布,但是在N=6(嵌套5次)时,估计值点逐渐向原点靠近,较大的估计值逐渐变得稀疏,并且分布的边界线变得不明显,外围边界线的截距变得大于1.5。在N=8(嵌套8次)和N=10(嵌套10次)的时候,估计值进一步向远点聚集,收敛的边界直线变得愈发不明显。
可见,参与最小和运算的元素个数越大,估计值相对于的理论值的误差越往逆时针方向偏移。
可见,边界直线和权值曲线的设计,与参与最小和运算的元素个数,而参与最小和运算的元素个数是LDPC码设计时就定好的参数,因此可以提前设计好边界直线和权值曲线,进而基于边界直线和权值曲线提前设置好矫正曲线,在使用时无需调整,实现简单,易于硬件实现。这样,可以通过较小的硬件代价实现对更新结果的矫正。
下面对矫正前的更新结果与矫正后的矫正结果进行直观的对比。
参见图13,为本申请实施例提供的一种矫正效果示意图。
图13中,纵轴表示针对同一输入的第一运算结果,横轴表示针对同一输入的第二运算结果,直线表示目标直线。
可以看出,矫正前的点群分布中,点群中的点与目标直线之间的偏移较大,表明矫正前的最小和运算结果与双曲运算结果之间的误差较大;而矫正后的点群分布中,点群中的点与目标直线之间的偏移较小,均分布在目标直线附近,表明矫正后的最小和运算结果与双曲运算结果之间的误差较小。
由此可以直观看出,应用本申请实施例提供的方案能够明显降低最小和运算结果与双曲运算结果之间的误差,进而能够提高基于最小和运算得到的更新结果进行译码时的准确度。
本申请的一个实施例中,终端可以包括通信数据接收电路、更新结果确定电路、更新结果矫正电路和译码电路,其中,
上述通信数据接收电路,用于接收终端发送的通信数据;
上述更新结果确定电路,用于采用最小和译码算法对上述通信数据进行译码,获得译码过程中各校验节点包括的各第一元素的更新结果;
上述更新结果矫正电路,用于基于最小和运算与双曲运算之间的运算结果误差,矫正上述更新结果,得到矫正结果;
上述译码电路,用于基于上述矫正结果,对上述通信数据进行译码,得到上述原始通信数据。
这样,终端通过运行上述各类电路,可以执行本申请实施例提供的译码方案进行译码。上述译码过程中,得到第一元素的更新结果后,考虑了最小和运算与双曲运算之间的运算结果误差,基于上述运算结果误差对于更新结果进行了矫正,通过上述矫正,能够使得基于最小和运算的得到的更新结果趋近于基于双曲运算的得到的运算结果,从而减弱或者消除最小和运算相对于双曲之间的运算结果误差,使得矫正后得到的矫正结果相较于初始的更新结果准确度更高,进而提高了基于矫正结果进行译码的准确度。
再者,由于本申请实施例提供的译码方案是基于最小和运算进行译码的,而最小和运算是双曲运算的简化运算,计算复杂度较低,因此整个译码流程的效率较高。可见,本申请实施例提供的译码方案可以在保证较高的译码效率的同时,提高译码的准确度。
本申请的一个实施例中,上述更新结果确定电路,具体用于针对每一校验节点中包括的每一第一元素,对中间结果和目标元素进行最小和运算,得到该第一元素的更新结果,其中,上述中间结果为:上一次最小和运算得到的运算结果,上述中间结果的初始值为:该校验节点中包括的第一个第二元素与第二个第二元素的最小和运算的运算结果,上述第二元素为:该校验节点中除该第一元素外的元素,上述目标元素为:位于上一参与最小和运算的第二元素之后的第二元素,上述第一元素和第二元素的取值不为预设的目标取值。
这样,终端通过运行更新结果确定电路,可以将多元最小和运算拆解为多个二元最小和运算的嵌套,采用分而治之的方式提高了获得第一元素更新结果的效率。
本申请的一个实施例中,上述更新结果确定电路,包括:
最小值确定子电路,用于确定上述中间结果的绝对值与目标第二元素的绝对值之间的最小值;符号异或电路,用于计算上述中间结果的符号与目标第二元素的符号之间的异或值;
上述更新结果矫正电路,包括:
矫正子电路,用于基于矫正曲线矫正上述最小值,其中,上述矫正曲线基于最小和运算与双曲运算之间的运算结果误差获得;结果获得电路,用于基于矫正后的最小值和上述异或值,得到矫正结果。
参见图14,为本申请实施例提供的一种译码模块的示意图。
其中,x1和x2分别表示前文的中间结果和目标元素,左侧分支中,先对x1、x2取绝对值,再取上述绝对值之间的最小值,(2y-f(y))的查找表表示用于实现(2y-f(y))的电路,其中,f(y)表示矫正曲线的曲线函数,可见,这样相当于基于矫正曲线将上述绝对值之间的最小值进行了矫正;右侧分支中,先取x1、x2的正负号,再计算上述正负号的异或值。最后,再进行赋予符号(Assign Sign),也就是为矫正后的最小值赋予与上述异或值表征的正负号,得到的输出就是第一元素最终的更新结果。
并且,按LUT实现上述译码模块时,其实现的代价较小,仅仅需要增加一个查找表。需要指出的时,该查找表可以将2y-f(y)这个整体作为一个函数进行LUT实现。
由以上可见,采用本申请实施例提供的译码模块对第一元素进行更新时,将更新时涉及的多元最小和运算拆分为了多个二元最小和运算,并且,针对每一二元最小和运算,都通过矫正曲线对运算过程中涉及的最小值进行了矫正,矫正后的结果会作为中间结果进行后续二元最小和运算。这样,通过多次嵌套矫正,提高了矫正效果,进一步提高了所得更新结果的准确度。
本申请实施例中所涉及的用户信息均为用户已授权的信息,用户信息的获取、存储、使用、加工、传输、提供和公开等处理,均符合相关法律法规的规定,且不违背公序良俗。
具体实现中,本申请还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,其中,在上述程序运行时控制上述计算机可读存储介质所在设备执行上述实施例中的部分或全部步骤。上述的存储介质可为磁碟、光盘、只读存储器(Read-Only Memory,ROM)或随机存储器(Random Access Memory,RAM)等。
具体实现中,本申请实施例还提供了一种计算机程序产品,上述计算机程序产品包含可执行指令,当所述可执行指令在终端上执行时,使得终端执行上述方法实施例中的部分或全部步骤。
具体实现中,本申请实施例还提供了一种译码器,所述译码器用于实现前述译码方法。
具体实现中,本申请实施例还提供了一种终端,包括:
一个或多个处理器、存储器和上述译码器;
所述存储器与所述一个或多个处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,所述一个或多个处理器调用所述计算机指令以使得所述终端基于所述译码器执行前述译码方法。
如图15所示,本申请还提供了一种芯片系统,该芯片系统应用于终端100,芯片系统包括一个或多个处理器1501,处理器1501用于调用计算机指令以使得终端100将待处理的数据输入芯片系统,芯片系统基于本申请实施例提供的译码方法进行译码。
在一种可能的实现方式中,芯片系统还包括输入和输出接口,用于输入和输出数据。
本申请公开的机制的各实施例可以被实现在硬件、软件、固件或这些实现方法的组合中。本申请的实施例可实现为在可编程系统上执行的计算机程序或程序代码,该可编程系统包括至少一个处理器、存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。
可将程序代码应用于输入指令,以执行本申请描述的各功能并生成输出信息。可以按已知方式将输出信息应用于一个或多个输出设备。为了本申请的目的,处理系统包括具有诸如例如数字信号处理器(Digital Signal Processor,DSP)、微控制器、专用集成电路(Application Specific Integrated Circuit ,ASIC)或微处理器之类的处理器的任何系统。
程序代码可以用高级程序化语言或面向对象的编程语言来实现,以便与处理系统通信。在需要时,也可用汇编语言或机器语言来实现程序代码。事实上,本申请中描述的机制不限于任何特定编程语言的范围。在任一情形下,该语言可以是编译语言或解释语言。
在一些情况下,所公开的实施例可以以硬件、固件、软件或其任何组合来实现。所公开的实施例还可以被实现为由一个或多个暂时或非暂时性机器可读(例如,计算机可读)存储介质承载或存储在其上的指令,其可以由一个或多个处理器读取和执行。例如,指令可以通过网络或通过其他计算机可读介质分发。因此,机器可读介质可以包括用于以机器(例如,计算机)可读的形式存储或传输信息的任何机制,包括但不限于,软盘、光盘、光碟、光盘只读存储器(Compact Disc Read Only Memory,CD-ROMs)、磁光盘、只读存储器、随机存储器、可擦除可编程只读存储器(Erasable Programmable Read Only Memory ,EPROM)、电可擦除可编程只读存储器(ElectricallyErasable Programmable Read Only Memory ,EEPROM)、磁卡或光卡、闪存、或用于利用因特网以电、光、声或其他形式的传播信号来传输信息(例如,载波、红外信号数字信号等)的有形的机器可读存储器。因此,机器可读介质包括适合于以机器(例如,计算机)可读的形式存储或传输电子指令或信息的任何类型的机器可读介质。
在附图中,可以以特定布置和/或顺序示出一些结构或方法特征。然而,应该理解,可能不需要这样的特定布置和/或排序。而是,在一些实施例中,这些特征可以以不同于说明书附图中所示的方式和/或顺序来布置。另外,在特定图中包括结构或方法特征并不意味着暗示在所有实施例中都需要这样的特征,并且在一些实施例中,可以不包括这些特征或者可以与其他特征组合。
需要说明的是,本申请各设备实施例中提到的各单元/模块都是逻辑单元/模块,在物理上,一个逻辑单元/模块可以是一个物理单元/模块,也可以是一个物理单元/模块的一部分,还可以以多个物理单元/模块的组合实现,这些逻辑单元/模块本身的物理实现方式并不是最重要的,这些逻辑单元/模块所实现的功能的组合才是解决本申请所提出的技术问题的关键。此外,为了突出本申请的创新部分,本申请上述各设备实施例并没有将与解决本申请所提出的技术问题关系不太密切的单元/模块引入,这并不表明上述设备实施例并不存在其它的单元/模块。
需要说明的是,在本专利的示例和说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
虽然通过参照本申请的某些优选实施例,已经对本申请进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本申请的精神和范围。

Claims (22)

1.一种译码方法,其特征在于,所述方法包括:
接收终端发送的通信数据,所述通信数据包括:所述终端对原始通信数据进行编码后得到的低密度奇偶校验码LDPC;
采用最小和译码算法对所述通信数据进行译码,获得译码过程中各校验节点包括的各第一元素的更新结果,其中,所述更新结果通过对第一元素的取值进行更新得到,第一元素的初始取值基于所述LDPC码字的信道似然比确定;
基于最小和运算与双曲运算之间的运算结果误差,矫正所述更新结果,得到矫正结果,其中,所述最小和运算为:最小和译码算法中用于获得校验节点的元素更新结果的运算,所述双曲运算为:置信度传播译码算法中用于获得校验节点的元素更新结果的运算;
基于所述矫正结果,对所述通信数据进行译码,得到所述原始通信数据。
2.根据权利要求1所述的方法,其特征在于,所述采用最小和译码算法对所述通信数据进行译码,获得译码过程中各校验节点中包括的各第一元素的更新结果,包括:
针对每一校验节点中包括的每一第一元素,对中间结果和目标元素进行最小和运算,得到该第一元素的更新结果,其中,所述中间结果为:上一次最小和运算得到的运算结果,所述中间结果的初始值为:该校验节点中包括的第一个第二元素与第二个第二元素的最小和运算的运算结果,所述第二元素为:该校验节点中除该第一元素外的元素,所述目标元素为:位于上一参与最小和运算的第二元素之后的第二元素,所述第一元素和第二元素的取值不为预设的目标取值。
3.根据权利要求2所述的方法,其特征在于,在所述基于所述矫正结果,对所述通信数据进行译码之前,还包括:
判断所述目标元素是否为校验节点中包括的最后一个第二元素;
若为是,执行所述基于所述矫正结果,对所述通信数据进行译码的步骤;
若为否,将所述中间结果更新为所述矫正结果,返回所述对中间结果和目标元素进行最小和运算,得到该第一元素的更新结果的步骤。
4.根据权利要求2所述的方法,其特征在于,所述更新结果包括:中间结果的绝对值与目标元素的绝对值之间的最小值、中间结果的正负号与目标元素的正负号之间的异或值;
所述基于最小和运算与双曲运算之间的运算结果误差,矫正所述更新结果,得到矫正结果,包括:
基于最小和运算与双曲运算之间的运算结果误差,矫正所述更新结果中包括的最小值;
基于矫正后的最小值和所述异或值,得到矫正结果。
5.根据权利要求4所述的方法,其特征在于,所述基于最小和运算与双曲运算之间的运算结果误差,矫正所述更新结果中包括的最小值,包括:
基于矫正曲线矫正所述更新结果中包括的最小值,其中,所述矫正曲线基于最小和运算与双曲运算之间的运算结果误差获得。
6.根据权利要求5所述的方法,其特征在于,所述矫正曲线按照以下方式构建得到:
获得针对相同输入集合的最小和运算的第一运算结果以及双曲运算的第二运算结果;
根据所述第一运算结果和第二运算结果的分布信息,确定所述最小和运算相较于双曲运算的运算结果偏移;
对所述运算结果偏移进行曲线拟合,得到所述矫正曲线。
7.根据权利要求6所述的方法,其特征在于,根据所述第一运算结果和第二运算结果的分布信息,确定所述最小和运算相较于双曲运算的运算结果偏移,包括:
以针对同一输入的第一运算结果为纵坐标、第二运算结果为横坐标绘制坐标点,获得反映最小和运算相较于双曲运算的运算结果偏移的点群;
确定所述点群中与目标直线之间的距离大于预设距离的目标点,其中,所述目标直线为:穿过原点且斜率为1的直线;
获得反映所述最小和运算相较于双曲运算的运算结果偏移的目标点群,其中,所述目标点群中包括所述目标点。
8.根据权利要求7所述的方法,其特征在于,
所述矫正曲线贯穿所述目标点群,所述矫正曲线用于缩小大于0的元素,放大小于0的元素。
9.根据权利要求7所述的方法,其特征在于,所述对所述运算结果偏移进行曲线拟合,得到所述矫正曲线,包括:
确定2条贯穿所述目标点群的边界直线,其中,所述边界直线的斜率为1且截距绝对值相同;
确定权重曲线,其中,所述权重曲线的曲线函数的函数值在自变量无穷大时趋近于1、自变量负无穷大时趋近于0;
基于所述边界直线和权重曲线,构建所述矫正曲线。
10.根据权利要求9所述的方法,其特征在于,所述基于所述边界直线和权重曲线,构建所述矫正曲线,包括:
按照以下表达式构建所述矫正曲线
;
其中,表示所述权重曲线,/>、/>表示所述边界直线。
11.根据权利要求5所述的方法,其特征在于,所述基于矫正曲线矫正所述更新结果中包括的最小值,包括:
按照以下表达式矫正所述更新结果包括的最小值
;
其中,表示矫正后的最小值,/>表示所述矫正曲线的曲线函数。
12.根据权利要求1所述的方法,其特征在于,接收通信数据的终端内部署有通信数据接收电路、更新结果确定电路、更新结果矫正电路和译码电路,其中,
所述通信数据接收电路,用于接收终端发送的通信数据;
所述更新结果确定电路,用于采用最小和译码算法对所述通信数据进行译码,获得译码过程中各校验节点包括的各第一元素的更新结果;
所述更新结果矫正电路,用于基于最小和运算与双曲运算之间的运算结果误差,矫正所述更新结果,得到矫正结果;
所述译码电路,用于基于所述矫正结果,对所述通信数据进行译码,得到所述原始通信数据。
13.根据权利要求12所述的方法,其特征在于,
所述更新结果确定电路,具体用于针对每一校验节点中包括的每一第一元素,对中间结果和目标元素进行最小和运算,得到该第一元素的更新结果,其中,所述中间结果为:上一次最小和运算得到的运算结果,所述中间结果的初始值为:该校验节点中包括的第一个第二元素与第二个第二元素的最小和运算的运算结果,所述第二元素为:该校验节点中除该第一元素外的元素,所述目标元素为:位于上一参与最小和运算的第二元素之后的第二元素,所述第一元素和第二元素的取值不为预设的目标取值。
14.根据权利要求13所述的方法,其特征在于,
所述更新结果确定电路,包括:
最小值确定子电路,用于确定所述中间结果的绝对值与目标第二元素的绝对值之间的最小值;符号异或电路,用于计算所述中间结果的符号与目标第二元素的符号之间的异或值;
所述更新结果矫正电路,包括:
矫正子电路,用于基于矫正曲线矫正所述最小值,其中,所述矫正曲线基于最小和运算与双曲运算之间的运算结果误差获得;结果获得电路,用于基于矫正后的最小值和所述异或值,得到矫正结果。
15.根据权利要求1-14中任一项所述的方法,其特征在于,所述基于所述矫正结果,对所述通信数据进行译码,得到所述原始通信数据,包括:
基于所述矫正结果进行译码判决,得到待验证的译码结果;
基于预设的校验矩阵对所述译码结果进行验证,得到验证结果;
基于验证结果,确定所述原始通信数据。
16.根据权利要求15所述的方法,其特征在于,所述基于预设的校验矩阵对所述译码结果进行验证,得到验证结果,包括:
计算所述校验矩阵与所述译码结果之积;
若计算结果为0,则确定验证结果为验证成功;
否则,则确定验证结果为验证失败。
17.根据权利要求16所述的方法,其特征在于,所述基于验证结果,确定所述原始通信数据,包括:
若所述验证结果为验证成功,则将所述译码结果确定为原始通信数据;
若所述验证结果为验证失败,则基于所述译码结果,对各变量节点进行更新,返回所述获得译码过程中各校验节点中包括的各第一元素的更新结果的步骤,直至达到最大迭代次数,将达到最大迭代次数时得到的译码结果确定为原始通信数据。
18.一种译码器,其特征在于,所述译码器用于实现权利要求1-17中任一项所述的方法。
19.一种终端,其特征在于,包括:
一个或多个处理器、存储器以及权利要求18所述的译码器;
所述存储器与所述一个或多个处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,所述一个或多个处理器调用所述计算机指令以使得所述终端基于所述译码器执行权利要求1-17中任一项所述的方法。
20.一种计算机可读存储介质,其特征在于,包括计算机程序,当所述计算机程序在终端上运行时,使得所述终端执行权利要求1-17中任一项所述的方法。
21.一种计算机程序产品,其特征在于,所述计算机程序产品包含可执行指令,当所述可执行指令在终端上执行时,使得终端执行权利要求1-17中任一项所述的方法。
22.一种芯片系统,其特征在于,所述芯片系统应用于终端,所述芯片系统包括一个或多个处理器,所述处理器用于调用计算机指令以使得所述终端将通信数据输入芯片系统,并执行权利要求1-17中任一项所述的方法对通信数据进行译码后输出原始通信数据。
CN202410166235.1A 2024-02-06 2024-02-06 一种译码方法、终端、存储介质及程序产品 Active CN117792406B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410166235.1A CN117792406B (zh) 2024-02-06 2024-02-06 一种译码方法、终端、存储介质及程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410166235.1A CN117792406B (zh) 2024-02-06 2024-02-06 一种译码方法、终端、存储介质及程序产品

Publications (2)

Publication Number Publication Date
CN117792406A true CN117792406A (zh) 2024-03-29
CN117792406B CN117792406B (zh) 2024-06-07

Family

ID=90381943

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410166235.1A Active CN117792406B (zh) 2024-02-06 2024-02-06 一种译码方法、终端、存储介质及程序产品

Country Status (1)

Country Link
CN (1) CN117792406B (zh)

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030074626A1 (en) * 2001-08-01 2003-04-17 International Business Machines Corporation Decoding low density parity check codes
US20090282316A1 (en) * 2008-05-07 2009-11-12 Texas Instruments Incorporated Memory Access in Low-Density Parity Check Decoders
US9590658B1 (en) * 2013-08-01 2017-03-07 SK Hynix Inc. High-speed low-power LDPC decoder design
US9813080B1 (en) * 2013-03-05 2017-11-07 Microsemi Solutions (U.S.), Inc. Layer specific LDPC decoder
US10230396B1 (en) * 2013-03-05 2019-03-12 Microsemi Solutions (Us), Inc. Method and apparatus for layer-specific LDPC decoding
CN110830050A (zh) * 2019-11-27 2020-02-21 武汉虹信通信技术有限责任公司 一种ldpc译码方法、系统、电子设备及存储介质
CN112165334A (zh) * 2020-09-16 2021-01-01 深圳航天科技创新研究院 一种基于fpga的多元ldpc高速译码器及译码方法
WO2021204163A1 (zh) * 2020-04-10 2021-10-14 北京邮电大学 原模图低密度奇偶校验码的自学习译码方法及其相关设备
WO2022160848A1 (zh) * 2021-02-01 2022-08-04 福州大学 基于功率分配的noma两用户下行链路的译码方法
CN116915568A (zh) * 2023-09-12 2023-10-20 荣耀终端有限公司 频偏估计方法、设备以及存储介质
WO2023217446A1 (fr) * 2022-05-12 2023-11-16 Airbus Defence And Space Sas Optimisation du calcul des messages de controle de parite dans un processus de decodage ldpc du type min-sum

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030074626A1 (en) * 2001-08-01 2003-04-17 International Business Machines Corporation Decoding low density parity check codes
US20090282316A1 (en) * 2008-05-07 2009-11-12 Texas Instruments Incorporated Memory Access in Low-Density Parity Check Decoders
US9813080B1 (en) * 2013-03-05 2017-11-07 Microsemi Solutions (U.S.), Inc. Layer specific LDPC decoder
US10230396B1 (en) * 2013-03-05 2019-03-12 Microsemi Solutions (Us), Inc. Method and apparatus for layer-specific LDPC decoding
US9590658B1 (en) * 2013-08-01 2017-03-07 SK Hynix Inc. High-speed low-power LDPC decoder design
CN110830050A (zh) * 2019-11-27 2020-02-21 武汉虹信通信技术有限责任公司 一种ldpc译码方法、系统、电子设备及存储介质
WO2021204163A1 (zh) * 2020-04-10 2021-10-14 北京邮电大学 原模图低密度奇偶校验码的自学习译码方法及其相关设备
CN112165334A (zh) * 2020-09-16 2021-01-01 深圳航天科技创新研究院 一种基于fpga的多元ldpc高速译码器及译码方法
WO2022160848A1 (zh) * 2021-02-01 2022-08-04 福州大学 基于功率分配的noma两用户下行链路的译码方法
WO2023217446A1 (fr) * 2022-05-12 2023-11-16 Airbus Defence And Space Sas Optimisation du calcul des messages de controle de parite dans un processus de decodage ldpc du type min-sum
CN116915568A (zh) * 2023-09-12 2023-10-20 荣耀终端有限公司 频偏估计方法、设备以及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
刘浩东: ""面向5G通信系统的自适应调制编码技术研究"", 《中国优秀博硕士学位论文全文数据库(硕士)信息科技辑》, 15 July 2023 (2023-07-15), pages 1 - 75 *

Also Published As

Publication number Publication date
CN117792406B (zh) 2024-06-07

Similar Documents

Publication Publication Date Title
CN110363279B (zh) 基于卷积神经网络模型的图像处理方法和装置
US11599979B2 (en) Method and apparatus for video super resolution using convolutional neural network with two-stage motion compensation
TWI808987B (zh) 將相機與陀螺儀融合在一起的五維視頻穩定化裝置及方法
US10750195B2 (en) Electronic device and method for encoding image data therein
CN107909583B (zh) 一种图像处理方法、装置及终端
US11710221B2 (en) Apparatus and method for successive multi-frame image denoising
KR20200067704A (ko) 저-밀도 패리티-체크(ldpc) 코드에 대한 오프셋 최적화 장치 및 방법
US11954833B2 (en) Electronic device for supporting machine learning-based image processing
US20160029027A1 (en) Device and method for processing image
CN117792406B (zh) 一种译码方法、终端、存储介质及程序产品
US20230274389A1 (en) Method for providing image and electronic device for supporting same
US20230101888A1 (en) Electronic device performing image stabilization and operating method thereof
CN109559319B (zh) 一种法线贴图的处理方法及终端
KR20200084687A (ko) 비이진 폴라 코드를 수신하는 장치 및 이의 디코딩 방법
CN116703729B (zh) 一种图像处理方法、终端、存储介质及程序产品
CN117689611B (zh) 质量预测网络模型生成方法、图像处理方法及电子设备
US20230412920A1 (en) Method for executing application, and electronic device supporting same
WO2021244604A1 (en) Visual-based relocalization method, and electronic device
CN118037608B (zh) 一种人脸矫正模型的训练方法、姿态矫正方法及相关产品
US11405521B2 (en) Electronic device for processing file including multiple related pieces of data
CN117879620B (zh) 译码方法、可读存储介质、程序产品及电子设备
US20230137831A1 (en) Electronic device for improving image quality
US11962911B2 (en) Electronic device for performing image processing and operation method thereof to reduce artifacts in an image captured by a camera through a display
WO2024124485A1 (zh) 三维人体重建方法、装置、设备及存储介质
US20240121512A1 (en) Method and electronic device for controlling camera

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant