CN110798231B - 咬尾卷积码的译码方法、装置及存储介质 - Google Patents

咬尾卷积码的译码方法、装置及存储介质 Download PDF

Info

Publication number
CN110798231B
CN110798231B CN201810873377.6A CN201810873377A CN110798231B CN 110798231 B CN110798231 B CN 110798231B CN 201810873377 A CN201810873377 A CN 201810873377A CN 110798231 B CN110798231 B CN 110798231B
Authority
CN
China
Prior art keywords
state
states
ending
sequence
decoded
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
CN201810873377.6A
Other languages
English (en)
Other versions
CN110798231A (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.)
Beijing Xiaomi Pinecone Electronic Co Ltd
Original Assignee
Beijing Xiaomi Pinecone Electronic 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 Beijing Xiaomi Pinecone Electronic Co Ltd filed Critical Beijing Xiaomi Pinecone Electronic Co Ltd
Priority to CN201810873377.6A priority Critical patent/CN110798231B/zh
Publication of CN110798231A publication Critical patent/CN110798231A/zh
Application granted granted Critical
Publication of CN110798231B publication Critical patent/CN110798231B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/413Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors tail biting Viterbi decoding

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)

Abstract

本公开是关于一种咬尾卷积码的译码方法、装置及存储介质,所述方法应用于译码器,该译码器具有N个状态,所述方法包括:对待译码序列进行维特比译码迭代,得到每一状态的幸存路径、路径度量值以及历史路径度量值;按照路径度量值从大到小的顺序选取k个状态作为本次译码迭代的结束状态;通过每一结束状态对应的幸存路径对该结束状态进行回溯;若该结束状态回溯到与该结束状态相同的开始状态且对该幸存路径对应的源比特的循环冗余校验错误,则对作为该结束状态的状态进行标记;从N个状态,选取历史路径度量值最大的未标记状态作为新的开始状态,再次进行维特比译码迭代。通过本公开的技术方案,可以避免陷入循环陷阱且加快提高译码成功速度。

Description

咬尾卷积码的译码方法、装置及存储介质
技术领域
本公开涉及通信技术领域,尤其涉及一种咬尾卷积码的译码方法、装置及存储介质。
背景技术
咬尾卷积码(Tail Biting Convolutional Code,TBCC)是长期演进(Long-termEvolution,LTE)、窄带物联网(Narrowband Machine-type Communication,NB-IoT)以及增强型机器类型通信(Enhanced Machine Type of Communication,eMTC)中规定的一种编码标准,其在4G通信中有着非常广泛的应用。然而,咬尾卷积码对于译码器来说并不知道译码的开始状态和结束状态,这给译码器增加了译码难度。
相关技术中,通常采用循环迭代的方式,预设一个最大的迭代次数或者最大的迭代长度,基于此来进行多次译码迭代和回溯。然而,该方法可能会陷入循环陷阱,即到了某个译码阶段,尽管迭代次数增加,但译码迭代仍然在重复某个错误的开始状态,进而无法通过译码迭代输出正确的译码结果。
发明内容
为克服相关技术中存在的问题,本公开提供一种咬尾卷积码的译码方法、装置及存储介质。
根据本公开实施例的第一方面,提供一种咬尾卷积码的译码方法,所述译码器具有N个状态,所述方法包括:
对待译码序列进行维特比译码迭代,得到所述N个状态中每一状态对应的幸存路径、路径累计度量值以及历史路径度量值;
按照路径度量值从大到小的顺序,从所述N个状态中选取k个状态作为本次译码迭代的结束状态,其中,0<k<N;
针对每一所述结束状态,通过该结束状态对应的幸存路径对该结束状态进行回溯,得到相应的开始状态和源比特;
若该结束状态回溯到与该结束状态相同的开始状态,并且对该结束状态对应的源比特的循环冗余校验错误,则对作为该结束状态的状态进行标记;
从所述N个状态中的未标记状态中,选取历史路径度量值最大的未标记状态作为新的开始状态,从所述新的开始状态出发,再次对所述待译码序列进行维特比译码迭代。
可选地,所述方法还包括:
针对每一所述结束状态,若该结束状态回溯到与该结束状态相同的开始状态,并且对该结束状态对应的源比特的循环冗余校验正确,则将该结束状态对应的源比特作为候选源比特,得到候选源比特集合;
若所述候选源比特集合中候选源比特的数量为一个,则将该候选源比特作为所述待译码序列的译码结果;
若所述候选源比特集合中候选源比特的数量为多个,则将对应的路径度量值最大的候选源比特作为所述待译码序列的译码结果。
可选地,在所述从所述新的开始状态出发,再次对所述待译码序列进行维特比译码迭代之后,所述方法还包括:
将作为所述新的开始状态的未标记状态作为本次译码迭代的结束状态,通过该结束状态对应的幸存路径对该结束状态进行回溯,得到相应的开始状态和源比特;
若该结束状态回溯到与该结束状态相同的开始状态,并且对该结束状态对应的源比特的循环冗余校验错误,则对作为该结束状态的状态进行标记;
从所述N个状态中的未标记状态中,选取历史路径度量值最大的未标记状态作为下一次译码迭代的开始状态,从该开始状态出发,再次对所述待译码序列进行维特比译码迭代的步骤。
可选地,所述方法还包括:
若所述本次译码迭代的结束状态回溯到与该结束状态相同的开始状态,并且对该结束状态对应的循环冗余检验正确,则将该结束状态对应的源比特作为所述待译码序列的译码结果。
可选地,在所述从所述新的开始状态出发,再次对所述待译码序列进行维特比译码迭代之前,所述方法还包括:
获取当前已对所述待译码序列进行维特比译码迭代的次数;
若所述次数达到预设阈值,则停止对所述待译码序列进行维特比译码迭代。
根据本公开实施例的第二方面,提供一种咬尾卷积码的译码装置,应用于译码器,所述译码器具有N个状态,所述装置包括:
第一译码模块,被配置为对待译码序列进行维特比译码迭代,得到所述N个状态中每一状态对应的幸存路径、路径累计度量值以及历史路径度量值;
第一选取模块,被配置为按照路径度量值从大到小的顺序,从所述N个状态中选取k个状态作为本次译码迭代的结束状态,其中,0<k<N;
第一回溯模块,被配置为针对每一所述结束状态,通过该结束状态对应的幸存路径对该结束状态进行回溯,得到相应的开始状态和源比特;
第一标记模块,被配置为若该结束状态回溯到与该结束状态相同的开始状态,并且对该结束状态对应的源比特的循环冗余校验错误,则对作为该结束状态的状态进行标记;
第一开始状态选择模块,被配置为从所述N个状态中的未标记状态中,选取历史路径度量值最大的未标记状态作为新的开始状态,从所述新的开始状态出发,再次对所述待译码序列进行维特比译码迭代。
可选地,所述装置还包括:
第二获取模块,被配置为针对每一所述结束状态,若该结束状态回溯到与该结束状态相同的开始状态,并且对该结束状态对应的源比特的循环冗余校验正确,则将该结束状态对应的源比特作为候选源比特,得到候选源比特集合;
第一译码结果输出模块,被配置为若所述候选源比特集合中候选源比特的数量为一个,则将该候选源比特作为所述待译码序列的译码结果;
第二译码结果输出模块,被配置为若所述候选源比特集合中候选源比特的数量为多个,则将对应的路径度量值最大的候选源比特作为所述待译码序列的译码结果。
可选地,所述装置还包括:
第二回溯模块,被配置为在再次对所述待译码序列进行维特比译码迭代之后,将作为所述新的开始状态的未标记状态作为本次译码迭代的结束状态,再次执行所述通过该结束状态对应的幸存路径对该结束状态进行回溯,得到相应的开始状态和源比特;
第二标记模块,被配置为若该结束状态回溯到与该结束状态相同的开始状态,并且对该结束状态对应的源比特的循环冗余校验错误,则对作为该结束状态的状态进行标记;
第二开始状态选择模块,被配置为从所述N个状态中的未标记状态中,选取历史路径度量值最大的未标记状态作为下一次译码迭代的开始状态,从该开始状态出发,再次对所述待译码序列进行维特比译码迭代。
可选地,所述装置还包括:
第三译码结果输出模块,被配置为若所述本次译码迭代的结束状态回溯到与该结束状态相同的开始状态,并且对该结束状态对应的循环冗余检验正确,则将该结束状态对应的源比特作为所述待译码序列的译码结果。
可选地,所述装置还包括:
第三获取模块,被配置为在再次对所述待译码序列进行维特比译码迭代之前,获取当前已对所述待译码序列进行维特比译码迭代的次数;
停止模块,被配置为若所述次数达到预设阈值,则停止对所述待译码序列进行维特比译码迭代。
根据本公开实施例的第三方面,提供一种咬尾卷积码的译码装置,所述装置应用于译码器,所述译码器具有N个状态,所述装置包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为实现本公开第一方面所提供的咬尾卷积码的译码方法的步骤。
根据本公开实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序指令,该程序指令被处理器执行时实现本公开第一方面所提供的咬尾卷积码的译码方法的步骤。
采用上述技术方案,至少可以达到如下技术效果:
在每次对待译码序列的译码迭代结束后,根据该次译码迭代得到的信息来选择下一次译码迭代的开始状态,可以避免从错误的开始状态进行译码迭代而陷入循环陷阱。并且,通过在每次译码迭代结束后,通过对每一状态进行回溯并对能够回溯到相同状态且对回溯得到的源比特的循环冗余校验错误的状态进行标记,从剩下的未标记状态中选择历史路径度量值最大的状态作为下一次开始状态,可以快速找到正确的开始状态,从统计上加快译码迭代的速度。
此外,在首次译码操作结束时,选择历史路径度量值最大的若干个状态作为结束状态进行回溯和循环冗余校验,可以增加在首次译码迭代结束时就能得到正确译码结果并结束译码的概率,无需通过多次译码迭代以遍历译码器的所有状态,进而可以降低咬尾卷积码译码的复杂度,提高译码速度。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
本公开的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1是根据本公开一示例性实施例示出的一种咬尾卷积码的译码方法的流程图;
图2是根据本公开另一示例性实施例示出的一种咬尾卷积码的译码方法的流程图;
图3是根据本公开一示例性实施例示出的一种咬尾卷积码的译码装置的框图;
图4是根据本公开另一示例性实施例示出的一种咬尾卷积码的译码装置的框图;
图5是根据本公开一示例性实施例示出的一种用于执行咬尾卷积码的译码方法的装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
本公开的说明书和权利要求书以及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必理解为特定的顺序或先后次序。
图1是根据本公开一示例性实施例示出的一种咬尾卷积码的译码方法的流程图,如图1所示,该方法用于译码器中,所述译码器具有N个状态,包括以下步骤:
在步骤S11中,对待译码序列进行维特比译码迭代,得到N个状态中每一状态对应的幸存路径、路径度量值以及历史路径度量值。
在本公开的实施例中,译码器共有N个状态,其中,N=2L,L是咬尾卷积码的状态寄存器比特数。
在这N个状态中,可以将每一状态对应的幸存路径定义为达到该状态的幸存路径,每一状态对应的路径度量值定义为每次维特比译码迭代得到的到达该状态的幸存路径的度量值,每一状态对应的历史路径度量值定义为当前已进行的各次维特比译码迭代得到的该状态对应的路径度量值之和。
在首次对待译码序列进行维特比译码迭代时,可以在进行维特比译码迭代的每一步处理结束时,针对每一状态,可以得到达到该状态的每一条部分路径并统计各部分路径的度量值,从中挑选出具有最大度量值的部分路径作为幸存路径,从该幸存路径向前延长重复进行下一步处理,不断地更新幸存路径和该幸存路径的度量值,直到最后一步处理结束,因而在本次维特比译码迭代结束时,可得到到达每一状态的幸存路径和该幸存路径的度量值。
在一种可能的实施方式中,可以预先定义大小为N的数组path_metric[0]~path_metric[N-1]以及数组History_metric[0]~History_metric[N-1]。其中,path_metric[0]~path_metric[N-1]可用于存储本次维特比译码迭代得到的各状态对应的路径度量值,History_metric[0]~History_metric[N-1]可用于存储各状态对应的历史路径度量值。
在进行首次维特比译码迭代时,可以将path_metric[0]~path_metric[N-1]以及History_metric[0]~History_metric[N-1]全部初始化为0。这样,在进行首次维特比译码迭代后,可以将本次译码迭代得到的每一状态的路径度量值存储至相应的数组path_metric[]中。相应地,首次译码迭代结束后得到的每一状态对应的历史路径度量值为该状态对应的路径度量值,可将每一状态对应的历史路径度量值写入相应的数组History_metric[]中,即History_metric[j]=path_metric[j],0<=j<N。
在步骤S12中,按照路径度量值从大到小的顺序,从N个状态中选取k个状态作为本次译码迭代的结束状态,其中,0<k<N。
在步骤S13中,针对每一结束状态,通过该结束状态对应的幸存路径对该结束状态进行回溯,得到相应的开始状态和源比特。
由于在对待译码序列进行维特比译码迭代时,路径度量值较大的状态是正确结束状态的可能性更大,并且考虑到在咬尾卷积码的编译码过程中译码器无法获知开始状态以及咬尾卷积码具有开始状态与结束状态相同的特性,因而可以按照路径度量值从大到小的顺序,从N个状态中选出k(0<k<N)个状态,分别将这k个状态作为结束状态,通过每一结束状态对应的幸存路径对该结束状态进行回溯,得到各结束状态对应的开始状态和源比特。
值得说明的是,k可以设定为一较小的值,例如可以设定为1~5之间的整数。
在步骤S14中,若该结束状态回溯到与该结束状态相同的开始状态,并且对该结束状态对应的源比特的循环冗余校验错误,则对作为该结束状态的状态进行标记。
在一种可能的实施方式中,可以首先以k个状态中路径度量值最大的状态作为结束状态,通过该结束状态对应的幸存路径对该结束状态进行回溯,得到该结束状态对应的开始状态,若该开始状态与作为该结束状态的状态相同,则对该结束状态对应的源比特进行循环冗余校验(Cyclic Redundancy Check,CRC),若检验错误,可以判定该状态为错误的结束状态,则对作为该结束状态的状态进行标记,以标识该状态已作为开始状态进行过译码迭代,进而避免在下一次译码迭代时从该状态作出发。接着,按照路径累计度量值从大到小的顺序依次从k个状态的其他状态中选取一状态,每选取出一状态就重复执行上述回溯过程。
对于状态的标记,在一种可能的实施方式中,可以预先定义大小为N的数组Explored_mask[0]~Explored_mask[N-1],N个数组与N个状态一一对应。通过这N个数组赋值来对相应的状态进行标记。例如,可以在首次对待译码序列进行维特比译码迭代之前,将这N个数组的值初始化为0,以表示这些状态均未曾作为开始状态进行过译码迭代。经过首次维特比译码迭代后,若状态n(0≤n≤N-1)回溯到与其相同的开始状态但对其对应的源比特的循环冗余检验错误,则设置其对应的数组Explored_mask[n]=1。
在步骤S15中,从N个状态中的未标记状态中,选取历史路径度量值最大的未标记状态作为新的开始状态,从新的开始状态出发,再次对待译码序列进行维特比译码迭代。
对于一次失败的译码迭代,即使该次译码迭代是从错误的开始状态出发,该次迭代的路径只要与真实的比特流路径在某一步处理时有一个共同状态,之后的比特流片段的部分或全部很有可能与真实的比特流一致,因而根据获取各状态在每次译码迭代结束后得到的历史路径度量值,可以快速优选下一次译码迭代的开始状态。因此,可以从N个状态的未标记状态中,选取历史路径度量值最大的未标记状态作为开始状态,再次对待译码序列执行维特比译码迭代。在译码迭代结束后,针对每一状态,可以根据本次译码迭代得到的该状态对应的路径度量值更新该状态对应的历史路径度量值,即,History_metric[j]=History_metric[j]+path_metric[j],其中,0≤j<N。
在一种实施方式中,为了使译码器强行从该新的开始状态出发进行下一次译码迭代,可以预先设定一大小为N的数组init_metric[0]~init_metric[N-1],这N个数组与N个状态一一对应,用于表示各状态的路径初始度量值。在确定出新的开始状态后,可以将该新的开始状态(例如状态s)对应的数组元素设置为0(即init_metric[s]=0),而其余状态设置为负无穷大。
通过上述咬尾卷积码的译码方法,在每次对待译码序列的译码迭代结束后,根据该次译码迭代得到的信息来选择下一次译码迭代的开始状态,可以避免从错误的开始状态进行译码迭代而陷入循环陷阱。并且,通过在每次译码迭代结束后,通过对每一状态进行回溯并对能够回溯到相同状态且对回溯得到的源比特的循环冗余校验错误的状态进行标记,从剩下的未标记状态中选择历史路径度量值最大的状态作为下一次开始状态,可以快速找到正确的开始状态,从统计上加快译码迭代的速度。
图2是根据本公开另一示例性实施例示出的一种咬尾卷积码的译码方法的流程图,如图2所示,该方法应用于译码器中,所述译码器具有N个状态,包括以下步骤:
在步骤S21中,对待译码序列进行维特比译码迭代,得到N个状态中每一状态对应的幸存路径、路径度量值以及历史路径度量值。
在步骤S22中,按照路径度量值从大到小的顺序,从N个状态中选取k个状态作为本次译码迭代的结束状态,其中,0<k<N。
在步骤S23中,针对每一结束状态,通过该结束状态对应的幸存路径对该结束状态进行回溯,得到相应的开始状态和源比特。
值得说明的是,上述步骤S21~S23的具体实现方式与图1所示咬尾卷积码的译码方法中的步骤S11~S13的具体实现方式类似,具体请参见上述对步骤S11~S13的描述,为了减少冗余,此处不再赘述。
在步骤S24中,判断该结束状态是否回溯到与该结束状态相同的开始状态。
若该结束状态能回溯到与该结束状态相同的开始状态,则执行步骤S25。
在步骤S25中,判断对该结束状态对应的源比特的循环冗余校验是否正确。
若对该结束状态的循环冗余校验正确,则执行步骤S26~S28,否则执行步骤S29~S30。
在步骤S26中,若对该结束状态对应的源比特的循环冗余校验正确,则将该结束状态对应的源比特作为候选源比特,得到候选源比特集合。
在步骤S27中,若候选源比特集合中候选源比特的数量为一个,则将该候选源比特作为待译码序列的译码结果。
在步骤S28中,若候选源比特集合中候选源比特的数量为多个,则将对应的路径度量值最大的候选源比特作为待译码序列的译码结果。
这样,在首次译码操作结束时,选择历史路径度量值最大的若干个状态作为结束状态进行回溯和循环冗余校验,可以增加在首次译码迭代结束时就能得到正确译码结果并结束译码的概率,无需通过多次译码迭代以遍历译码器的所有状态,进而可以降低咬尾卷积码译码的复杂度,提高译码速度。
在步骤S29中,若对该结束状态对应的源比特的循环冗余校验错误,则对作为该结束状态的状态进行标记。
在步骤S30中,从N个状态中的未标记状态中,选取历史路径度量值最大的未标记状态作为新的开始状态。
在步骤S31中,从新的开始状态出发,再次对待译码序列进行维特比译码迭代,得到N个状态中每一状态对应的幸存路径、路径度量值以及历史路径度量值。
值得说明的是,上述步骤S24~S25以及步骤S29~S31的具体实现方式与图1所示咬尾卷积码的译码方法中的步骤S14~S15的具体实现方式类似,具体请参见上述对步骤S14~S15的描述,为了减少冗余,此处不再赘述。
在本公开的另一示例性实施中,在再次对待译码序列进行维特比译码迭代后,上述方法还包括:
在步骤S32中,将作为新的开始状态的未标记状态作为本次译码迭代的结束状态,通过该结束状态对应的幸存路径对该结束状态进行回溯,得到相应的开始状态和源比特。
在步骤S33中,判断该结束状态是否回溯到与该结束状态相同的开始状态。
若该结束状态能回溯到与该结束状态相同的开始状态,则执行步骤S34。
在步骤S34中,判断对该结束状态对应的源比特的循环冗余校验是否正确。
若对该结束状态对应的源比特的循环冗余校验正确,则执行步骤S35,否则执行步骤S36。
在步骤S35中,若对该结束状态对应的源比特的循环冗余校验正确,则将该结束状态对应的源比特作为待译码序列的译码结果。
在步骤S36中,对作为该结束状态的状态进行标记。
在本公开的另一示例性实施例中,上述方法还包括:
在步骤S37中,判断当前已对待译码序列进行维特比译码迭代的次数是否达到预设阈值。
若该次数未达到预设阈值,则重复执行上述步骤S30~S37;若该次数达到预设阈值,则执行步骤S38。
在一种实施方式中,值得说明的是,预设阈值可以设置为与译码器具有的状态的数量N相等。这样,可以在对待译码序列执行译码操作时遍历所有可能的开始状态,进一步优化译码性能。
在步骤S38中,若该次数达到预设阈值,则停止对待译码序列进行维特比译码迭代。
在本公开的另一示例性实施例中,上述方法还包括:
在步骤S39中,输出提示信息,以指示对待译码序列译码失败。
在每次对待译码序列的译码迭代结束后,根据该次译码迭代得到的信息来选择下一次译码迭代的开始状态,可以避免后续每一次迭代都从同一个错误的状态开始进行译码迭代而陷入循环陷阱,并且在该次迭代的结束时刻仍然是该状态对应的路径度量值最大,因而下一次译码迭代仍然从该状态开始。此外,从第二次译码迭代开始,通过在每次译码迭代结束后,通过对作为该次译码迭代的开始状态的状态进行回溯,并且在该状态能够回溯到相同状态但对回溯得到的源比特的循环冗余校验错误时对该状态进行标记,从剩下的未标记状态中选择历史路径度量值最大的状态作为下一次开始状态,可以进一步快速确定译码迭代的正确开始状态,从统计上加快译码迭代的速度。
图3是根据本公开一示例性实施例示出的一种咬尾卷积码的译码装置的框图,如图3所示,该装置300可应用于译码器,所述译码器具有N个状态,该装置300包括:
第一译码模块301,被配置为对待译码序列进行维特比译码迭代,得到所述N个状态中每一状态对应的幸存路径、路径度量值以及历史路径度量值;
第一选取模块302,被配置为按照路径度量值从大到小的顺序,从所述N个状态中选取k个状态作为本次译码迭代的结束状态,其中,0<k<N;
第一回溯模块303,被配置为针对每一所述结束状态,通过该结束状态对应的幸存路径对该结束状态进行回溯,得到相应的开始状态和源比特;
第一标记模块304,被配置为若该结束状态回溯到与该结束状态相同的开始状态,并且对该结束状态对应的源比特的循环冗余校验错误,则对作为该结束状态的状态进行标记;
第一开始状态选择模块305,被配置为从所述N个状态中的未标记状态中,选取历史路径度量值最大的未标记状态作为新的开始状态,从所述新的开始状态出发,再次对所述待译码序列进行维特比译码迭代。
在本公开的另一示例性实施例中,如图4所示,所述装置300还包括:
第二获取模块306,被配置为针对每一所述结束状态,若该结束状态回溯到与该结束状态相同的开始状态,并且对该结束状态对应的源比特的循环冗余校验正确,则将该结束状态对应的源比特作为候选源比特,得到候选源比特集合;
第一译码结果输出模块307,被配置为若所述候选源比特集合中候选源比特的数量为一个,则将该候选源比特作为所述待译码序列的译码结果;
第二译码结果输出模块308,被配置为若所述候选源比特集合中候选源比特的数量为多个,则将对应的路径度量值最大的候选源比特作为所述待译码序列的译码结果。
在本公开的另一示例性实施例中,如图4所示,所述装置300还包括:
第二回溯模块309,被配置为在再次对所述待译码序列进行维特比译码迭代之后,将作为所述新的开始状态的未标记状态作为本次译码迭代的结束状态,再次执行所述通过该结束状态对应的幸存路径对该结束状态进行回溯,得到相应的开始状态和源比特;
第二标记模块310,被配置为若该结束状态回溯到与该结束状态相同的开始状态,并且对该结束状态对应的源比特的循环冗余校验错误,则对作为该结束状态的状态进行标记;
第二开始状态选择模块311,被配置为从所述N个状态中的未标记状态中,选取历史路径度量值最大的未标记状态作为下一次译码迭代的开始状态,从该开始状态出发,再次对所述待译码序列进行维特比译码迭代。
在本公开的另一示例性实施例中,如图4所示,所述装置300还包括:
第三译码结果输出模块312,被配置为若所述本次译码迭代的结束状态回溯到与该结束状态相同的开始状态,并且对该结束状态对应的循环冗余检验正确,则将该结束状态对应的源比特作为所述待译码序列的译码结果。
在本公开的另一示例性实施例中,如图4所示,所述装置300还包括:
第三获取模块313,被配置为在再次对所述待译码序列进行维特比译码迭代之前,获取当前已对所述待译码序列进行维特比译码迭代的次数;
停止模块314,被配置为若所述次数达到预设阈值,则停止对所述待译码序列进行维特比译码迭代。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
通过上述咬尾卷积码的译码装置,在每次对待译码序列的译码迭代结束后,根据该次译码迭代得到的信息来选择下一次译码迭代的开始状态,可以避免从错误的开始状态进行译码迭代而陷入循环陷阱。并且,通过在每次译码迭代结束后,通过对每一状态进行回溯并对能够回溯到相同状态且对回溯得到的源比特的循环冗余校验错误的状态进行标记,从剩下的未标记状态中选择历史路径度量值最大的状态作为下一次开始状态,可以快速找到正确的开始状态,从统计上加快译码迭代的速度。
此外,在首次译码操作结束时,选择历史路径度量值最大的若干个状态作为结束状态进行回溯和循环冗余校验,可以增加在首次译码迭代结束时就能得到正确译码结果并结束译码的概率,无需通过多次译码迭代以遍历译码器的所有状态,进而可以降低咬尾卷积码译码的复杂度,提高译码速度。
本公开还提供一种计算机可读存储介质,其上存储有计算机程序指令,该程序指令被处理器执行时实现本公开提供的咬尾卷积码的译码方法的步骤。
图5是根据一示例性实施例示出的一种用于执行咬尾卷积码的译码方法的装置500的框图,该装置500可以应用于译码器,该译码器具有N个状态。如图5所示,该装置500可以包括:处理器501,存储器502,多媒体组件503,输入/输出(I/O)接口504,以及通信组件505。
其中,处理器501用于控制该装置500的整体操作,以完成上述的咬尾卷积码的译码方法中的全部或部分步骤。存储器502用于存储各种类型的数据以支持在该装置500的操作,这些数据例如可以包括用于在该装置500上操作的任何应用程序或方法的指令,以及应用程序相关的数据,例如N个状态中每一状态对应的幸存路径和路径累计度量值等等。基于此,处理器501可以利用存储器502中的每一状态对应的幸存路径和路径累计度量值来执行上述的咬尾卷积码的译码方法中的步骤S11~步骤S15,该存储器502可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static RandomAccess Memory,简称SRAM),电可擦除可编程只读存储器(Electrically ErasableProgrammable Read-Only Memory,简称EEPROM),可擦除可编程只读存储器(ErasableProgrammable Read-Only Memory,简称EPROM),可编程只读存储器(Programmable Read-Only Memory,简称PROM),只读存储器(Read-Only Memory,简称ROM),磁存储器,快闪存储器,磁盘或光盘。
多媒体组件503可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器502或通过通信组件505发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口504为处理器501和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件505用于该装置500与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near Field Communication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件505可以包括:Wi-Fi模块,蓝牙模块,NFC模块。
在一示例性实施例中,装置500可以被一个或多个应用专用集成电路(Application Specific Integrated Circuit,简称ASIC)、数字信号处理器(DigitalSignal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field Programmable Gate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述的咬尾卷积码的译码方法。
本实施例的装置,在每次对待译码序列的译码迭代结束后,根据该次译码迭代得到的信息来选择下一次译码迭代的开始状态,可以避免从错误的开始状态进行译码迭代而陷入循环陷阱。并且,通过在每次译码迭代结束后,通过对每一状态进行回溯并对能够回溯到相同状态且对回溯得到的源比特的循环冗余校验错误的状态进行标记,从剩下的未标记状态中选择历史路径度量值最大的状态作为下一次开始状态,可以快速找到正确的开始状态,从统计上加快译码迭代的速度。
此外,在首次译码操作结束时,选择历史路径度量值最大的若干个状态作为结束状态进行回溯和循环冗余校验,可以增加在首次译码迭代结束时就能得到正确译码结果并结束译码的概率,无需通过多次译码迭代以遍历译码器的所有状态,进而可以降低咬尾卷积码译码的复杂度,提高译码速度。
在另一示例性实施例中,还提供了一种包括程序指令的计算机可读存储介质,例如包括程序指令的存储器502,上述程序指令可由装置500的处理器501执行以完成上述的咬尾卷积码的译码方法。本领域技术人员在考虑说明书及实践本公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

Claims (12)

1.一种咬尾卷积码的译码方法,其特征在于,应用于译码器,所述译码器具有N个状态,所述方法包括:
对待译码序列进行维特比译码迭代,得到所述N个状态中每一状态对应的幸存路径、路径度量值以及历史路径度量值;
按照路径度量值从大到小的顺序,从所述N个状态中选取k个状态作为本次译码迭代的结束状态,其中,0<k<N;
针对每一所述结束状态,通过该结束状态对应的幸存路径对该结束状态进行回溯,得到相应的开始状态和源比特;
若该结束状态回溯到与该结束状态相同的开始状态,并且对该结束状态对应的源比特的循环冗余校验错误,则对作为该结束状态的状态进行标记;
从所述N个状态中的未标记状态中,选取历史路径度量值最大的未标记状态作为新的开始状态,从所述新的开始状态出发,再次对所述待译码序列进行维特比译码迭代。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
针对每一所述结束状态,若该结束状态回溯到与该结束状态相同的开始状态,并且对该结束状态对应的源比特的循环冗余校验正确,则将该结束状态对应的源比特作为候选源比特,得到候选源比特集合;
若所述候选源比特集合中候选源比特的数量为一个,则将该候选源比特作为所述待译码序列的译码结果;
若所述候选源比特集合中候选源比特的数量为多个,则将对应的路径度量值最大的候选源比特作为所述待译码序列的译码结果。
3.根据权利要求1所述的方法,其特征在于,在所述从所述新的开始状态出发,再次对所述待译码序列进行维特比译码迭代之后,所述方法还包括:
将作为所述新的开始状态的未标记状态作为本次译码迭代的结束状态,通过该结束状态对应的幸存路径对该结束状态进行回溯,得到相应的开始状态和源比特;
若该结束状态回溯到与该结束状态相同的开始状态,并且对该结束状态对应的源比特的循环冗余校验错误,则对作为该结束状态的状态进行标记;
从所述N个状态中的未标记状态中,选取历史路径度量值最大的未标记状态作为下一次译码迭代的开始状态,从该开始状态出发,再次对所述待译码序列进行维特比译码迭代。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若所述本次译码迭代的结束状态回溯到与该结束状态相同的开始状态,并且对该结束状态对应的循环冗余检验正确,则将该结束状态对应的源比特作为所述待译码序列的译码结果。
5.根据权利要求1~4中任一项所述的方法,其特征在于,在所述从所述新的开始状态出发,再次对所述待译码序列进行维特比译码迭代之前,所述方法还包括:
获取当前已对所述待译码序列进行维特比译码迭代的次数;
若所述次数达到预设阈值,则停止对所述待译码序列进行维特比译码迭代。
6.一种咬尾卷积码的译码装置,其特征在于,应用于译码器,所述译码器具有N个状态,所述装置包括:
第一译码模块,被配置为对待译码序列进行维特比译码迭代,得到所述N个状态中每一状态对应的幸存路径、路径度量值以及历史路径度量值;
第一选取模块,被配置为按照路径度量值从大到小的顺序,从所述N个状态中选取k个状态作为本次译码迭代的结束状态,其中,0<k<N;
第一回溯模块,被配置为针对每一所述结束状态,通过该结束状态对应的幸存路径对该结束状态进行回溯,得到相应的开始状态和源比特;
第一标记模块,被配置为若该结束状态回溯到与该结束状态相同的开始状态,并且对该结束状态对应的源比特的循环冗余校验错误,则对作为该结束状态的状态进行标记;
第一开始状态选择模块,被配置为从所述N个状态中的未标记状态中,选取历史路径度量值最大的未标记状态作为新的开始状态,从所述新的开始状态出发,再次对所述待译码序列进行维特比译码迭代。
7.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第二获取模块,被配置为针对每一所述结束状态,若该结束状态回溯到与该结束状态相同的开始状态,并且对该结束状态对应的源比特的循环冗余校验正确,则将该结束状态对应的源比特作为候选源比特,得到候选源比特集合;
第一译码结果输出模块,被配置为若所述候选源比特集合中候选源比特的数量为一个,则将该候选源比特作为所述待译码序列的译码结果;
第二译码结果输出模块,被配置为若所述候选源比特集合中候选源比特的数量为多个,则将对应的路径度量值最大的候选源比特作为所述待译码序列的译码结果。
8.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第二回溯模块,被配置为在再次对所述待译码序列进行维特比译码迭代之后,将作为所述新的开始状态的未标记状态作为本次译码迭代的结束状态,再次执行所述通过该结束状态对应的幸存路径对该结束状态进行回溯,得到相应的开始状态和源比特;
第二标记模块,被配置为若该结束状态回溯到与该结束状态相同的开始状态,并且对该结束状态对应的源比特的循环冗余校验错误,则对作为该结束状态的状态进行标记;
第二开始状态选择模块,被配置为从所述N个状态中的未标记状态中,选取历史路径度量值最大的未标记状态作为下一次译码迭代的开始状态,从该开始状态出发,再次对所述待译码序列进行维特比译码迭代。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
第三译码结果输出模块,被配置为若所述本次译码迭代的结束状态回溯到与该结束状态相同的开始状态,并且对该结束状态对应的循环冗余检验正确,则将该结束状态对应的源比特作为所述待译码序列的译码结果。
10.根据权利要求6~9中任一项所述的装置,其特征在于,所述装置还包括:
第三获取模块,被配置为在再次对所述待译码序列进行维特比译码迭代之前,获取当前已对所述待译码序列进行维特比译码迭代的次数;
停止模块,被配置为若所述次数达到预设阈值,则停止对所述待译码序列进行维特比译码迭代。
11.一种咬尾卷积码的译码装置,其特征在于,应用于译码器,所述译码器具有N个状态,所述装置包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为实现权利要求1~5中任一项所述方法的步骤。
12.一种计算机可读存储介质,其上存储有计算机程序指令,其特征在于,该程序指令被处理器执行时实现权利要求1~5中任一项所述方法的步骤。
CN201810873377.6A 2018-08-02 2018-08-02 咬尾卷积码的译码方法、装置及存储介质 Active CN110798231B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810873377.6A CN110798231B (zh) 2018-08-02 2018-08-02 咬尾卷积码的译码方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810873377.6A CN110798231B (zh) 2018-08-02 2018-08-02 咬尾卷积码的译码方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN110798231A CN110798231A (zh) 2020-02-14
CN110798231B true CN110798231B (zh) 2024-01-30

Family

ID=69425229

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810873377.6A Active CN110798231B (zh) 2018-08-02 2018-08-02 咬尾卷积码的译码方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN110798231B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114337690A (zh) * 2020-10-12 2022-04-12 瑞昱半导体股份有限公司 数据译码电路及方法
CN114430280A (zh) * 2020-10-29 2022-05-03 华为技术有限公司 一种译码方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101662293A (zh) * 2009-08-26 2010-03-03 深圳华为通信技术有限公司 一种译码方法和设备
CN102891690A (zh) * 2011-07-19 2013-01-23 上海无线通信研究中心 一种咬尾卷积码译码方法
CN103634015A (zh) * 2012-08-28 2014-03-12 上海无线通信研究中心 咬尾码的最大似然译码算法
CN103905068A (zh) * 2012-12-26 2014-07-02 中国移动通信集团公司 一种维特比译码方法及系统
CN107911195A (zh) * 2017-10-19 2018-04-13 重庆邮电大学 一种基于cva的咬尾卷积码信道译码方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101667840B (zh) * 2009-09-08 2012-12-12 华为技术有限公司 一种咬尾译码方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101662293A (zh) * 2009-08-26 2010-03-03 深圳华为通信技术有限公司 一种译码方法和设备
CN102891690A (zh) * 2011-07-19 2013-01-23 上海无线通信研究中心 一种咬尾卷积码译码方法
CN103634015A (zh) * 2012-08-28 2014-03-12 上海无线通信研究中心 咬尾码的最大似然译码算法
CN103905068A (zh) * 2012-12-26 2014-07-02 中国移动通信集团公司 一种维特比译码方法及系统
CN107911195A (zh) * 2017-10-19 2018-04-13 重庆邮电大学 一种基于cva的咬尾卷积码信道译码方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种低复杂度咬尾卷积码译码算法;徐明;钱骅;;通信技术(04);全文 *

Also Published As

Publication number Publication date
CN110798231A (zh) 2020-02-14

Similar Documents

Publication Publication Date Title
US20150006992A1 (en) Method and decoder for processing decoding
CN101431388B (zh) 译码编码数据帧的方法及其译码器
CZ296383B6 (cs) Dekodér pro mrízové kódy s odstranováním doplnkových bitu a zpusob jejich dekódování
US7480852B2 (en) Method and system for improving decoding efficiency in wireless receivers
CN110798231B (zh) 咬尾卷积码的译码方法、装置及存储介质
JP4806673B2 (ja) 復号装置及び復号方法
US7512870B2 (en) Method and system for improving the performance of a trellis-based decoder
KR20230003466A (ko) 폴라리제이션-조정 컨볼루션 코드들의 리스트 디코딩
JP5438150B2 (ja) 通信システムでの復号化のための装置及び方法
US9419656B2 (en) Decoder and method for decoding an encoded sequence of bits
KR100853139B1 (ko) 전송 포맷 검출 장치 및 방법
JP3233847B2 (ja) ビタビ復号方法及びビタビ復号回路
US7404139B2 (en) Decoder with M-AT-A-Time Traceback
JP2008118327A (ja) ビタビ復号方法
JP4244700B2 (ja) ターボ復号器及びそれに用いるダイナミック復号方法
CN104796160A (zh) 译码方法和装置
CN105356893A (zh) 一种尾码可配置的Viterbi解码方法及解码器
JP5169771B2 (ja) 復号器および復号方法
CN110912648B (zh) 物理广播信道pbch检测方法、用户设备及可读存储介质
JP6552765B2 (ja) 復号装置
CN108768412B (zh) 一种低延时Viterbi译码方法及系统
CN112702141B (zh) 可调的串行抵消列表极化码译码方法和装置
JP7052868B2 (ja) 復号装置、復号方法、及びプログラム
CN111614363B (zh) 维特比算法的改进方法和接收装置
CN112187402A (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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 100085 unit C, building C, lin66, Zhufang Road, Qinghe, Haidian District, Beijing

Applicant after: Beijing Xiaomi pinecone Electronic Co.,Ltd.

Address before: 100085 Beijing city Haidian District Qinghe Shun Yip things Park Building 3 unit A

Applicant before: BEIJING PINECONE ELECTRONICS Co.,Ltd.

GR01 Patent grant
GR01 Patent grant