CN111435838B - 译码方法、装置及设备 - Google Patents

译码方法、装置及设备 Download PDF

Info

Publication number
CN111435838B
CN111435838B CN201910030881.4A CN201910030881A CN111435838B CN 111435838 B CN111435838 B CN 111435838B CN 201910030881 A CN201910030881 A CN 201910030881A CN 111435838 B CN111435838 B CN 111435838B
Authority
CN
China
Prior art keywords
decoding
decoding result
bits
decoded
information
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.)
Active
Application number
CN201910030881.4A
Other languages
English (en)
Other versions
CN111435838A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201910030881.4A priority Critical patent/CN111435838B/zh
Publication of CN111435838A publication Critical patent/CN111435838A/zh
Application granted granted Critical
Publication of CN111435838B publication Critical patent/CN111435838B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1108Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Probability & Statistics with Applications (AREA)
  • Error Detection And Correction (AREA)

Abstract

本申请实施例提供一种译码方法、装置及设备,该方法包括:获取待译码信息;获取待译码信息的第一译码结果;在确定所述第一译码结果错误时,根据神经网络确定所述第一译码结果的M个待翻转比特,所述M为大于或等于1的整数;根据所述M个待翻转比特和所述待译码信息,更新所述第一译码结果,得到所述待译码信息的译码结果。降低了译码复杂度。

Description

译码方法、装置及设备
技术领域
本申请涉及通信技术领域,尤其涉及一种译码方法、装置及设备。
背景技术
在通信技术领域,通信设备(例如终端设备、基站等)可以通过极化码(Polar码)的方式进行信道编码和译码。
在现有技术中,可以通过神经网络对极化码进行直接译码。在通过神经网络对极化码进行译码之前,需要确定全码本中每个序列对应的样本数据,并对全码本中每个序列对应的样本数据进行训练以得到神经网络。例如,假设码长为4,则需要确定全码本中24(0000、0001、……、1111)个序列中每个序列对应的样本数据,并对每个序列对应的样本数据进行训练以得到神经网络。当极化码的码长较长时,需要训练的样本数量非常大,使得训练神经网络的复杂度高,导致译码的复杂度较高。
发明内容
本申请提供一种译码方法、装置及设备,降低了译码复杂度。
第一方面,本申请实施例提供一种译码方法,该方法包括:获取待译码信息;获取待译码信息的第一译码结果;在确定第一译码结果错误时,根据神经网络确定第一译码结果的M个待翻转比特,M为大于或等于1的整数;根据M个待翻转比特和待译码信息,更新第一译码结果,得到待译码信息的译码结果。
在上述过程中,在获取到待译码信息之后,先获取待译码信息的第一译码结果,在确定第一译码结果错误时,根据神经网络确定第一译码结果的M个待翻转比特,并根据M个待翻转比特和待译码信息,更新第一译码结果,得到待译码信息的译码结果,使得译码结果具有较高的准确度。无需对全码本中每个序列对应的样本数据进行训练,降低了训练的样本数量,使得训练神经网络的复杂度较低,因此,在保证译码结果准确度的基础上,降低了译码复杂度。
在一种可能的实施方式中,根据M个待翻转比特和待译码信息,更新第一译码结果,得到待译码信息的译码结果,包括:
对第一译码结果中的目标待翻转比特进行翻转、以及对待译码信息中目标待翻转比特之后的信息进行译码,得到译码结果;其中,目标待翻转比特为M个待翻转比特中的至少一个。
在一种可能的实施方式中,当M等于1时;对第一译码结果中的目标待翻转比特进行翻转、以及对目标待翻转比特之后的信息比特进行译码,得到译码结果,包括:
对第一译码结果中的目标待翻转比特进行翻转,得到第二译码结果,目标待翻转比特为M个待翻转比特;对待译码信息中目标待翻转比特之后的信息进行译码,得到第一译码比特;将第二译码结果中目标待翻转比特之后的比特更新为第一译码比特,得到译码结果。
在上述过程中,通过预设译码算法可以快速的译码得到第一译码结果,在确定第一译码结果错误时,通过神经网络可以快速且准确的预测出第一译码结果中第一个待翻转比特,并对第一译码结果中第一个待翻转比特进行翻转、以及对第一个待翻转比特之后的信息进行重新译码,以得到译码结果,得到译码结果的准确性较高。无需对全码本中每个序列对应的样本数据进行训练,降低了训练的样本数量,使得训练神经网络的复杂度较低,因此,在保证译码结果准确度的基础上,降低了译码复杂度。
在一种可能的实施方式中,当M大于1,对第一译码结果中的目标待翻转比特进行翻转、以及对目标待翻转比特之后的信息比特进行译码,得到译码结果,包括:
对第一译码结果中的目标待翻转比特进行翻转,得到第三译码结果,目标待翻转比特为M个待翻转比特;对待译码信息中、最后一个目标待翻转比特之后的比特进行译码,得到第二译码比特;将第三译码结果中最后一个目标待翻转比特之后的比特更新为第二译码比特,得到译码结果。
在上述过程中,通过预设译码算法可以快速的译码得到第一译码结果,在确定第一译码结果错误时,通过神经网络可以快速且准确的预测出第一译码结果中前M个待翻转比特,并对第一译码结果中前M个待翻转比特进行翻转、以及对该M个待翻转比特中最后一个待翻转比特之后的信息进行重新译码,以得到译码结果,得到译码结果的准确性较高。无需对全码本中每个序列对应的样本数据进行训练,降低了训练的样本数量,使得训练神经网络的复杂度较低,因此,在保证译码结果准确度的基础上,降低了译码复杂度。
在一种可能的实施方式中,当M大于1时,对第一译码结果中的目标待翻转比特进行翻转、以及对目标待翻转比特之后的信息比特进行译码,得到译码结果,包括:
执行比特翻转操作,比特翻转操作包括:将M个待翻转比特中第一个未处理的待翻转比特确定为目标待翻转比特,并翻转目标待翻转比特,得到第四译码结果;
执行重译码操作,重译码操作包括:对待译码信息中目标待翻转比特之后的信息进行译码,得到第三译码比特;
执行更新操作,更新操作包括:将第四译码结果中目标待翻转比特之后的比特更新为第三译码比特,得到第五译码结果;
重复执行比特翻转操作、重译码操作和更新操作,直至第五译码结果正确、或者执行更新操作的次数等于M时,将第五译码结果确定为待译码信息的译码结果。
在该种可能的实施方式中,可以通过如下可行的实现方式得到第四译码结果:在执行更新操作的次数为0时,在第一译码结果中翻转目标待翻转比特,得到第四译码结果。在执行更新操作的次数大于0时,在执行上一次更新操作得到的第五译码结果中翻转目标待翻转比特,得到第四译码结果。
在上述过程中,通过预设译码算法可以快速的译码得到第一译码结果,在确定第一译码结果错误时,通过神经网络可以快速且准确的预测出第一译码结果中前M个待翻转比特,依次根据前M个待翻转比特对第一译码结果或者上一次更新操作得到的第五译码结果进行更新操作,直至确定得到正确的译码结果或者执行了M次更新操作,以得到译码结果,得到译码结果的准确性较高。无需对全码本中每个序列对应的样本数据进行训练,降低了训练的样本数量,使得训练神经网络的复杂度较低,因此,在保证译码结果准确度的基础上,降低了译码复杂度。
在该种可能的实施方式中,可以通过如下可行的实现方式得到第四译码结果:在第一译码结果中翻转目标待翻转比特,得到第四译码结果。
在上述过程中,通过预设译码算法可以快速的译码得到第一译码结果,在确定第一译码结果错误时,通过神经网络可以快速且准确的预测出第一译码结果中前M个待翻转比特,依次根据前M个待翻转比特对第一译码结果进行更新操作,直至确定得到正确的译码结果或者执行了M次更新操作,以得到译码结果,得到译码结果的准确性较高。无需对全码本中每个序列对应的样本数据进行训练,降低了训练的样本数量,使得训练神经网络的复杂度较低,因此,在保证译码结果准确度的基础上,降低了译码复杂度。
在一种可能的实施方式中,M个待翻转比特为第一译码结果中前M个待翻转的比特;或者,M个待翻转比特为第一译码结果中译码错误概率最大的M个比特。
在上述过程中,当M个待翻转比特为第一译码结果中前M个待翻转的比特,或者第一译码结果中译码错误概率最大的M个比特时,通过翻转M个待译码比特可以实现快速获取得到正确的译码结果,使得译码效率较高。
在一种可能的实施方式中,神经网络用于输出第一位置,第一位置为M个待翻转比特在第一译码结果中的位置。由于神经网络输出第一位置,使得根据第一位置可以在第一译码结果中快速确定出待翻转比特,使得译码效率较高。
在一种可能的实施方式中,获取待译码信息的第一译码结果,包括:通过预设译码算法对待译码信息进行译码,得到第一译码结果。根据预设译码算法可以快速得到第一译码结果,使得译码效率较高。
在一种可能的实施方式中,神经网络为根据多组样本数据学习得到的,每组样本数据包括一个样本待译码信息和样本待译码信息对应的样本待翻转比特,样本待翻转比特为通过预设译码算法对样本待译码信息译码错误的比特。
第二方面,本申请实施例提供一种译码装置,包括:
接收模块,用于获取待译码信息;
处理模块,用于获取待译码信息的第一译码结果;
所述处理模块还用于,在确定所述第一译码结果错误时,根据神经网络确定所述第一译码结果的M个待翻转比特,所述M为大于或等于1的整数;
所述处理模块还用于,根据所述M个待翻转比特和所述待译码信息,更新所述第一译码结果,得到所述待译码信息的译码结果。
在一种可能的实施方式中,所述处理模块具体用于:
对所述第一译码结果中的目标待翻转比特进行翻转、以及对所述待译码信息中所述目标待翻转比特之后的信息进行译码,得到所述译码结果;
其中,所述目标待翻转比特为所述M个待翻转比特中的至少一个。
在一种可能的实施方式中,所述M等于1;所述处理模块具体用于:
对所述第一译码结果中的所述目标待翻转比特进行翻转,得到第二译码结果,所述目标待翻转比特为所述M个待翻转比特;
对所述待译码信息中所述目标待翻转比特之后的信息进行译码,得到第一译码比特;
将所述第二译码结果中所述目标待翻转比特之后的比特更新为所述第一译码比特,得到所述译码结果。
在一种可能的实施方式中,所述M大于1;所述处理模块具体用于:
对所述第一译码结果中的所述目标待翻转比特进行翻转,得到第三译码结果,所述目标待翻转比特为所述M个待翻转比特;
对所述待译码信息中、最后一个目标待翻转比特之后的比特进行译码,得到第二译码比特;
将所述第三译码结果中所述最后一个目标待翻转比特之后的比特更新为所述第二译码比特,得到所述译码结果。
在一种可能的实施方式中,所述M大于1;所述处理模块具体用于:
执行比特翻转操作,所述比特翻转操作包括:将所述M个待翻转比特中第一个未处理的待翻转比特确定为目标待翻转比特,并翻转所述目标待翻转比特,得到第四译码结果;
执行重译码操作,所述重译码操作包括:对所述待译码信息中所述目标待翻转比特之后的信息进行译码,得到第三译码比特;
执行更新操作,所述更新操作包括:将所述第四译码结果中所述目标待翻转比特之后的比特更新为所述第三译码比特,得到第五译码结果;
重复执行所述比特翻转操作、所述重译码操作和所述更新操作,直至所述第五译码结果正确、或者执行所述更新操作的次数等于所述M时,将所述第五译码结果确定为所述待译码信息的译码结果。
在一种可能的实施方式中,所述处理模块具体用于:
在执行所述更新操作的次数为0时,在所述第一译码结果中翻转所述目标待翻转比特,得到所述第四译码结果
在执行所述更新操作的次数大于0时,在执行上一次更新操作得到的第五译码结果中翻转所述目标待翻转比特,得到所述第四译码结果。
在一种可能的实施方式中,所述处理模块具体用于:
在所述第一译码结果中翻转所述目标待翻转比特,得到所述第四译码结果。
在一种可能的实施方式中,所述M个待翻转比特为所述第一译码结果中前M个待翻转的比特;或者,所述M个待翻转比特为所述第一译码结果中译码错误概率最大的M个比特。
在一种可能的实施方式中,所述神经网络用于输出第一位置,所述第一位置为所述M个待翻转比特在所述第一译码结果中的位置。
在一种可能的实施方式中,所述处理模块具体用于:
通过预设译码算法对所述待译码信息进行译码,得到所述第一译码结果。
在一种可能的实施方式中,所述神经网络为根据多组样本数据学习得到的,每组样本数据包括一个样本待译码信息和所述样本待译码信息对应的样本待翻转比特,所述样本待翻转比特为通过所述预设译码算法对所述样本待译码信息译码错误的比特。
第三方面,本申请实施例提供一种译码装置,包括:存储器、处理器以及计算机程序,所述计算机程序存储在所述存储器中,所述处理器运行所述计算机程序执行如第一方面任一项所述的方法。
第四方面,本申请实施例提供一种存储介质,所述存储介质包括计算机程序,所述计算机程序用于实现如第一方面任一项所述的方法。
本申请实施例提供的译码方法、装置及设备,在获取到待译码信息之后,获取待译码信息的第一译码结果,在确定第一译码结果错误时,根据神经网络确定第一译码结果的M个待翻转比特,M为大于或等于1的整数,并根据M个待翻转比特和待译码信息,更新第一译码结果,得到待译码信息的译码结果,使得译码结果具有较高的准确度。在上述过程中,无需对全码本中每个序列对应的样本数据进行训练,降低了训练的样本数量,使得训练神经网络的复杂度较低,因此,在保证译码结果准确度的基础上,降低了译码复杂度。
附图说明
图1A为本申请实施例提供的通信系统的架构图;
图1B为本申请实施例提供的通信过程示意图;
图2为本申请实施例提供的编码示意图;
图3为本申请实施例提供的译码示意图;
图4A为本申请实施例提供的一种神经网络的结构示意图;
图4B为本申请实施例提供的一种神经网络的结构示意图;
图5为本申请实施例提供的节点的处理过程示意图;
图6为本申请实施例提供的译码方法的流程示意图;
图7为本申请提供的一种神经网络的结构示意图;
图8为本申请提供的另一种神经网络的结构示意图;
图9为本申请提供的另一种译码方法的流程示意图;
图10为本申请提供的另一种神经网络的结构示意图;
图11为本申请提供的另一种译码方法的流程示意图;
图12为本申请提供的又一种译码方法的流程示意图;
图13为本申请提供的再一种译码方法的流程示意图;
图14为本申请实施例提供的译码装置的结构示意图;
图15为本申请实施例提供的译码装置的硬件结构示意图。
具体实施方式
本申请实施例可以应用于各种采用Polar编码的领域,例如:数据存储领域、光网络通信领域,无线通信领域等等。其中,本申请实施例提及的无线通信系统包括但不限于:窄带物联网系统(Narrow Band-Internet of Things,NB-IoT)、Wimax、长期演进系统(LongTerm Evolution,LTE)以及下一代5G移动通信系统新空口(new radio,NR)的三大应用场景增强型移动宽带(enhanced Mobile Broad Band,eMBB)、超高可靠与低延迟的通信(UltraReliable Low Latency Communication,URLLC)以及大规模机器通信(massive Machine-Type Communications,mMTC)。当然,采用Polar编码的领域还可以为其它,本申请对此不作具体限定。
本申请涉及的通信装置主要包括网络设备或者终端设备。本申请中的发送设备可以为网络设备,则接收设备为终端设备。本申请中的发送设备为终端设备,则接收设备为网络设备。
在本申请实施例中,终端设备(terminal device)包括但不限于移动台(MobileStation,MS)、移动终端(Mobile Terminal,MT)、移动电话(Mobile Telephone,MT)、手机(handset)及便携设备(portable equipment)等,该终端设备可以经无线接入网(RadioAccess Network,RAN)与一个或多个核心网进行通信。例如,终端设备可以是移动电话(或称为“蜂窝”电话)、具有无线通信功能的计算机等,终端设备还可以是便携式、袖珍式、手持式、计算机内置的或者车载的移动装置或设备。
在本申请实施例中,网络设备可以是LTE系统中的演进型基站(Evolutional NodeB,eNB或eNodeB),或者,网络设备可以是5G通信系统中的gNB或者传输和接收点(transmission reception point,TRP)、微基站等,或者网络设备可以为中继站、接入点、车载设备、可穿戴设备以及未来演进的公共陆地移动网络(Public Land Mobile Network,PLMN)中的网络设备,或者在其他多种技术融合的网络中,或者在其他各种演进网络中的基站等。
图1A为本申请实施例提供的通信系统的架构图。请参见图1A,包括发送设备101和接收设备102。
可选的,当发送设备101为终端设备时,则接收设备102为网络设备。当发送设备101为网络设备时,则接收设备为终端设备。
请参见图1A,发送设备101包括编码器,从而发送设备101可以进行Polar编码并输出编码后序列。编码后序列经过调制(还可以进行速率匹配、交织等处理)后在信道上传输至接收设备102。接收设备102包括译码器,接收设备102可以接收发送设备101发送的信号,对接收到的信号进行译码。
需要说明的是,图1A只是以示例的形式示意一种通信系统的架构图,并非对通信系统的架构图的限定。
图1B为本申请实施例提供的通信过程示意图。请参见图1B,在通信过程中,当发送设备需要发送K个信息比特时,发送设备对K个信息比特和N-K个冻结比特进行Poplar码编码,得到N个编码比特,该N个编码比特经过调制(还可以进行速率匹配、交织等处理)之后在信道上传输至接收设备。在实际应用过程中,K小于或等于N。
下面,结合图2,通过具体示例对编码过程进行说明。图2为本申请实施例提供的编码示意图。请参见图2,待编码比特包括U0、U1、……、U7,其中,U0、U1、U2和U4为冻结比特,U3、U5、U6、和U7为信息比特,其中,U3、U5、U6、和U7为可靠度较高的比特。由图2可知,待编码序列(包括信息比特和冻结比特)为00000011,经过图2所示的编码之后,得到待发送比特序列,待发送比特序列为01010101。需要说明的是,图2只是以示例的形式示意一种编码过程,并非对编码过程进行的限定。
接收设备对接收到的信号进行解调等处理,得到待译码信息,待译码信息中包括N个待译码比特,待译码信息可以为一组对数似然比(Likelihood Rate,LLR)。接收设备对待译码信息进行Polar码译码,可选的,可以通过多种译码方法对接收到的一组LLR进行Polar码译码,例如,接收端可以采用比特翻转连续干扰消除(Flip Successive Cancellation,FLIP-SC)算法、串行抵消列表(Successive Cancellation List,SCL)算法等进行译码。在接收设备进行Polar码译码之后,得到第一译码结果,并判断第一译码结果是否正确。在确定第一译码结果正确时,则将第一译码结果确定为待译码信息的译码结果。在判断第一译码结果错误时,则通过神经网络预测第一译码结果的M个待翻转比特,并根据M个待翻转比特和待译码信息更新第一译码结果,得到待译码信息的译码结果。
下面,结合图3,通过具体示例对通过FLIP-SC算法进行译码的过程进行说明。图3为本申请实施例提供的译码示意图。在图3中,以待译码信息中包括4个信息比特为例进行说明。请参见图3,在首次对待译码信息进行译码之后得到的译码结果为0000,验证该译码结果错误,则在该译码结果中确定需要翻转的比特,假设确定得到第2个比特需要翻转,假设比特的起始位置(或者起始序号)为0,则对第2个比特进行翻转得到0010,并对待译码信息中第2个比特之后的信息进行重译码,假设重译码得到的译码比特为1,则将重译码得到的译码比特(1)更新至翻转后的译码结果(0010)中,得到译码结果0011。
在本申请实施例所示的译码方法中,先通过译码算法对待译码信息进行译码,得到第一译码结果,在确定第一译码结果错误时,再通过神经网络预测待翻转的比特,并通过待翻转的比特和待译码信息更新第一译码结果,得到待译码信息的译码结果,使得译码结果具有较高的准确度。在上述过程中,无需对全码本中每个序列对应的样本数据进行训练,降低了训练的样本数量,使得训练神经网络的复杂度较低,因此,在保证译码结果准确度的基础上,降低了译码复杂度。
为了便于对本申请的理解,首先,结合图4A-图4B所示的实施例,对神经网络的结构进行说明。
图4A为本申请实施例提供的一种神经网络的结构示意图。图4B为本申请实施例提供的一种神经网络的结构示意图。请参见图4A-图4B,神经网络包括输入层、隐藏层和输出层。
需要说明的是,图4B只是以示例的形式示意一种神经网络的结构,并非对神经网络的结构的限定。
请参见图4B,神经网络的每一层均包括多个神经元(下文简称节点),例如输出层包括节点1、节点2和节点3,隐藏层包括节点4、节点5、......、节点10,输出层包括节点11和节点12。神经网络中每个节点对数据的处理过程类似,下面,结合图5,对神经网络中任意一个节点的处理过程进行说明。
图5为本申请实施例提供的节点的处理过程示意图。请参见图5,节点通过如下公式对接收到的数据进行处理:f(a1ω1+a2ω2+…+anωn+b)。其中,a1,a2,…,an该节点的输入,ω1,ω2,…,ωn为每个输入对应的权重值,b为偏置项,该偏置项可以为预设值,f(·)为激活函数。
可选的,激活函数可以包括sigmoid函数、ReLU函数、tanh函数等,在实际应用过程中,可以根据实际需要设置神经网络中的激活函数,其中,
sigmoid函数可以为:
Figure BDA0001944190820000071
ReLU函数可以为:f(z)=max(0,z)。
tanh函数可以为:
Figure BDA0001944190820000072
训练神经网络的过程可以包括前向传播过程和反向传播过程。
在前向传播过程中,将样本数据输入至神经网络的输入层,该数据经过隐藏层到达输出层并输出结果。在样本数据经过每个节点时,节点根据上述公式f(a1ω1+a2ω2+…+anωn+b)对数据进行处理。初始时,神经网络中各节点对应的权重值为预设值。由于初始时设置的各节点的权重值可能不太合理,使得神经网络的实际输出与期望输出之间具有一定的误差(代价函数),因此,需要在反向传播过程中根据该误差对神经网络中各节点对应的权重值进行调整。可选的,可以通过最小均方差(Mean Square Error,MSE)、交叉熵(crossentropy)等表示代价函数,在实际应用过程中,可以根据实际需要设置代价函数。
在反向传播过程中,将神经网络的实际输出与期望输出之间误差输入至输出层,该数据经过输出层到达输出层。在反向传播过程中,通过反向传播算法(BackPropagation,BP)算法,从输出层、隐藏层至输入层,反向计算错误向量,逐层更新节点对应的权重值,并重复迭代上述过程,直至收敛时,得到每个节点的最优权重值。其中,BP算法是一种基于梯度下降算法的优化算法,梯度即为函数值上升最快方向的向量,显然梯度的反向就是函数值下降最快的方向,所以沿着梯度的反方向修改更新权重值,经过多轮迭代,即可找出当权重值取何值时可以使得代价函数取到极小值。
下面,以MSE为代价函数,激活函数为sigmoid函数为例,介绍BP算法中权重值更新公式的数学推导:
给定样本训练集(x,y),x为神经网络的输入,y为神经网络的输出。假设神经网络的输出为y=(y1,y2,…,y1),则样本的均方误差为:
Figure BDA0001944190820000081
其中,ti是样本对应于节点i的期望输出。
假设netj是节点j的加权输入,即
Figure BDA0001944190820000082
E是netj的函数,而netj是ωji的函数,根据链式求导法则,可得:
Figure BDA0001944190820000083
其中,xji代表节点i传递给节点j的输入值。对于
Figure BDA0001944190820000084
需要分输出层和隐藏层两种情况讨论。
对于输出层:
Figure BDA0001944190820000085
其中,
Figure BDA0001944190820000086
Figure BDA0001944190820000087
其中,
Figure BDA0001944190820000088
所以对于输出层,可得:
Figure BDA0001944190820000089
如果令
Figure BDA00019441908200000810
即一个节点的误差项δ是网络误差对这个节点输入的偏导数的相反数,带入上式,可得:
δj=(tj-yj)yj(1-yj)
对于隐藏层:
定义节点j所有下游节点集合
Figure BDA00019441908200000811
(例如,请参见图4,对于节点8来说,它的下游节点为11和12),由神经网络的结构可知,netj只能通过影响
Figure BDA00019441908200000812
来影响E,假设netk是节点j的下游节点的输入,则E是netj的函数,因为netj有多个,应用全导数公式,可以得到:
Figure BDA00019441908200000813
因为
Figure BDA00019441908200000814
带入上式可得:
Figure BDA00019441908200000815
其中,δj为节点j的误差项,δk为节点k的误差项,
Figure BDA00019441908200000816
即节点j的输出值。
权值更新公式为:
ωji=ωji+ηδjxji
其中,η为学习速率。
根据以上推导可以看出,梯度
Figure BDA0001944190820000092
(其中δ为误差项和激活函数求导后值的乘积取负数),所以权值更新公式可以总结为:
Figure BDA0001944190820000091
显然,梯度的反方向(δ取负数的原因)就是函数值下降最快的方向,所以当我们沿着梯度的反方向来修改ω,经过多轮迭代更新,即可试出当ω取何值时,使得代价函数的值极小。
下面,通过具体实施例对本申请所示的译码方法进行详细说明。需要说明的是,下面几个实施例可以独立,也可以相互结合,对于相同或相似的内容,在不同的实施例中不再进行重复说明。
图6为本申请实施例提供的译码方法的流程示意图。请参见图6,该方法可以包括:
S601、获取待译码信息。
可选的,在接收设备接收到发送设备发送的信息之后,对信息进行解调得到待译码信息。
可选的,待译码信息中可以包括2a个待译码比特,a为大于或等于1的正整数。
例如,待译码比特可以为LLR。
可选的,待译码信息中包括的比特个数与发送设备发送的比特的个数相同。
例如,假设发送设备发送的编码后的比特序列中包括2a个比特,则接收设备获取到的待译码信息中包括2a个待译码比特。
可选的,当发送设备发送的比特序列包含打孔、截断或者重复时,接收设备接收到的待译码信息中包括的待译码比特的个数可能大于或者小于2a,此时,接收设备可以通过速率匹配得到2a个待译码比特。
在接收设备中,译码器将待译码信息作为输入进行译码。
S602、获取待译码信息的第一译码结果。
可选的,可以通过预设译码算法对待译码信息进行译码,得到第一译码结果。
例如,预设译码算法可以为FLIP-SC算法、SCL算法等。
当然,预设译码算法还可以为其它,本申请实施例对此不作具体限定。
可选的,第一译码结果中包括多个译码比特,译码比特的数量与待译码信息中包括的待译码比特的数量相同。
例如,假设待译码信息中包括2a个待译码比特,则第一译码结果中包括2a个译码比特。
可选的,第一译码结果中的译码比特中包括译码得到的信息比特和冻结比特。第一译码结果中包括的信息比特的个数为发送设备的待编码序列中信息比特的个数和位置相同,第一译码结果中包括的冻结比特的个数与发送设备的待编码序列中冻结比特的个数和位置相同。
例如,假设发送设备的待编码序列中包括8个待编码比特,其中,第1、2、3、5个比特为冻结比特,第4、6、7、8个比特为信息比特。在经过发送设备的编码、以及接收设备的译码之后,假设接收设备得到第一译码结果,第一译码结果中包括8个译码比特,分别记为:U0、U1、U2、U3、U4、U5、U6、U7,则U0、U1、U2和U4为冻结比特,U3、U5、U6、和U7为信息比特。
S603、在确定第一译码结果错误时,根据神经网络确定第一译码结果的M个待翻转比特。
其中,M为大于或等于1的整数。
可选的,可以对第一译码结果进行循环冗余校验(Cyclic Redundancy Check,CRC),以判断第一译码结果是否正确。
可选的,还可以通过其它验证第一译码结果是否正确,例如,发送设备可以对待编码序列进行哈希运算,得到待编码序列的哈希值。在发送设备发送编码后的序列时,可以携带该哈希值。在接收设备经过译码得到第一译码结果之后,可以对第一译码结果进行哈希运算,得到第一译码结果的哈希值,并判断接收到的待编码序列的哈希值和第一译码结果的哈希值是否相同,若是,则确定第一译码结果正确,若否,则确定第一译码结果错误。
需要说明的是,还可以通过其它方式验证第一译码结果是否正确,本申请实施例对此不作具体限定。
可选的,待翻转比特为第一译码结果中的信息比特。
可选的,待翻转比特为神经网络预测的第一译码结果中译码错误的部分或全部比特,或者,待翻转比特为神经网络预测的第一译码结果中需要翻转的部分或全部比特。
M个待翻转比特可以为第一译码结果中所有需要翻转的比特。例如,假设第一译码结果中存在3个需要翻转的比特,则该M个待翻转比特可以为该3个需要翻转的比特。
M个待翻转比特可以为第一译码结果中需要翻转的比特中的一部分。例如,假设第一译码结果中存在3个需要翻转的比特,则该M个待翻转比特可以为该3个需要翻转的比特中的1个或2个。
可选的,M个待翻转比特为第一译码结果中前M个待翻转的比特。
例如,假设第一译码结果包括如下8个译码比特:U0、U1、U2、U3、U4、U5、U6和U7,且第一译码结果中的U2、U3和U5为待翻转的比特,当M等于2时,则M个待翻转比特为第一译码结果中前2个待翻转的比特:U2和U3。
可选的,M个待翻转比特为第一译码结果中译码错误概率最大的M个比特。
例如,可以根据第一译码结果中各比特对应的对数释然比确定译码错误概率,对数释然比的绝对值越小,译码错误概率越高。在通信过程中,不管发送设备发送比特1还是比特0,接收设备都可能误判。对于信号r,在接收设备正确判为0的概率p(r|b=0)与正确判为1的概率p(r|b=1)]的比值就是似然比。为了方便计算处理,对似然比取自然对数,则可以得到对数似然比,也即LLR=ln[p(r|b=0)/p(r|b=1)]。LLR可以是浮点数。
可选的,可以将待译码信息作为神经网络的输入,由神经网络对待译码信息进行处理,并输出第一位置,第一位置为M个待翻转比特在第一译码结果中的位置(或者序号)。
需要说明的是,在图7-图13所示的实施例中,对确定神经网络的过程进行说明,此处不再进行赘述。
S604、根据M个待翻转比特和待译码信息,更新第一译码结果,得到待译码信息的译码结果。
可选的,可以在M个待翻转比特中确定目标待翻转比特,并对第一译码结果中的目标待翻转比特进行翻转、以及对待译码信息中目标待翻转比特之后的信息进行译码,得到译码结果。
需要说明的是,当M的大小不同时,更新第一译码结果的过程也不相同。在图7-图13所示的实施例中对更新第一译码结果的过程进行详细说明,此处不再进行赘述。
本申请实施例提供的译码方法,在获取到待译码信息之后,获取待译码信息的第一译码结果,在确定第一译码结果错误时,根据神经网络确定第一译码结果的M个待翻转比特,M为大于或等于1的整数,并根据M个待翻转比特和待译码信息,更新第一译码结果,得到待译码信息的译码结果,使得译码结果具有较高的准确度。在上述过程中,无需对全码本中每个序列对应的样本数据进行训练,降低了训练的样本数量,使得训练神经网络的复杂度较低,因此,在保证译码结果准确度的基础上,降低了译码复杂度。
在上述任意一个实施例的基础上,下面结合图7-图13,对不同神经网络结构下的译码方法进行详细说明。
第一种可能的神经网络:神经网络的输出层包括1个节点,神经网络用于输出第一个待翻转比特的位置。
例如,该种可能的神经网络的结构可以如图7所示。图7为本申请提供的一种神经网络的结构示意图。请参见图7,神经网络的输入层的节点数为N,第一隐藏层的节点数为8N,第二隐藏层的节点数为4N,第三隐藏层的节点数为2N,输出层节点数为1。
可选的,神经网络的输入层的节点数N可以为待译码信息中包括的比特个数,在实际应用过程中,可以根据待译码信息中包括的比特个数设置神经网络的输入层包括的节点数N。
图7只是以示例的形式示意输入层和隐藏层,并非对输入层和隐藏层的限定,输入层的节点数、隐藏层的层数、以及各隐藏层包括的节点数还可以为其它,本申请实施例对此不作具体限定。
下面,对该种可能的神经网络的训练过程进行详细说明,可以包括如下两个过程:
过程一:确定多组样本数据。
通过预设算法对大量的待译码序列进行译码,以在大量的待译码序列中确定多组样本数据,待译码序列中包括的比特个数为N。针对大量待译码信息中的任意一个待译码序列,通过预设算法对该待译码序列进行译码,得到待译码序列的译码结果,判断译码结果是否正确,若是,则不将该待译码序列确定为样本待译码信息,或者,通过预设算法对该待译码序列进行重新译码;若否,则在该待译码序列的译码结果中确定第一个译码错误的比特在译码结果中的位置,将该待译码序列和该位置确定为一组样本数据。可选的,针对一个待译码序列,可以通过预设算法对该待译码序列进行多次译码,若通过预设算法对一个待译码序列进行P次译码错误,则对于该一个待译码序列,可以得到P组样本数据。
重复执行上述过程可以确定得到X组样本数据(yj,tj),yj为第j组样本数据中包括的样本待译码信息,tj为第j组样本数据中包括的样本待译码信息的第一个译码错误的比特的位置(或者位置序号),j=1,2,…,X。
过程二:根据多组样本数据训练神经网络。
将X组样本数据(yj,tj)中的yj输入至神经网络,例如,可以将该X组样本数据中的yj随机输入神经网络,也可以按照预设顺序依次将该X组样本数据中的yj输入神经网络。在训练l次之后,可以得到代价函数如下所示:
Figure BDA0001944190820000111
其中,l为总训练次数,ti为第i次训练的期望输出,ti′为第i次训练的实际输出。
可选的,神经网络的输出层中的每个节点的输出可能为浮点数,在输出层的每个节点输出结果之后,可以先将输出结果进行取整处理(例如,四舍五入处理),并将取整处理后的处理结果确定为tj′。
通过BP算法将e反向传播至输入层,经过多次迭代,神经网络中各节点对应的权重值发生更新,直至e趋于稳定时,该神经网络收敛。
第二种可能的神经网络:神经网络的输出层包括int[log2K]个节点,神经网络用于输出第一个待翻转比特的位置,其中,K为待译码信息中包括的信息比特的个数,int[]为取整函数。
例如,该种可能的神经网络的结构可以如图8所示。图8为本申请提供的另一种神经网络的结构示意图。请参见图8,神经网络的输入层的节点数为N,第一隐藏层的节点数为8N,第二隐藏层的节点数为4N,第三隐藏层的节点数为2N,输出层节点数为int[log2K]。
可选的,神经网络的输入层的节点数N可以为待译码信息中包括的比特个数,在实际应用过程中,可以根据待译码信息中包括的比特个数设置神经网络的输入层包括的节点数N。
图8只是以示例的形式示意输入层和隐藏层,并非对输入层和隐藏层的限定,输入层的节点数、隐藏层的层数、以及各隐藏层包括的节点数还可以为其它,本申请实施例对此不作具体限定。
下面,对该种可能的神经网络的训练过程进行详细说明,可以包括如下两个过程:
过程一:确定多组样本数据。
通过预设算法对大量的待译码序列进行译码,以在大量的待译码序列中确定多组样本数据,待译码序列中包括的比特个数为N。针对大量待译码信息中的任意一个待译码序列,通过预设算法对该待译码序列进行译码,得到待译码序列的译码结果,判断译码结果是否正确,若是,则不将该待译码序列确定为样本待译码信息,或者,通过预设算法对该待译码序列进行重新译码;若否,则在该译码序列的译码结果中确定第一个译码错误的比特在译码结果中的位置,将该位置转换为长度为int[log2K]的二进制表达式,并将该待译码序列和该二进制表达式确定为一组样本数据。可选的,针对一个待译码序列,可以通过预设算法对该待译码序列进行多次译码,若通过预设算法对一个待译码序列进行P次译码错误,则对于该一个待译码序列,可以得到P组样本数据。
重复执行上述过程可以确定得到X组样本数据
Figure BDA0001944190820000126
yj为第j组样本数据中包括的样本待译码信息,
Figure BDA0001944190820000127
为第j组样本数据中包括的样本待译码信息的第一个译码错误的比特的位置(或者位置序号)的二进制表达式,j=1,2,…,X。
过程二:根据多组样本数据训练神经网络。
将X组样本数据
Figure BDA0001944190820000121
中的yj输入至神经网络,例如,可以将该X组样本数据中的yj随机输入神经网络,也可以按照预设顺序依次将该X组样本数据中的yj输入神经网络。在训练1次之后,可以得到代价函数如下所示:
Figure BDA0001944190820000122
其中,1为总训练次数,
Figure BDA0001944190820000123
为第i次训练的期望输出,
Figure BDA0001944190820000124
为第i次训练的实际输出。
可选的,神经网络的输出层中的每个节点的输出可能为浮点数,在输出层的每个节点输出结果之后,可以先对输出结果进行四舍五入或其它处理,将输出结果转换为0或1,并根据转换后的0或1得到
Figure BDA0001944190820000125
例如,当输出层的节点的输出结果在0至1之间时,则可以对输出结果进行四舍五入、取整等处理得到0或1。当输出层的节点的部分输出结果大于1或者小于0时,则可以对输出结果进行归一化处理等,得到0或1。
通过BP算法将e反向传播至输入层,经过多次迭代,神经网络中各节点对应的权重值发生更新,直至e趋于稳定时,该神经网络收敛。
在第二种可能的神经网络中,激活函数可以采用sigmoid函数,sigmoid函数的值域区间为[0,1]。由于sigmoid函数的值域区间为[0,1],因此,在将输出层中的节点的输出转化为0或1时,可以使得输出层的实际输出与转换后的0或1之间的偏差较小,进而使得译码的准确性较高。
需要说明的是,在上述图7-图8所示的神经网络的结构下,神经网络还可以用于输出译码错误概率最大的比特的位置。相应的,在训练神经网络的过程中,确定得到的每组样本数据中包括样本待译码信息和样本待译码信息对应的译码错误概率最大的比特的位置。训练神经网络的过程可以参见上述第一种或第二种可能的神经网络,此处不再进行赘述。
在上述第一种可能的神经网络和第二种可能的神经网络的基础上,可以通过如下可行的实现方式译码,具体的,请参见图9所示的实施例。
图9为本申请提供的另一种译码方法的流程示意图。在图9所示的实施例中,以神经网络输出第一个待翻转比特的位置为例进行说明。请参见图9,该方法可以包括:
S901、获取待译码信息。
需要说明的是,S901的执行过程可以参见S601,此处不再进行赘述。
S902、通过预设译码算法对待译码信息进行译码,得到第一译码结果。
需要说明的是,S901的执行过程可以参见S601,此处不再进行赘述。
S903、判断第一译码结果是否译码正确。
若是,则执行S904。
若否,则执行S905-S908。
可选的,可以对第一译码结果进行CRC校验,以判断第一译码结果是否正确。
S904、将第一译码结果确定为待译码信息的译码结果。
S905、将待译码信息输入至神经网络,使得神经网络输出一个第一位置。
其中,第一位置为第一译码结果中第一个待翻转比特的位置。
可选的,在第一种可能的神经网络结构下,神经网络输出一个浮点数,对该一个浮点数进行四舍五入处理,得到一个整数,该整数表示第一位置。
可选的,在第二种可能的神经网络结构下,神经网络输出多个浮点数,将该多个浮点数分别进行四舍五入或其它处理后将每个浮点数转换为0或1,将该多个0和1组成的二进制序列转换成十进制,得到一个整数,该整数表示第一位置。
S906、对第一译码结果中目标待翻转比特进行翻转,得到第二译码结果。
其中,目标待翻转比特为第一译码结果中第一位置上的比特。
S907、对待译码信息中目标待翻转比特之后的信息进行译码,得到第一译码比特。
可选的,可以通过预设译码算法对待译码信息中目标待翻转比特之后的信息进行译码,得到第一译码比特。
S908、将第二译码结果中目标待翻转比特之后的比特更新为第一译码比特,得到待译码信息的译码结果。
可选的,可以将第二译码结果中目标待翻转比特之后的比特替换为第一译码比特,得到待译码信息的译码结果。
下面,通过具体示例,对图9所示的实施例进行详细说明。
示例性的,假设待译码信息中包括8个待译码比特,分别为L0、L1、L2、L3、L4、L5、L6和L7。
通过预设算法对待译码信息(L0至L7)进行译码,得到第一译码结果,假设第一译码结果为01000111。通过CRC校验,判断第一译码结果是否正确。
若判断第一译码结果正确,则确定待译码信息的译码结果为01000111。
若判断第一译码结果不正确,则将待译码信息(L0至L7)输入至神经网络。假设神经网络输出第一位置为3(假设起始位置为0),则对第一译码结果中第3位中的比特进行翻转,得到第二译码结果:01010111。再对待译码信息中第3位之后的信息(L4至L7)进行重新译码,得到第一译码比特:1101,则将第二译码结果(01010111)的后四位更新为第一译码比特(1101),得到待译码信息的译码结果:01011101。
在图9所示的实施例中,通过预设译码算法可以快速的译码得到第一译码结果,在确定第一译码结果错误时,通过神经网络可以快速且准确的预测出第一译码结果中第一个待翻转比特,并对第一译码结果中第一个待翻转比特进行翻转、以及对第一个待翻转比特之后的信息进行重新译码,以得到译码结果,得到译码结果的准确性较高。无需对全码本中每个序列对应的样本数据进行训练,降低了训练的样本数量,使得训练神经网络的复杂度较低,因此,在保证译码结果准确度的基础上,降低了译码复杂度。
第三种可能的神经网络:神经网络的输出层包括M个节点,神经网络用于输出第一译码结果中前M(M大于1)个待翻转的比特的位置。
例如,该种可能的神经网络的结构可以如图10所示。图10为本申请提供的另一种神经网络的结构示意图。请参见图10,神经网络的输入层的节点数为N,第一隐藏层的节点数为8N,第二隐藏层的节点数为4N,第三隐藏层的节点数为2N,输出层节点数为M。
可选的,神经网络的输入层的节点数N可以为待译码信息中包括的比特个数,在实际应用过程中,可以根据待译码信息中包括的比特个数设置神经网络的输入层包括的节点数N。
图10只是以示例的形式示意输入层和隐藏层,并非对输入层和隐藏层的限定,输入层的节点数、隐藏层的层数、以及各隐藏层包括的节点数还可以为其它,本申请实施例对此不作具体限定。
下面,对该种可能的神经网络的训练过程进行详细说明,可以包括如下两个过程:
过程一:确定多组样本数据。
通过预设算法对大量的待译码序列进行译码,以在大量的待译码序列中确定多组样本数据,待译码序列中包括的比特个数为N。针对大量待译码信息中的任意一个待译码序列,通过预设算法对该待译码序列进行译码,得到待译码序列的译码结果,判断译码结果是否正确,若是,则不将该待译码序列确定为样本待译码信息,或者,通过预设算法对该待译码序列进行重新译码;若否,则在该待译码序列的译码结果中确定前M个译码错误的比特在译码结果中的位置,并将该待译码序列和该M个位置确定为一组样本数据。可选的,针对一个待译码序列,可以通过预设算法对该待译码序列进行多次译码,若通过预设算法对一个待译码序列进行P次译码错误,则对于该一个待译码序列,可以得到P组样本数据。
重复执行上述过程可以确定得到X组样本数据(yj,tj 1~M),yj为第j组样本数据中包括的样本待译码信息,tj 1~M为第j组样本数据中包括的样本待译码信息的M个译码错误的比特的位置(或者位置序号),j=1,2,…,X。
过程二:根据多组样本数据训练神经网络。
将X组样本数据(yj,tj 1~M)中的yj输入至神经网络,例如,可以将该X组样本数据中的yj随机输入神经网络,也可以按照预设顺序依次将该X组样本数据中的yj输入神经网络。在训练l次之后,可以得到代价函数如下所示:
Figure BDA0001944190820000141
其中,l为总训练次数,tj 1~M为第i次训练的期望输出,(tj 1~M)′为第i次训练的实际输出。
可选的,神经网络的输出层中的每个节点的输出可能为浮点数,在输出层的每个节点输出结果之后,可以先将输出结果进行取整处理(例如,四舍五入处理),并将取整处理后的处理结果确定为tj 1~M
通过BP算法将e反向传播至输入层,经过多次迭代,神经网络中各节点对应的权重值发生更新,直至e趋于稳定时,该神经网络收敛。
需要说明的是,在上述图10所示的神经网络的结构下,神经网络还可以用于输出译码错误概率最大的M个比特的位置。相应的,在训练神经网络的过程中,确定得到的每组样本数据中包括样本待译码信息和样本待译码信息对应的译码错误概率最大的M个比特的位置。训练神经网络的过程可以参见上述第一种或第二种或第三种可能的神经网络,此处不再进行赘述。
在上述第三种可能的神经网络基础上,可以通过如下可行的实现方式译码,具体的,请参见图11-图13所示的实施例。
图11为本申请提供的另一种译码方法的流程示意图。在图11所示的实施例中,以神经网络输出前M个待翻转比特的位置为例进行说明。请参见图11,该方法可以包括:
S1101、获取待译码信息。
需要说明的是,S1101的执行过程可以参见S601,此处不再进行赘述。
S1102、通过预设译码算法对待译码信息进行译码,得到第一译码结果。
需要说明的是,S901的执行过程可以参见S601,此处不再进行赘述。
S1103、判断第一译码结果是否译码正确。
若是,则执行S1104。
若否,则执行S1105-S1108。
可选的,可以对第一译码结果进行CRC校验,以判断第一译码结果是否正确。
S1104、将第一译码结果确定为待译码信息的译码结果。
S1105、将待译码信息输入至神经网络,使得神经网络输出M个第一位置,M大于1。
其中,M个第一位置为第一译码结果中前M个待翻转比特的位置。
在实际应用过程中,可以根据实际需要设置M的大小,本申请对此不作具体限定。
S1106、对第一译码结果中目标待翻转比特进行翻转,得到第三译码结果。
其中,目标待翻转比特为第一译码结果中M个第一位置上的比特。
S1107、对待译码信息中、最后一个目标待翻转比特之后的比特进行译码,得到第二译码比特。
可选的,可以通过预设译码算法对待译码信息中、最后一个目标待翻转比特之后的比特进行译码,得到第二译码比特。
S1108、将第三译码结果中最后一个目标待翻转比特之后的比特更新为第二译码比特,得到译码结果。
可选的,可以将第三译码结果中最后一个目标待翻转比特之后的比特替换为第二译码比特,得到译码结果。
下面,通过具体示例,对图11所示的实施例进行详细说明。
示例性的,假设待译码信息中包括8个待译码比特,分别为L0、L1、L2、L3、L4、L5、L6和L7。
通过预设算法对待译码信息(L0至L7)进行译码,得到第一译码结果,假设第一译码结果为01000111。通过CRC校验,判断第一译码结果是否正确。
若判断第一译码结果正确,则确定待译码信息的译码结果为01000111。
若判断第一译码结果不正确,则将待译码信息(L0至L7)输入至神经网络。假设M为3,神经网络输出第一位置包括:2、3和5(假设起始位置为0),则对第一译码结果中第2、3和5位中的比特进行翻转,得到第三译码结果:01110011。再对待译码信息中第5位之后的信息(L6至L7)进行重新译码,得到第二译码比特:01,则将第三译码结果(01110011)的后2位更新为第二译码比特(01),得到待译码信息的译码结果:01110001。
在图11所示的实施例中,通过预设译码算法可以快速的译码得到第一译码结果,在确定第一译码结果错误时,通过神经网络可以快速且准确的预测出第一译码结果中前M个待翻转比特,并对第一译码结果中前M个待翻转比特进行翻转、以及对该M个待翻转比特中最后一个待翻转比特之后的信息进行重新译码,以得到译码结果,得到译码结果的准确性较高。无需对全码本中每个序列对应的样本数据进行训练,降低了训练的样本数量,使得训练神经网络的复杂度较低,因此,在保证译码结果准确度的基础上,降低了译码复杂度。
图12为本申请提供的又一种译码方法的流程示意图。在图12所示的实施例中,以神经网络输出前M个待翻转比特的位置为例进行说明。请参见图12,该方法可以包括:
S1201、获取待译码信息。
需要说明的是,S1201的执行过程可以参见S601,此处不再进行赘述。
S1202、通过预设译码算法对待译码信息进行译码,得到第一译码结果。
需要说明的是,S1201的执行过程可以参见S601,此处不再进行赘述。
S1203、判断第一译码结果是否译码正确。
若是,则执行S1204。
若否,则执行S1205-S1208。
可选的,可以对第一译码结果进行CRC校验,以判断第一译码结果是否正确。
S1204、将第一译码结果确定为待译码信息的译码结果。
S1205、将待译码信息输入至神经网络,使得神经网络输出M个第一位置,M大于1。
其中,M个第一位置为第一译码结果中前M个待翻转比特的位置。
在实际应用过程中,可以根据实际需要设置M的大小,本申请对此不作具体限定。
S1206、将M个待翻转比特中第一个未处理的待翻转比特确定为目标待翻转比特。
可选的,未处理的待翻转比特是指未进行翻转的待翻转比特。
S1207、获取执行更新操作的次数W。
初始时,W为0。
S1208、W为0时,在第一译码结果中翻转目标待翻转比特,得到第四译码结果,W大于0时,在第五译码结果中翻转目标待翻转比特,得到第四译码结果。
其中,第五译码结果为执行上一次更新操作得到的。
S1209、对待译码信息中目标待翻转比特之后的信息进行译码,得到第三译码比特。
可选的,可以通过预设译码算法对待译码信息中目标待翻转比特之后的信息进行译码,得到第三译码比特。
S1210、将第四译码结果中目标待翻转比特之后的比特更新为第三译码比特,得到第五译码结果。
可选的,将第四译码结果中目标待翻转比特之后的比特替换为第三译码比特,得到第五译码结果。
S1211、将执行更新操作的次数W加1。
初始时,W为0。
S1212、判断第五译码结果是否正确。
若是,则执行S1213。
若否,则执行S1214。
S1213、将第五译码结果确定为待译码信息的译码结果。
S1214、判断执行更新操作的次数W是否等于M。
若是,则执行S1215。
若否,则执行S1206。
S1215、译码失败。
可选的,在确定译码失败时,可以生成提示信息,或者将第五译码结果确定为待译码信息的译码结果。
下面,通过具体示例,对图12所示的实施例进行详细说明。
示例性的,假设待译码信息中包括8个待译码比特,分别为L0、L1、L2、L3、L4、L5、L6和L7。
通过预设算法对待译码信息(L0至L7)进行译码,得到第一译码结果,假设第一译码结果为01000111。通过CRC校验,判断第一译码结果是否正确。
若判断第一译码结果正确,则确定待译码信息的译码结果为01000111。
若判断第一译码结果不正确,则将待译码信息(L0至L7)输入至神经网络。假设M为3,神经网络输出第一位置包括:2、3和5(假设起始位置为0)。由于执行更新操作的次数W为0,第一个未处理的待翻转比特为第2位上的待翻转比特,则对第一译码结果中第2位中的比特进行翻转,得到第四译码结果:01100111。再对待译码信息中第2位之后的信息(L3至L7)进行重新译码,得到第三译码比特:01011,则将第四译码结果(01100111)的后5位更新为第三译码比特(01011),得到第五译码结果:01101011,将W加1,则W为1。判断第五译码结果(01101011)是否正确。
若判断第五译码结果正确,则确定待译码信息的译码结果为01101011。
若判断第五译码结果不正确,由于执行更新操作的次数W为1(大于0),第一个未处理的待翻转比特为第3位上的待翻转比特,则对第五译码结果(01101011)中第3位中的比特进行翻转,得到第四译码结果:01111011。再对待译码信息中第3位之后的信息(L4至L7)进行重新译码,得到第三译码比特:1100,则将第四译码结果(01111011)的后4位更新为第三译码比特(1100),得到第五译码结果:01111100,将W加1,则W为2。判断第五译码结果(01111100)是否正确。
重复上述过程,直至第五译码结果正确时,将第五译码结果确定为待译码信息的译码结果,或者W等于3时,确定译码失败或者将第五译码结果确定为待译码信息的译码结果。
在图12所示的实施例中,通过预设译码算法可以快速的译码得到第一译码结果,在确定第一译码结果错误时,通过神经网络可以快速且准确的预测出第一译码结果中前M个待翻转比特,依次根据前M个待翻转比特对第一译码结果或者上一次更新操作得到的第五译码结果进行更新操作,直至确定得到正确的译码结果或者执行了M次更新操作,以得到译码结果,得到译码结果的准确性较高。无需对全码本中每个序列对应的样本数据进行训练,降低了训练的样本数量,使得训练神经网络的复杂度较低,因此,在保证译码结果准确度的基础上,降低了译码复杂度。
图13为本申请提供的再一种译码方法的流程示意图。在图13所示的实施例中,以神经网络输出前M个待翻转比特的位置为例进行说明。请参见图13,该方法可以包括:
S1301、获取待译码信息。
需要说明的是,S1301的执行过程可以参见S601,此处不再进行赘述。
S1302、通过预设译码算法对待译码信息进行译码,得到第一译码结果。
需要说明的是,S1301的执行过程可以参见S601,此处不再进行赘述。
S1303、判断第一译码结果是否译码正确。
若是,则执行S1304。
若否,则执行S1305-S1308。
可选的,可以对第一译码结果进行CRC校验,以判断第一译码结果是否正确。
S1304、将第一译码结果确定为待译码信息的译码结果。
S1305、将待译码信息输入至神经网络,使得神经网络输出M个第一位置,M大于1。
其中,M个第一位置为第一译码结果中前M个待翻转比特的位置。
在实际应用过程中,可以根据实际需要设置M的大小,本申请对此不作具体限定。
S1306、将M个待翻转比特中第一个未处理的待翻转比特确定为目标待翻转比特。
可选的,未处理的待翻转比特是指未进行翻转的待翻转比特。
S1307、在第一译码结果中翻转目标待翻转比特,得到第四译码结果。
S1308、对待译码信息中目标待翻转比特之后的信息进行译码,得到第三译码比特。
可选的,可以通过预设译码算法对待译码信息中目标待翻转比特之后的信息进行译码,得到第三译码比特。
S1309、将第四译码结果中目标待翻转比特之后的比特更新为第三译码比特,得到第五译码结果。
可选的,将第四译码结果中目标待翻转比特之后的比特替换为第三译码比特,得到第五译码结果。
S1310、将执行更新操作的次数W加1。
初始时,W为0。
S1311、判断第五译码结果是否正确。
若是,则执行S1312。
若否,则执行S1313。
S1312、将第五译码结果确定为待译码信息的译码结果。
S1313、判断执行更新操作的次数W是否等于M。
若是,则执行S1314。
若否,则执行S1306。
S1314、译码失败。
可选的,在确定译码失败时,可以生成提示信息,或者将第五译码结果确定为待译码信息的译码结果。
下面,通过具体示例,对图13所示的实施例进行详细说明。
示例性的,假设待译码信息中包括8个待译码比特,分别为L0、L1、L2、L3、L4、L5、L6和L7。
通过预设算法对待译码信息(L0至L7)进行译码,得到第一译码结果,假设第一译码结果为01000111。通过CRC校验,判断第一译码结果是否正确。
若判断第一译码结果正确,则确定待译码信息的译码结果为01000111。
若判断第一译码结果不正确,则将待译码信息(L0至L7)输入至神经网络。假设M为3,神经网络输出第一位置包括:2、3和5(假设起始位置为0)。由于执行更新操作的次数W为0,第一个未处理的待翻转比特为第2位上的待翻转比特,则对第一译码结果中第2位中的比特进行翻转,得到第四译码结果:01100111。再对待译码信息中第2位之后的信息(L3至L7)进行重新译码,得到第三译码比特:01011,则将第四译码结果(01100111)的后5位更新为第三译码比特(01011),得到第五译码结果:01101011,将W加1,则W为1。判断第五译码结果(01101011)是否正确。
若判断第五译码结果正确,则确定待译码信息的译码结果为01101011。
若判断第五译码结果不正确,由于执行更新操作的次数W为1(大于0),第一个未处理的待翻转比特为第3位上的待翻转比特,则对第一译码结果(01000111)中第3位中的比特进行翻转,得到第四译码结果:01010111。再对待译码信息中第3位之后的信息(L4至L7)进行重新译码,得到第三译码比特:1100,则将第四译码结果(01010111)的后4位更新为第三译码比特(1100),得到第五译码结果:01011100,将W加1,则W为2。判断第五译码结果(01011100)是否正确。
重复上述过程,直至第五译码结果正确时,将第五译码结果确定为待译码信息的译码结果,或者W等于3时,确定译码失败或者将第五译码结果确定为待译码信息的译码结果。
在图13所示的实施例中,通过预设译码算法可以快速的译码得到第一译码结果,在确定第一译码结果错误时,通过神经网络可以快速且准确的预测出第一译码结果中前M个待翻转比特,依次根据前M个待翻转比特对第一译码结果进行更新操作,直至确定得到正确的译码结果或者执行了M次更新操作,以得到译码结果,得到译码结果的准确性较高。无需对全码本中每个序列对应的样本数据进行训练,降低了训练的样本数量,使得训练神经网络的复杂度较低,因此,在保证译码结果准确度的基础上,降低了译码复杂度。
图14为本申请实施例提供的译码装置的结构示意图。请参见图14,该译码装置10可以包括:
接收模块11,用于获取待译码信息;
处理模块12,用于获取待译码信息的第一译码结果;
所述处理模块12还用于,在确定所述第一译码结果错误时,根据神经网络确定所述第一译码结果的M个待翻转比特,所述M为大于或等于1的整数;
所述处理模块12还用于,根据所述M个待翻转比特和所述待译码信息,更新所述第一译码结果,得到所述待译码信息的译码结果。
可选的,接收模块可以执行图6实施例中的S601、图9实施例中的S901、图11实施例中的S1101、图12实施例中的S1201和图13实施例中S1301
可选的,处理模块可以执行图6实施例中的S602-S604、图9实施例中的S902-S908、图11实施例中的S1102-S1108、图12实施例中的S1202-S1215和图13实施例中S1302-S1314。
需要说明的是,本申请实施例中的译码装置可以执行上述方法实施例所示的方案,其实现原理以及有益效果类似,此处不再进行赘述。
在一种可能的实施方式中,所述处理模块12具体用于:
对所述第一译码结果中的目标待翻转比特进行翻转、以及对所述待译码信息中所述目标待翻转比特之后的信息进行译码,得到所述译码结果;
其中,所述目标待翻转比特为所述M个待翻转比特中的至少一个。
在一种可能的实施方式中,所述M等于1;所述处理模块12具体用于:
对所述第一译码结果中的所述目标待翻转比特进行翻转,得到第二译码结果,所述目标待翻转比特为所述M个待翻转比特;
对所述待译码信息中所述目标待翻转比特之后的信息进行译码,得到第一译码比特;
将所述第二译码结果中所述目标待翻转比特之后的比特更新为所述第一译码比特,得到所述译码结果。
在一种可能的实施方式中,所述M大于1;所述处理模块12具体用于:
对所述第一译码结果中的所述目标待翻转比特进行翻转,得到第三译码结果,所述目标待翻转比特为所述M个待翻转比特;
对所述待译码信息中、最后一个目标待翻转比特之后的比特进行译码,得到第二译码比特;
将所述第三译码结果中所述最后一个目标待翻转比特之后的比特更新为所述第二译码比特,得到所述译码结果。
在一种可能的实施方式中,所述M大于1;所述处理模块12具体用于:
执行比特翻转操作,所述比特翻转操作包括:将所述M个待翻转比特中第一个未处理的待翻转比特确定为目标待翻转比特,并翻转所述目标待翻转比特,得到第四译码结果;
执行重译码操作,所述重译码操作包括:对所述待译码信息中所述目标待翻转比特之后的信息进行译码,得到第三译码比特;
执行更新操作,所述更新操作包括:将所述第四译码结果中所述目标待翻转比特之后的比特更新为所述第三译码比特,得到第五译码结果;
重复执行所述比特翻转操作、所述重译码操作和所述更新操作,直至所述第五译码结果正确、或者执行所述更新操作的次数等于所述M时,将所述第五译码结果确定为所述待译码信息的译码结果。
在一种可能的实施方式中,所述处理模块12具体用于:
在执行所述更新操作的次数为0时,在所述第一译码结果中翻转所述目标待翻转比特,得到所述第四译码结果
在执行所述更新操作的次数大于0时,在执行上一次更新操作得到的第五译码结果中翻转所述目标待翻转比特,得到所述第四译码结果。
在一种可能的实施方式中,所述处理模块12具体用于:
在所述第一译码结果中翻转所述目标待翻转比特,得到所述第四译码结果。
在一种可能的实施方式中,所述M个待翻转比特为所述第一译码结果中前M个待翻转的比特;或者,所述M个待翻转比特为所述第一译码结果中译码错误概率最大的M个比特。
在一种可能的实施方式中,所述神经网络用于输出第一位置,所述第一位置为所述M个待翻转比特在所述第一译码结果中的位置。
在一种可能的实施方式中,所述处理模块12具体用于:
通过预设译码算法对所述待译码信息进行译码,得到所述第一译码结果。
在一种可能的实施方式中,所述神经网络为根据多组样本数据学习得到的,每组样本数据包括一个样本待译码信息和所述样本待译码信息对应的样本待翻转比特,所述样本待翻转比特为通过所述预设译码算法对所述样本待译码信息译码错误的比特。
需要说明的是,本申请实施例中的译码装置可以执行上述方法实施例所示的方案,其实现原理以及有益效果类似,此处不再进行赘述。
应理解,上述译码装置中的处理模块可以被实现为处理器,接收模块可以被实现为接收器。
图15为本申请实施例提供的译码装置的硬件结构示意图。请参见图15,该译码装置20可以包括:处理器21以及存储器22;其中,
存储器22,用于存储计算机程序,有时还用于存储中间数据;
处理器21,用于执行存储器存储的计算机程序,以实现上述译码方法中的各个步骤。具体可以参见前面方法实施例中的相关描述。
可选地,存储器22既可以是独立的,也可以跟处理器21集成在一起。在有些实施方式中,存储器甚至还可以位于装置之外。
当所述存储器22是独立于处理器21之外的器件时,所述接收设备20还可以包括总线23,用于连接所述存储器22和处理器21。
图15的译码装置还可以进一步包括接收器24,用于从信道接收待译码信息。
本实施例提供的译码设备可以为终端设备,或者也以为网络设备,可用于执行上述的译码方法,其实现方式和技术效果类似,本实施例此处不再赘述。
本申请实施例还提供一种存储介质,所述存储介质包括计算机程序,所述计算机程序用于实现如上所述的译码方法。
本申请实施例还提供一种芯片或者集成电路,包括:存储器和处理器;
所述存储器,用于存储程序指令,有时还用于存储中间数据;
所述处理器,用于调用所述存储器中存储的所述程序指令以实现如上所述的译码方法。
可选的,存储器可以是独立的,也可以跟处理器集成在一起。在有些实施方式中,存储器还可以位于所述芯片或者集成电路之外。
本申请实施例还提供一种程序产品,所述程序产品包括计算机程序,所述计算机程序存储在存储介质中,所述计算机程序用于实现上述的译码方法。
结合本发明实施例公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于随机存取存储器(Random Access Memory,RAM)、闪存、只读存储器(Read Only Memory,ROM)、可擦除可编程只读存储器(Erasable Programmable ROM,EPROM)、电可擦可编程只读存储器(Electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于基站或终端中。当然,处理器和存储介质也可以作为分立组件存在于接收设备中。
应理解,上述处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application Specific Integrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器,还可以为U盘、移动硬盘、只读存储器、磁盘或光盘等。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
上述存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。存储介质可以是通用或专用计算机能够存取的任何可用介质。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述模块成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

Claims (22)

1.一种译码方法,其特征在于,包括:
获取待译码信息;
获取待译码信息的第一译码结果;
在确定所述第一译码结果错误时,根据神经网络确定所述第一译码结果的M个待翻转比特,所述M为大于或等于1的整数,所述M个待翻转比特为所述第一译码结果中前M个待翻转的比特;或者,所述M个待翻转比特为所述第一译码结果中译码错误概率最大的M个比特;
根据所述M个待翻转比特和所述待译码信息,更新所述第一译码结果,得到所述待译码信息的译码结果。
2.根据权利要求1所述的方法,其特征在于,所述根据所述M个待翻转比特和所述待译码信息,更新所述第一译码结果,得到所述待译码信息的译码结果,包括:
对所述第一译码结果中的目标待翻转比特进行翻转、以及对所述待译码信息中所述目标待翻转比特之后的信息进行译码,得到所述译码结果;
其中,所述目标待翻转比特为所述M个待翻转比特中的至少一个。
3.根据权利要求2所述的方法,其特征在于,所述M等于1;所述对所述第一译码结果中的目标待翻转比特进行翻转、以及对所述目标待翻转比特之后的信息比特进行译码,得到所述译码结果,包括:
对所述第一译码结果中的所述目标待翻转比特进行翻转,得到第二译码结果,所述目标待翻转比特为所述M个待翻转比特;
对所述待译码信息中所述目标待翻转比特之后的信息进行译码,得到第一译码比特;
将所述第二译码结果中所述目标待翻转比特之后的比特更新为所述第一译码比特,得到所述译码结果。
4.根据权利要求2所述的方法,其特征在于,所述M大于1,所述对所述第一译码结果中的目标待翻转比特进行翻转、以及对所述目标待翻转比特之后的信息比特进行译码,得到所述译码结果,包括:
对所述第一译码结果中的所述目标待翻转比特进行翻转,得到第三译码结果,所述目标待翻转比特为所述M个待翻转比特;
对所述待译码信息中、最后一个目标待翻转比特之后的比特进行译码,得到第二译码比特;
将所述第三译码结果中所述最后一个目标待翻转比特之后的比特更新为所述第二译码比特,得到所述译码结果。
5.根据权利要求2所述的方法,其特征在于,所述M大于1,所述对所述第一译码结果中的目标待翻转比特进行翻转、以及对所述目标待翻转比特之后的信息比特进行译码,得到所述译码结果,包括:
执行比特翻转操作,所述比特翻转操作包括:将所述M个待翻转比特中第一个未处理的待翻转比特确定为目标待翻转比特,并翻转所述目标待翻转比特,得到第四译码结果;
执行重译码操作,所述重译码操作包括:对所述待译码信息中所述目标待翻转比特之后的信息进行译码,得到第三译码比特;
执行更新操作,所述更新操作包括:将所述第四译码结果中所述目标待翻转比特之后的比特更新为所述第三译码比特,得到第五译码结果;
重复执行所述比特翻转操作、所述重译码操作和所述更新操作,直至所述第五译码结果正确、或者执行所述更新操作的次数等于所述M时,将所述第五译码结果确定为所述待译码信息的译码结果。
6.根据权利要求5所述的方法,其特征在于,所述翻转所述目标待翻转比特,得到第四译码结果,包括:
在执行所述更新操作的次数为0时,在所述第一译码结果中翻转所述目标待翻转比特,得到所述第四译码结果;
在执行所述更新操作的次数大于0时,在执行上一次更新操作得到的第五译码结果中翻转所述目标待翻转比特,得到所述第四译码结果。
7.根据权利要求5所述的方法,其特征在于,所述翻转所述目标待翻转比特,得到第四译码结果包括:
在所述第一译码结果中翻转所述目标待翻转比特,得到所述第四译码结果。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述神经网络用于输出第一位置,所述第一位置为所述M个待翻转比特在所述第一译码结果中的位置。
9.根据权利要求1-7任一项所述的方法,其特征在于,所述获取待译码信息的第一译码结果,包括:
通过预设译码算法对所述待译码信息进行译码,得到所述第一译码结果。
10.根据权利要求9所述的方法,其特征在于,所述神经网络为根据多组样本数据学习得到的,每组样本数据包括一个样本待译码信息和所述样本待译码信息对应的样本待翻转比特,所述样本待翻转比特为通过所述预设译码算法对所述样本待译码信息译码错误的比特。
11.一种译码装置,其特征在于,包括:
接收模块,用于获取待译码信息;
处理模块,用于获取待译码信息的第一译码结果;
所述处理模块还用于,在确定所述第一译码结果错误时,根据神经网络确定所述第一译码结果的M个待翻转比特,所述M为大于或等于1的整数,所述M个待翻转比特为所述第一译码结果中前M个待翻转的比特;或者,所述M个待翻转比特为所述第一译码结果中译码错误概率最大的M个比特;
所述处理模块还用于,根据所述M个待翻转比特和所述待译码信息,更新所述第一译码结果,得到所述待译码信息的译码结果。
12.根据权利要求11所述的装置,其特征在于,所述处理模块具体用于:
对所述第一译码结果中的目标待翻转比特进行翻转、以及对所述待译码信息中所述目标待翻转比特之后的信息进行译码,得到所述译码结果;
其中,所述目标待翻转比特为所述M个待翻转比特中的至少一个。
13.根据权利要求12所述的装置,其特征在于,所述M等于1;所述处理模块具体用于:
对所述第一译码结果中的所述目标待翻转比特进行翻转,得到第二译码结果,所述目标待翻转比特为所述M个待翻转比特;
对所述待译码信息中所述目标待翻转比特之后的信息进行译码,得到第一译码比特;
将所述第二译码结果中所述目标待翻转比特之后的比特更新为所述第一译码比特,得到所述译码结果。
14.根据权利要求12所述的装置,其特征在于,所述M大于1;所述处理模块具体用于:
对所述第一译码结果中的所述目标待翻转比特进行翻转,得到第三译码结果,所述目标待翻转比特为所述M个待翻转比特;
对所述待译码信息中、最后一个目标待翻转比特之后的比特进行译码,得到第二译码比特;
将所述第三译码结果中所述最后一个目标待翻转比特之后的比特更新为所述第二译码比特,得到所述译码结果。
15.根据权利要求12所述的装置,其特征在于,所述M大于1;所述处理模块具体用于:
执行比特翻转操作,所述比特翻转操作包括:将所述M个待翻转比特中第一个未处理的待翻转比特确定为目标待翻转比特,并翻转所述目标待翻转比特,得到第四译码结果;
执行重译码操作,所述重译码操作包括:对所述待译码信息中所述目标待翻转比特之后的信息进行译码,得到第三译码比特;
执行更新操作,所述更新操作包括:将所述第四译码结果中所述目标待翻转比特之后的比特更新为所述第三译码比特,得到第五译码结果;
重复执行所述比特翻转操作、所述重译码操作和所述更新操作,直至所述第五译码结果正确、或者执行所述更新操作的次数等于所述M时,将所述第五译码结果确定为所述待译码信息的译码结果。
16.根据权利要求15所述的装置,其特征在于,所述处理模块具体用于:
在执行所述更新操作的次数为0时,在所述第一译码结果中翻转所述目标待翻转比特,得到所述第四译码结果;
在执行所述更新操作的次数大于0时,在执行上一次更新操作得到的第五译码结果中翻转所述目标待翻转比特,得到所述第四译码结果。
17.根据权利要求15所述的装置,其特征在于,所述处理模块具体用于:
在所述第一译码结果中翻转所述目标待翻转比特,得到所述第四译码结果。
18.根据权利要求11-17任一项所述的装置,其特征在于,所述神经网络用于输出第一位置,所述第一位置为所述M个待翻转比特在所述第一译码结果中的位置。
19.根据权利要求11-17任一项所述的装置,其特征在于,所述处理模块具体用于:
通过预设译码算法对所述待译码信息进行译码,得到所述第一译码结果。
20.根据权利要求19所述的装置,其特征在于,所述神经网络为根据多组样本数据学习得到的,每组样本数据包括一个样本待译码信息和所述样本待译码信息对应的样本待翻转比特,所述样本待翻转比特为通过所述预设译码算法对所述样本待译码信息译码错误的比特。
21.一种译码装置,其特征在于,包括:存储器、处理器以及计算机程序,所述计算机程序存储在所述存储器中,所述处理器运行所述计算机程序执行如权利要求1至10任一项所述的方法。
22.一种存储介质,其特征在于,所述存储介质包括计算机程序,所述计算机程序用于实现如权利要求1至10任一项所述的方法。
CN201910030881.4A 2019-01-14 2019-01-14 译码方法、装置及设备 Active CN111435838B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910030881.4A CN111435838B (zh) 2019-01-14 2019-01-14 译码方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910030881.4A CN111435838B (zh) 2019-01-14 2019-01-14 译码方法、装置及设备

Publications (2)

Publication Number Publication Date
CN111435838A CN111435838A (zh) 2020-07-21
CN111435838B true CN111435838B (zh) 2022-06-14

Family

ID=71580645

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910030881.4A Active CN111435838B (zh) 2019-01-14 2019-01-14 译码方法、装置及设备

Country Status (1)

Country Link
CN (1) CN111435838B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015139160A1 (zh) * 2014-03-20 2015-09-24 山东华芯半导体有限公司 一种动态阈值比特翻转的ldpc码硬判决译码方法
WO2017054164A1 (zh) * 2015-09-30 2017-04-06 华为技术有限公司 极化码的编译码方法及其装置
CN106571832A (zh) * 2016-11-04 2017-04-19 华南理工大学 一种多进制ldpc码级联神经网络解码方法及装置
CN108847848A (zh) * 2018-06-13 2018-11-20 电子科技大学 一种基于信息后处理的极化码的bp译码算法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103812511B (zh) * 2012-11-15 2017-04-26 华为技术有限公司 一种译码方法及装置
US10148287B2 (en) * 2016-11-08 2018-12-04 SK Hynix Inc. Bit-flipping LDPC decoding algorithm with hard channel information
CN108282264B (zh) * 2018-01-05 2020-01-31 西安电子科技大学 基于比特翻转串行消除列表算法的极化码译码方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015139160A1 (zh) * 2014-03-20 2015-09-24 山东华芯半导体有限公司 一种动态阈值比特翻转的ldpc码硬判决译码方法
WO2017054164A1 (zh) * 2015-09-30 2017-04-06 华为技术有限公司 极化码的编译码方法及其装置
CN106571832A (zh) * 2016-11-04 2017-04-19 华南理工大学 一种多进制ldpc码级联神经网络解码方法及装置
CN108847848A (zh) * 2018-06-13 2018-11-20 电子科技大学 一种基于信息后处理的极化码的bp译码算法

Also Published As

Publication number Publication date
CN111435838A (zh) 2020-07-21

Similar Documents

Publication Publication Date Title
EP3510700B1 (en) Method and apparatus for encoding data using a polar code
CN109660264B (zh) 高性能极化码译码算法
CN103888148B (zh) 一种动态阈值比特翻转的ldpc码硬判决译码方法
CN111294058B (zh) 一种信道编码和纠错译码方法、设备以及存储介质
US9369152B2 (en) Systems and methods for decoding with late reliability information
EP3539237B1 (en) Error detection in communication systems using polar coded data transmission
CN108574494B (zh) 编译码方法及装置
CN105763203B (zh) 一种基于硬可靠度信息的多元ldpc码译码方法
EP3614701A1 (en) Polar code transmission method and device
CN111224677B (zh) 编码方法、译码方法及装置
US11258463B2 (en) Polar code transmission method and apparatus
CN111541517B (zh) 一种列表极化码传播译码方法
WO2018027669A1 (en) Rate matching for block encoder
CN109787641B (zh) staircase码的解码方法、装置及存储介质
CN111446973B (zh) 基于多翻转比特集合的极化码置信传播译码方法
EP2989720A1 (en) Method and apparatus of ldpc encoder in 10gbase-t system
CN111435838B (zh) 译码方法、装置及设备
US20230058149A1 (en) Encoding method and apparatus, decoding method and apparatus, and device
CN108809485B (zh) 一种编码的方法和装置
CN115549698A (zh) 编码方法和编码器、译码方法和译码器、通信系统
CN111130564A (zh) 译码方法及装置
CN114362763A (zh) 联合译码方法及装置、存储介质及电子设备
CN111130565B (zh) 一种基于神经网络的译码方法及装置
CN111224741B (zh) 卫星导航用bch码译码方法、译码器及卫星导航接收机
CN114204943A (zh) 编码方法和装置

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
GR01 Patent grant