CN109462407B - 维特比译码方法、设备及存储介质 - Google Patents
维特比译码方法、设备及存储介质 Download PDFInfo
- Publication number
- CN109462407B CN109462407B CN201811527984.3A CN201811527984A CN109462407B CN 109462407 B CN109462407 B CN 109462407B CN 201811527984 A CN201811527984 A CN 201811527984A CN 109462407 B CN109462407 B CN 109462407B
- Authority
- CN
- China
- Prior art keywords
- subsequence
- state
- sequence
- subsequences
- output
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/41—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Abstract
本申请实施例提供一种维特比译码方法、设备及存储介质。在本申请实施例中,在对接收到的数据序列进行分段并行译码的基础上,进一步针对每一个分段形成的子序列,在每个时刻内对所有状态,并行计算每个时刻输出的序列片段在该时刻状态下的分支度量值,并对各子序列中在每个时刻输出的序列片段在该时刻状态下的分支度量值进行并行加比选,进而确定出各子序列的幸存路径;之后根据每个子序列的幸存路径,确定接收到的数据序列的译码结果。在本申请实施例中,在对接收到的数据序列进行维特比译码过程中,引入两次并行计算,可提高译码速率。
Description
技术领域
本申请涉及无线通信技术领域,尤其涉及一种维特比译码方法、设备及存储介质。
背景技术
卷积码自从问世以来,经过不断的发展,目前已经成为最流行的一种信道编码方式,广泛应用于各类无线通信系统中,例如WIFI,WIMAX,LTE等,使无线系统具有一定的纠错能力和抗干扰能力,可极大地避免码流传送中误码的发生,极大地提高了数据传输的可靠性。
对于数据接收端在接收到卷积码时,需要采用一定的规则对卷积码进行译码,而维特比(Viterbi)译码由于其优良的译码性能与译码效率,自该算法提出以来即得到了广泛的应用。但是,现有的维特比译码器仍存在译码速率较慢的问题。
发明内容
本申请的多个方面提供一种维特比译码方法、设备及存储介质,用以提高译码速率。
本申请实施例提供一种维特比译码方法,包括:
将接收到的数据序列切分成N个子序列,其中相邻的两个子序列具有M个比特重叠,其中N为大于1的整数,M为正整数;
在对所述N个子序列进行并行处理的过程中,针对第一子序列,以并行方式计算所述第一子序列中在每个时刻输出的序列片段在相应时刻的各状态下的分支度量值;
对所述第一子序列中在每个时刻输出的序列片段在相应时刻的各状态下的分支度量值进行加比选,以得到所述第一子序列的幸存路径;
根据所述N个子序列的幸存路径,确定所述数据序列的译码结果;
其中,所述第一子序列为所述N个子序列中的任一子序列。
本申请实施例还提供一种接收设备,包括:存储器、处理器和通信组件;
所述通信组件,用于接收待译码的数据序列;
所述存储器,用于存储计算机程序与所述数据序列;
所述处理器,耦合至所述存储器,用于执行所述计算机程序以用于:
将所述数据序列切分成N个子序列,其中相邻的两个子序列具有M个比特重叠,其中N为大于1的整数,M为正整数;
在对所述N子序列进行并行处理的过程中,针对第一子序列,以并行方式计算所述第一子序列中在每个时刻输出的序列片段在相应时刻的各状态下的分支度量值;
对所述第一子序列中在每个时刻输出的序列片段在相应时刻的各状态下的分支度量值进行加比选,以得到所述第一子序列的幸存路径;
根据所述N个子序列的幸存路径,确定所述数据序列的译码结果;
其中,所述第一子序列为所述N个子序列中的任一子序列。
本申请实施例还提供一种存储有计算机指令的计算机可读存储介质,其特征在于,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行上述维特比译码方法中的步骤。
在本申请实施例中,在对接收到的数据序列进行分段并行译码的基础上,进一步针对每一个分段形成的子序列,在每个时刻内对所有状态,并行计算每个时刻输出的序列片段在该时刻状态下的分支度量值,并对各子序列中在每个时刻输出的序列片段在该时刻状态下的分支度量值进行并行加比选,进而确定出各子序列的幸存路径;之后根据每个子序列的幸存路径,确定接收到的数据序列的译码结果。在本申请实施例中,在对接收到的数据序列进行维特比译码过程中,引入两次并行计算,可提高译码速率。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请实施例提供的一种维特比译码方法的流程示意图;
图2a-图2e为本申请实施例提供的维特比译码过程的示意图;
图3a和图3b为本申请实施例提供的维特比译码方法的性能仿真图;
图4为本申请实施例提供的一种接收设备的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
针对现有维特比译码方式译码速率比较缓慢的技术问题,本申请实施例提供一种解决方案,其基本原理为:在对接收到的数据序列进行分段并行译码的基础上,针对每一个分段形成的子序列,进一步在每个时刻内对所有状态,并行计算每个时刻输出的序列片段在该时刻状态下的分支度量值,并对各子序列中在每个时刻输出的序列片段在该时刻状态下的分支度量值进行并行加比选,进而确定出各子序列的幸存路径;之后根据每个子序列的幸存路径,确定接收到的数据序列的译码结果。在本申请实施例中,在对接收到的数据序列进行维特比译码过程中,引入两次并行计算,可提高译码速率。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1为本申请实施例提供的一种维特比译码方法的流程示意图。如图1所示,该方法包括:
101、将接收到的数据序列切分成N个子序列,其中相邻的两个子序列具有M个比特重叠,其中N为大于1的整数,M为正整数。
102、在对N个子序列进行并行处理的过程中,针对第一子序列,以并行方式计算第一子序列中在每个时刻输出的序列片段在相应时刻的各状态下的分支度量值。
103、对第一子序列中在每个时刻输出的序列片段在相应时刻的各状态下的分支度量值进行加比选,以得到第一子序列的幸存路径。
104、根据N个子序列的幸存路径,确定数据序列的译码结果。
在本实施例中,维特比译码主要用于对卷积码进行译码。在步骤101中,接收到的数据序列为经过卷积码编码器编码后输出的数据序列。其中,若卷积码表示为(n,k,p),则表示将k个比特位编译成n个比特位进行输出,其约束长度为p,该卷积码具有2k*(p-1)个状态;即k表示输入的比特位数,n表示输出的比特位数。例如对于(2,1,3)的卷积码,则表示每1位输入码元可编译成2位输出码元,其具有4种状态:S0(00)、S1(01)、S2(10)和S0(11)。
在步骤101中,将接收到的数据序列切分成N个子序列,便于后续对N个子序列进行并行译码,可提高译码的速率。进一步,考虑到卷积码是一种前向纠错码,它处理输入传输块的信息是顺次的或者连续的。卷积码的输出不仅与当前的输入数据有关,而且还与以前的输入数据或输出数据相关。如果对接收到的数据序列进行直接分段,将会影响对数据序列的译码的准确率。为了保持各个子序列之间的关联性,提高译码的准确率,在步骤101中,在对数据序列进行分段时,使相邻的两个子序列具有M个比特重叠,即前一个子序列的尾部数据与下一子序列的首部数据重叠。其中,M为正整数。
进一步,对于重叠的M个比特,相当于冗余信息,其取值太大将会影响译码器的译码速率;但是如果M取值过小,又将会破坏相邻的两个子序列之间的关联性。基于此,在本申请实施例中,对于一个(n,k,p)的卷积码来说,取M≥2k*(p-1)。这样,在保证相邻的子序列之间的关联性,提高译码准确率的同时,还可降低重叠部分对译码速率的影响,进一步提高译码速率。
进一步,在步骤102和103中,对步骤101得到的N个子序列进行并行译码处理。对N个子序列进行并行译码处理的过程相同,在本实施例中,以第一子序列为例,进行示例性说明。其中,第一子序列为N个子序列中的任一子序列。
对于第一子序列,在步骤102和103中,针对每个时刻,可对第一子序列在该时刻输出的序列片段进行处理,其中,每个时刻输出的序列片段的比特位数与卷积码的输出比特位数相同,即对于一个(n,k,p)的卷积码,第一子序列在每个时刻输出的序列片段的长度为n个比特位。而第一子序列在每个时刻输出的序列片段在相应时刻内的状态为2k*(p-1)种。例如,对于一个(2,1,3)的卷积码,第一子序列在每个时刻输出的序列片段的长度为2个比特位,且其可能的状态为4种,分别为:S0(00)、S1(01)、S2(10)和S3(11);又例如,对于一个(2,1,4)的卷积码,第一子序列在每个时刻输出的序列片段的长度为2个比特位,且其可能的状态为8种,分别用S0(000),S1(001),……,S7(111)表示。
在步骤102中,针对第一子序列,以并行方式计算第一子序列中在每个时刻输出的序列片段在相应的时刻内的状态下的分支度量值。即对于一个(n,k,p)的卷积码,对于当前时刻,在当前时刻内的2k*(p-1)种状态下,并行计算第一子序列中在当前时刻输出的n个比特数在2k*(p-1)种状态下的分支度量值。其中,分支度量值反映第一子序列在当前时刻输出的n个比特位如果经过该分支可能产生的误码率,且误码率越小,即分支度量值越小,译码结果的准确率越高。
进一步,在步骤103中,对第一子序列中在每个时刻输出的序列片段在相应的分支度量值进行加比选,进而得到第一子序列的幸存路径。其中,加比选中的加操作是指:对于上述(n,k,p)的卷积码,将在步骤102中并行计算得到的第一子序列中在当前时刻输出的n个比特数在2k*(p-1)种状态下的分支度量值,分别与前一时刻确定出的路径度量值进行相加求和;加比选中的比操作是指:将得到求和结果进行比较;加比选中的选操作是指:对于当前时刻的2k*(p-1)种状态,选择最优竞争路径作为当前时刻相应的状态的幸存路径,即选择到达当前时刻的2k*(p-1)种状态中出错率最小的路径对应的状态,所形成的路径作为当前状态的幸存路径,进而得到第一子序列的幸存路径。
由于N个子序列是按照步骤102和步骤103并行处理的,进而可得到N个子序列分别对应的幸存路径。接下来,进入步骤104,根据N个子序列的幸存路径,并可确定上述数据序列对应的译码结果。
在本实施例中,在对接收到的数据序列进行分段并行译码的基础上,针对每一个分段形成的子序列,进一步在每个时刻内对所有状态,并行计算每个时刻输出的序列片段在该时刻状态下的分支度量值,并对各子序列中在每个时刻输出的序列片段在该时刻状态下的分支度量值进行并行加比选,进而确定出各子序列的幸存路径;之后根据每个子序列的幸存路径,确定接收到的数据序列的译码结果。在本申请实施例中,在对接收到的数据序列进行维特比译码过程中,引入两次并行计算,可提高译码速率。
在一可选实施例中,对于步骤101,一种可选实施方式为:按照设定的序列长度,将数据序列均分为N个子序列。这样在后续步骤102和103中对N个子序列进行并行处理时,可同时完成对N个子序列的处理,进而减小等待时间,可进一步加快译码速率。
可选地,在将数据序列均分为N个子序列时,可能不能严格均分,可能存在最后一个子序列的长度小于设定的序列长度的情况。进一步,若最后一个子序列的长度小于设定的序列长度,则对最后一个子序列进行补0操作,使其长度等于设定的序列长度。
在上述步骤102中,若数据序列是基于对于(n,k,p)的卷积码编码形成的,则可将第一子序列中的在当前时刻输出的序列片段在当前时刻内的2k*(p-1)种状态作为入口参数,调用单指令多数据流扩展(Streaming SIMD Extensions,SSE)指令集;并利用SSE指令集,并行计算第一子序列中在当前时刻输出的序列片段在2k*(p-1)种状态下的分支度量值,可进一步提高处理速度。
例如,对于一个(2,1,3)的卷积码,可将第一子序列中的在当前时刻输出的序列片段在当前时刻内的4种状态(S0(00)、S1(01)、S2(10)和S3(11))作为入口参数,调用SSE指令集;并利用SSE指令集,并行计算第一子序列中在当前时刻输出的序列片段分别在4种状态下的分支度量值,可将处理速度提高4倍。又例如,对于一个(2,1,7)的卷积码,可将第一子序列中的在当前时刻输出的序列片段在当前时刻内的64种状态(S0(000000),S1(000001),S2(000010),……,S63(111111))作为入口参数,调用SSE指令集;并利用SSE指令集,并行计算第一子序列中在当前时刻输出的序列片段分别在64种状态下的分支度量值,最大可将处理速度提高64倍。
进一步,可选地,可根据卷积码的状态数量和处理速度要求,选用不同的位数的寄存器进行并行处理。例如,对于一个(n,k,p)的卷积码,可利用SSE128bit对第一子序列中在当前时刻输出的序列片段分别在16种状态下的分支度量值进行并行处理。每种状态可采用无符号字节表示(uchar,8bit),则每128bit可以表示16种状态,每次可以处理16种状态的分支度量和加比选,将处理速度提升16倍。又例如,可利用SSE 256bit对第一子序列中在当前时刻输出的序列片段分别在32种状态下的分支度量值进行并行处理。对于一个(n,k,p)的卷积码的2k*(p-1)种状态,每种状态可采用无符号字节表示(uchar,8bit),则对于SSE256bit,每256bit可以表示32种状态,每次可以处理32种状态的分支度量和加比选,将处理速度提升32倍。
进一步,在上述步骤102中,可采用计算所有可能输入数据对应的编码输出数据与当前时刻实际接收到的数据之间的距离进行分支度量。可选地,分支度量值可采用汉明距离、欧式距离等进行表示。
相应地,利用SSE指令集,并行计算第一子序列中在当前时刻输出的序列片段在2k *(p-1)种状态下的分支度量值的一种可选实施方式为:对于(n,k,p)的卷积码,利用SSE指令集,在当前时刻内对2k*(p-1)种状态,分别在假设当前时刻编码时输入为k个输入比特位数对应的所有输入码元片段的情况下,根据卷积码编码器对应的卷积码多项式,并行计算所述所有输入码元片段分别对应的卷积码编码输出值;并行计算卷积码编码输出值和第一子序列中在当前时刻输出的序列片段的距离,并将计算出来的距离分别作为第一子序列中在当前时刻输出的序列片段在2k*(p-1)种状态下的分支度量值。
例如,对于一个(2,1,3)的卷积码,其在当前时刻编码时输入的比特位为1位,输入码元片段为0或1,即在当前时刻内的所有状态(00、01、10、11)下,分别在假设当前时刻编码时输入0和1的情况下,根据卷积码编码器对应的卷积码多项式,并行计算0和1分别对应的卷积码编码输出值,每个卷积码编码输出值为2个比特;接着,并行计算在当前时刻内的所有状态(S0(00)、S1(01)、S2(10)和S3(11))下0和1分别对应的卷积码编码输出值和第一子序列中在当前时刻输出2个比特的距离,并将计算出来的距离,作为第一子序列中在当前时刻输出的2个比特在当前时刻状态(S0(00)、S1(01)、S2(10)和S3(11))下的分支度量值。
可选地,可采用汉明距离、欧式距离等,计算卷积码编码输出值和第一子序列中在当前时刻输出的序列片段的距离。当采用欧式距离时,对于一个(2,n,p)的卷积码,欧式距离公式表示为进一步,为降低计算复杂度,分支度量简化欧式距离的计算:d=|x1-x0|+|y1-y0|;其中,x1和y1表示卷积码输出值对应的2个码元;x0和y0表示当前时刻某一种状态对应的2个码元。需要说明的是,欧式距离公式可根据卷积码输出比特位数进行相应的调整,例如对于输出比特位数为3的卷积码,简化欧式距离公式可表示为:d=|x1-x0|+|y1-y0|+|z1-z0|;其中,x1、y1和z1表示卷积码输出值对应的3个码元;x0、y0和z0表示当前时刻某一种状态对应的3个码元。
基于上述第一子序列中在当前时刻输出的序列片段在当前时刻下的2k*(p-1)种状态下的分支度量值,步骤103的一种可选实施方式为:针对当前时刻内的2k*(p-1)种状态,采用基4(Radix-4)算法,将第一子序列中在当前时刻输出的序列片段在第一状态下的分支度量值,与前一时刻2k*(p-1)种状态中可到达第一状态的目标状态对应的幸存路径度量值进行相加求和;从求和结果中选择最小的求和结果对应的路径作为第一子序列中在当前时刻输出的序列片段在第一状态下的幸存路径。其中,第一状态为2k*(p-1)种状态中的任一状态。
其中,基4算法可以同时对卷积码编码器输出的两个时刻的卷积码编码值进行并行处理,即对于(n,k,p)的卷积码,基4算法可以同时处理2n bit的卷积码编码值,也就是说,采用基4算法,第一子序列中在当前时刻输出的序列片段为2n bit。进一步,利用基4算法,可将第一子序列中在当前时刻输出的序列片段2n bit在第一状态下的分支度量值,与前一时刻2k*(p-1)种状态中可到达第一状态的目标状态对应的幸存路径度量值进行相加求和。相较于基2算法,只能将第一子序列中在当前时刻输出的序列片段n bit在第一状态下的分支度量值,与前一时刻2k*(p-1)种状态中可到达第一状态的目标状态对应的幸存路径度量值进行相加求和,采用基4算法,可以进一步提高译码速率。
可选地,由于卷积码编辑器对应的卷积码多项式决定了从上一状态转移至下一状态的转移路径,因此,在将第一子序列中在当前时刻输出的序列片段在第一状态下的分支度量值,与前一时刻2k*(p-1)种状态中可到达第一状态的状态对应的幸存路径度量值进行相加求和之前,可根据卷积码多项式,确定前一时刻2k*(p-1)种状态中可到达第一状态的目标状态。
例如,对于一个(2,1,3)的卷积码,可根据其对应的卷积码多项式,确定前一时刻的4种状态中到达当前时刻的4种状态的目标状态。对于当前4种状态中的S0(00),可根据卷积码多项式,确定前一时刻的4种状态是哪两种状态到达当前状态中的S0(00)。值得说明的是,如果当前时刻为进行维特比译码的第一时刻,可将初始状态下的分支度量默认设置为0,并在对第一子序列中在第一时刻输出的序列片段在当前时刻状态下的分支度量值进行加选比时,将第一子序列中在第一时刻输出的序列片段在当前时刻状态下的分支度量值最小的分支对应的路径,作为第一子序列片段在第一时刻的幸存分支路径。
进一步,在确定出N个子序列分别对应的幸存路径时,便可根据N个子序列的幸存路径确定出数据序列的幸存路径。又由于N个子序列中相邻的两个子序列之间有M个比特的重叠,在确定数据序列对应的幸存路径时,可根据相邻子序列中重叠的M个比特,对相邻子序列的幸存路径进行去重处理;将去重后的N个子序列的幸存路径进行拼接,得到数据序列的幸存路径;并根据数据序列的幸存路径,得到数据序列的译码结果。
可选地,可按照数据序列的幸存路径进行串行回溯,进而得到数据序列对应的译码结果。
为了便于理解上述维特比译码过程,下面以(2,1,3)的卷积码为例,并结合图2a-图2e对其进行示例性说明。如图2a-图2e所示,(2,1,3)的卷积码,在每一时刻具有4种状态:S0(00)、S1(01)、S2(10)和S3(11),并假设接收到的数据序列的第一子序列为:11、10、11、00、01、10。
路径度量值初始化:
步骤1:如图2a所示,对4种状态S0(00)、S1(01)、S2(10)和S3(11),下文简称为S0、S1、S2和S3对应的初始路径度量值进行默认初始化,即将S0的初始路径度量值初始化为0,将状态S1、S2和S3对应的初始路径度量值初始化为∞。或者,可采用一个较大值代替状态01、10和11对应的初始路径度量值初始化值∞,例如用1000代替∞等。
并行分支度量:
步骤2:如图2a所示,第一子序列中在第一时刻输出的序列片段为1110。根据卷积码多项式,并行计算在4种状态下S0、S1、S2和S3,卷积码编码器对应的分别输入0和1时的卷积码输出值分别为:0/00和1/11(00状态下)、0/10和1/01(01状态下)、0/11和1/00(10状态下)、0/01和1/10(11状态下)。
步骤3:如图2a所示,根据卷积码多项式,并行确定到达第一时刻的4种状态中状态的竞争路径分别为:到达S0的竞争路径为S0→S0→S0、S1→S0→S0、S2→S1→S0和S3→S1→S0;到达S1的竞争路径为S0→S2→S1、S1→S2→S1、S2→S3→S1和S3→S3→S1;到达S2的竞争路径为S0→S0→S2、S1→S0→S2、S2→S1→S2和S3→S1→S2以及到达S3的竞争路径为S0→S2→S3、S1→S2→S3、S2→S3→S3和S3→S3→S3。
步骤4:并行计算序列片段1110在4种状态S0、S1、S2和S3下的分支度量值。可选地,可将4种状态S0、S1、S2和S3作为入口参数调用SSE指令集,并利用SSE指令集,并行计算序列片段1110在4种状态S0、S1、S2和S3的分支度量值。具体过程为:针对4种状态S0、S1、S2和S3,并行计算在每种状态下第一子序列中当前时刻接收到的序列片段1110与卷积码编辑器在当前时刻分别输入两个码元的卷积码输出值的距离。其中,序列片段1110在4种状态下的分支度量值为并行计算,现以计算序列片段1110在状态S0的分支度量值为例,对计算过程进行示例性说明。对于状态S0,如图2a所示,计算第一子序列中当前时刻输出的序列片段1110与0000、1000、1110和0110的距离分别为:3、1、0和1,即序列片段1110在状态S0的分支度量值为:3、1、0和1。同理,可并行计算出序列片段1110在状态S1的分支度量值为:0、2、4和3;序列片段1110在状态S2的分支度量值为:2、1、2和3;序列片段1110在状态S3的分支度量值为:1、2、2和1。
并行加比选:
步骤5:加操作:并行计算序列片段1110在4种状态下的分支度量值与与其所对应上一时刻的路径度量值(初始路径度量值0、∞、∞、∞)相加。对于当前时刻的4种状态,其加操作为并行执行的。例如,以计算序列片段1110在状态S0与其对应的上一时刻的路径度量值为例进行示例性说明。如图2a所示,对于当前时刻的状态S0,从初始状态到达其的竞争路径为S0→S0→S0、S1→S0→S0、S2→S1→S0和S3→S1→S0,因此,将序列片段1110在状态S0下的分支度量值3、1、0和1分别与其所对应的初始状态S0的初始路径度量值0、初始状态S1的初始路径度量值∞、初始状态S2的初始路径度量值∞以及初始状态S3的初始路径度量值∞相加,得到序列片段1110在状态S0下对应的求和结果分别为3、∞、∞和∞。同理,可并行得到序列片段1110在状态S1下对应的求和结果分别为1、∞、∞和∞;序列片段1110在状态S2下对应的求和结果分别为2、∞、∞和∞;序列片段1110在状态S3下对应的求和结果分别为1、∞、∞和∞。
步骤6:比操作:并行比较第一时刻同一状态下的求和结果。序列片段1110在4种状态下对应的求和结果的比较操作是并行执行的。例如,并行将上述序列片段1110在状态S0下对应的求和结果3、∞、∞和∞进行比较,将序列片段1110在状态S1下对应的求和结果分别为1、∞、∞和∞进行比较,将序列片段1110在状态S2下对应的求和结果分别为2、∞、∞和∞进行比较;将序列片段1110在状态S3下对应的求和结果分别为1、∞、∞和∞进行比较。
步骤7:选操作:从第一时刻同一状态下的求和结果中最小的结果对应的路径作为序列片段1110在第一时刻状态下的幸存路径,并将对应的求和结果作为该幸存路径的路径度量值。例如,如图2b所示,从选择上述求和结果3对应的分支路径S0→S0→S0,作为序列片段1110在第一时刻状态S0下的幸存路径,并将3作为该幸存路径的路径度量值。对于当前时刻的4种状态,其选操作为并行执行的。采用同样的方法,将分支路径S0→S2→S1作为序列片段1110在第一时刻状态S1下的幸存路径,并将1作为该幸存路径的路径度量值;将分支路径S0→S0→S2作为序列片段1110在第一时刻状态S2下的幸存路径,并将3作为该幸存路径的路径度量值;将分支路径S0→S2→S3作为序列片段1110在第一时刻状态S3下的幸存路径,并将1作为该幸存路径的路径度量值。
步骤8:按照上述并行分支度量和并行加比选步骤,依次对第一子序列中在第二时刻、第三时刻输出的序列片段1100和0110在相应的时刻的状态下进行并行分支度量和并行加比选操作,确定第一子序列中在各时刻输出的序列片段在对应的时刻的状态下的路径度量值,确定过程分别如图2c-图2e所示,具体过程可参见上述步骤2-7,在此不再赘述,进而确定出第一子序列的幸存路径如图2e所示,该幸存路径为:S0→S2→S1→S2→S3→S1→S0。
步骤:9:根据第一子序列的幸存路径,进行串行回溯,进而得到第一子序列的译码结果为在幸存路径上输入码元序列:101100。
值得说明的是,上述维特比译码过程为第一子序列的译码结果。在本申请实施例中,对接收到的数据序列的译码过程可参见上述步骤1-9,对于首尾具有比特位重叠的相邻的子序列,可将其分别对应的幸存路径进行去重处理,进而得到整个数据序列的幸存路径,并根据去重后的幸存路径,按照上述步骤9进行串行回溯,进而得到数据序列的译码结果,即幸存路径上的输入码元序列。
还值得说明的是,在图2a-图2e所示的并行处理过程中,为了便于描述,将接收到的数据序列中的第一子序列采用二进制的比特位进行示例,在实际应用过程中,数据序列还可能为浮点型数据,例如可能为0.99 0.999、0.001 1.001等,对于浮点型数据,在并行计算第一子序列中在每个时刻输出的序列片段在当前时刻的状态下的分支度量值时,可采用上述简化的欧式距离进行计算,具体计算过程可参见上述图2a-图2e的相关描述,在此不再赘述。此外,图2a-图2e所示的并行处理过程以(2,1,3)的卷积码为例进行示出,在对(2,1,3)的卷积码,可并行处理4种状态;其计算方法同样适用于(n,k,p)的任一卷积码,例如可对(2,1,7)的卷积码的64种状态进行并行处理、对(2,2,5)的卷积码的256种状态进行并行处理等等,在此不再赘述。
需要说明的是,上述实施例所提供方法的各步骤的执行主体均可以是同一设备,或者,该方法也由不同设备作为执行主体。比如,步骤101和102的执行主体可以为设备A;又比如,步骤101的执行主体可以为设备A,步骤102的执行主体可以为设备B;等等。
另外,在上述实施例及附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如101、102等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。
为了验证本申请实施例提供的维特比译码方法的性能。此外,申请人对比了不同维特比译码方法的计算量。假设接收到的数据序列长度为L,卷积码为(n,k,p),子序列的数量为N,那么每个子段不与其相邻的子序列重叠的长度为int(L/N),其中,int(g)表示取整函数。相邻两个子序列重叠部分的长度为M。由于SSE能够并行处理K bit,其中K为2的整数次幂,且大于或等于128,又因为,每8个bit表示一种状态,所以,SSE能够并行处理K/128种状态。因此可以得到不同维特比译码方法之间的计算量如下表1所示:
表1不同维特比译码方法之间的计算量比较
根据上表1可明显得出,本申请实施例提供的维特比译码方法需要进行分支度量操作中查表的次数、加选比操作中进行加法的次数、比较选择的次数均小于其他两种译码方法;而且,本申请实施例提供的译码方法进行幸存路径存储的次数与基于SSE的串行译码方法相等,且小于直接串行译码方法进行存储的次数;进一步,在竞争路径选择与回溯方面,本申请实施例提供的译码方法的读写次数与其他两种方法相同。综上分析可得,本申请实施例提供的维特比译码方法的计算量总体上小于其他两种译码方法,可有效提高译码速率。
进一步,为了验证本申请实施例提供的译码方法的性能。申请人还针对不同译码方法之间的误码率(Bit Error Ratio,BER)进行仿真,其中误码率越低,表示译码性能越好,译码的准确率越高。其中,仿真设置如下:
考虑一种卷积码为(2,1,7)的场景,该卷积码广泛应用于WIFI协议标准与LTE协议标准中。其中卷积码多项式系数为g1=133,g2=171,M=96bit。M表示重叠bit数值。源数据序列为2048字节,针对本申请实施例提供的维特比译码方法,将数据序列分为4个子序列,SSE能够并行处理128bit,每8个bit表示一种状态,因此能够并行处理16种状态。在该仿真模型中,将生成的码元进行正交相移键控(Quadrature Phase Shift Keying,QPSK)调制,然后通过AWGN信道,并对比不同译码方法进行译码的误码率进行仿真。仿真结果如图3a所示。从图3a中可以看出,本申请实施例提供的维特比译码方法无论在高信噪比还是低信噪的情况,其BER基本上接近于串行译码的误码率,而不重叠的分段译码由于破坏了各个子序列之间的相互关联性,因此在低信噪比的情况下译码性能明显变差,即BER明显高于其他两种译码方法。此外,需要说明的是,由于仿真过程中采用信源随机生成,因此在译码的时候即便是随机译码,也有一半的概率能够译对,因此理论上BER不应该超过0.5。
进一步,基于仿真模型中,将生成的码元进行16种符号的正交幅度调制(16-Quadrature Amplitude Modulation,16-QAM),然后通过AWGN信道,并对比不同译码方法进行译码的误码率进行仿真。仿真结果如图3b所示。从图3b中可以看出,本申请实施例提供的维特比译码方法,相比分段译码并行回溯译码拥有更低的误码率,这是因为本申请实施例提供的方法在进行回溯的时候充分考虑了各个子序列之间的关联性,减少由于对数据序列进行分段带来的性能损失。
本申请实施例还提供一种存储有计算机指令的计算机可读存储介质。当计算机指令被一个或多个处理器执行时,致使一个或多个处理器执行上述维特比译码方法中的步骤。
图4为本申请实施例提供的一种接收设备的结构示意图。接收设备为通信系统中用于接收数据的设备。例如可以是工作站、网络用户的终端设备(例如智能手机、个人计算机等),还可以是服务器、打印机和其他网络连接的设备等。如图4所示,该接收设备包括:存储器40a、处理器40b和通信组件40c。
其中通信组件40c,用于接收待译码的数据序列。通信组件40c被配置为便于接收设备和其他设备之间有线或无线方式的通信。接收设备可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件还可基于近场通信(NFC)技术,射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
存储器40a,用于存储计算机程序与上述待译码的数据序列,并可被配置为存储其它各种数据以支持在接收设备上的操作。其中,处理器40b可执行存储器104中存储的计算机程序,以实现相应控制逻辑。存储器104可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
处理器40b,耦合至存储器40a,用于执行计算机程序以用于:将数据序列切分成N个子序列,其中相邻的两个子序列具有M个比特重叠,其中N为大于1的整数,M为正整数;在对N个子序列进行并行处理的过程中,针对第一子序列,以并行方式计算第一子序列中在每个时刻输出的序列片段在该时刻状态下的分支度量值;对第一子序列中在每个时刻输出的序列片段在该时刻状态下的分支度量值进行加比选,以得到第一子序列的幸存路径;根据N个子序列的幸存路径,确定数据序列的译码结果;其中,第一子序列为N个子序列中的任一子序列。
在一可选实施例中,对于对于(n,k,p)的卷积码,M≥2k*(p-1)。
在另一可选实施例中,处理器40b在将接收到的数据序列切分成N个子序列时,具体用于:按照设定的序列长度,将数据序列均分为N个子序列;若最后一个子序列的长度小于设定的序列长度,则对最后一个子序列进行补0操作。
在又一可选实施例中,处理器40b在以并行方式计算第一子序列中在每个时刻输出的序列片段在相应时刻的各状态下的分支度量值时,具体用于:对于(n,k,p)的卷积码,将第一子序列中在当前时刻输出的序列片段在当前时刻内的2k*(p-1)种状态作为入口参数,调用SSE指令集;利用SSE指令集,并行计算第一子序列中在当前时刻输出的序列片段在2k *(p-1)种状态下的分支度量值;其中,n为卷积码编码器输出的比特位数;k为卷积码编码器输入的比特位数;p表示卷积码编码器的约束长度。
进一步,处理器40b在利用SSE指令集,并行计算第一子序列中在每个时刻输出的序列片段在2k*(p-1)种状态下的分支度量值具体用于:利用SSE指令集,在当前时刻内针对2k *(p-1)种状态,分别在假设当前时刻编码时输入为k个输入比特位数对应的所有输入码元片段的情况下,根据卷积码编码器对应的卷积码多项式,并行计算所有输入码元片段分别对应的卷积码编码输出值;并行计算卷积码编码输出值和第一子序列中在当前时刻输出的序列片段的距离,并将计算出的距离分别作为第一子序列中在当前时刻输出的序列片段在2k *(p-1)种状态下的分支度量值。
相应地,处理器40b在对第一子序列中在每个时刻输出的序列片段在相应时刻的各状态下的分支度量值进行加比选时,具体用于:针对当前时刻内的2k*(p-1)种状态,采用基4算法,将第一子序列中在当前时刻输出的序列片段在第一状态下的分支度量值,与前一时刻2k*(p-1)种状态中可到达第一状态的状态对应的幸存路径度量值进行相加求和;从求和结果中选择最小的求和结果对应的路径作为第一子序列中在当前时刻输出的序列片段的幸存路径第一状态为2k*(p-1)种状态中的任一状态。
进一步,处理器40b在将第一子序列中在当前时刻输出的序列片段在所有状态下的分支度量值与在当前时刻之前确定出的幸存分支路径度量值进行相加求和之前,还用于:根据卷积码多项式,确定到达当前时刻前一时刻2k*(p-1)种状态中可到达第一状态的状态。
相应地,处理器40b在确定数据序列的译码结果,具体用于:根据相邻子序列中重叠的M个比特,对相邻子序列的幸存路径进行去重处理;将去重后的N个子序列的幸存路径进行拼接,得到数据序列的幸存路径;根据数据序列的幸存路径,得到数据序列的译码结果。
在一些可选实施方式中,如图4所示,该接收设备还可以包括:电源组件40d、音频组件40e和显示屏40f等可选组件。图4中仅示意性给出部分组件,并不意味着接收设备必须包含图4所示全部组件,也不意味着接收设备只能包括图4所示组件。
其中,电源组件40c被配置为接收设备的各种组件提供电力。电源组件40c可以包括电源管理系统,一个或多个电源,及其他与为电源组件所在设备生成、管理和分配电力相关联的组件。
其中,音频组件40e可被配置为输出和/或输入音频信号。例如,音频组件包括一个麦克风(MIC),当音频组件所在设备处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器或经由通信组件40c发送。在一些实施例中,音频组件还包括一个扬声器,用于输出音频信号。
显示器40f包括屏幕,其屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。
本申请实施例提供的接收设备,在对接收到的数据进行译码时,在对接收到的数据序列进行分段并行译码的基础上,进一步针对每一个分段形成的子序列,在每个时刻内对所有状态,并行计算每个时刻输出的序列片段在该时刻状态下的分支度量值,并对各子序列中在每个时刻输出的序列片段在该时刻状态下的分支度量值进行并行加比选,进而确定出各子序列的幸存路径;之后根据每个子序列的幸存路径,确定接收到的数据序列的译码结果。在本申请实施例中,在对接收到的数据序列进行维特比译码过程中,引入两次并行计算,可提高译码速率。
需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种维特比译码方法,其特征在于,包括:
将接收到的数据序列切分成N个子序列,其中相邻的两个子序列具有M个比特重叠,其中N为大于1的整数,M为正整数;
在对所述N个子序列进行并行处理的过程中,针对第一子序列,以并行方式计算所述第一子序列中在每个时刻输出的序列片段在相应时刻的各状态下的分支度量值;
对所述第一子序列中在每个时刻输出的序列片段在相应时刻的各种状态下的分支度量值进行加比选,以得到所述第一子序列的幸存路径;
根据所述N个子序列的幸存路径,确定所述数据序列的译码结果;
其中,所述第一子序列为所述N个子序列中的任一子序列。
2.根据权利要求1所述的方法,其特征在于,以并行方式计算所述第一子序列中在每个时刻输出的序列片段在相应时刻的各状态下的分支度量值,包括:
若所述数据序列是基于(n,k,p)的卷积码编码形成的,则将所述第一子序列中在当前时刻输出的序列片段在当前时刻内的2k*(p-1)种状态作为入口参数,调用SSE指令集;
利用所述SSE指令集,并行计算所述第一子序列中在当前时刻输出的序列片段在2k*(p-1)种状态下的分支度量值;
其中,n为卷积码编码器输出的比特位数;k为所述卷积码编码器输入的比特位数;p表示所述卷积码编码器的约束长度。
3.根据权利要求2所述的方法,其特征在于,所述利用所述SSE指令集,并行计算所述第一子序列中在当前时刻输出的序列片段在2k*(p-1)种状态下的分支度量值,包括:
利用所述SSE指令集,在当前时刻内针对2k*(p-1)种状态,分别在假设当前时刻编码时输入为k个输入比特位数对应的所有输入码元片段的情况下,根据卷积码编码器对应的卷积码多项式,并行计算所述所有输入码元片段分别对应的卷积码编码输出值;
并行计算所述卷积码编码输出值和所述第一子序列中在当前时刻输出的序列片段的距离,并将计算出的距离分别作为所述第一子序列中在当前时刻输出的序列片段在2k*(p-1)种状态下的分支度量值。
4.根据权利要求3所述的方法,其特征在于,所述对所述第一子序列中在每个时刻输出的序列片段在相应时刻的各状态下的分支度量值进行加比选,以得到所述第一子序列的幸存路径,包括:
针对所述当前时刻内的2k*(p-1)种状态,采用基4算法,将所述第一子序列中在当前时刻输出的序列片段在第一状态下的分支度量值,与前一时刻2k*(p-1)种状态中可到达所述第一状态的目标状态对应的幸存路径度量值进行相加求和;
从求和结果中选择最小的求和结果对应的路径作为所述第一子序列中在当前时刻输出的序列片段在所述第一状态下的幸存路径;
所述第一状态为所述当前时刻内的2k*(p-1)种状态中的任一状态。
5.根据权利要求4所述的方法,其特征在于,在采用基4算法,将所述第一子序列中在当前时刻输出的序列片段在第一状态下的分支度量值,与前一时刻2k*(p-1)种状态中可到达所述第一状态的状态对应的幸存路径度量值进行相加求和之前,还包括:
根据所述卷积码多项式,确定前一时刻2k*(p-1)种状态中可到达所述第一状态的状态。
6.根据权利要求1所述的方法,其特征在于,所述将接收到的数据序列切分成N个子序列,包括:
按照设定的序列长度,将所述数据序列均分为N个子序列;
若最后一个子序列的长度小于所述设定的序列长度,则对所述最后一个子序列进行补0操作。
7.根据权利要求2-6任一项所述的方法,其特征在于,对于(n,k,p)的卷积码,M≥2k *(p-1)。
8.根据权利要求1-6任一项所述的方法,其特征在于,根据所述N个子序列的幸存路径,确定所述数据序列的译码结果,包括:
根据相邻子序列中重叠的M个比特,对相邻子序列的幸存路径进行去重处理;
将去重后的N个子序列的幸存路径进行拼接,得到所述数据序列的幸存路径;
根据所述数据序列的幸存路径,得到所述数据序列的译码结果。
9.一种接收设备,其特征在于,包括:存储器、处理器和通信组件;其中,
所述通信组件,用于接收待译码的数据序列;
所述存储器,用于存储计算机程序与所述数据序列;
所述处理器,耦合至所述存储器,用于执行所述计算机程序以用于:
将所述数据序列切分成N个子序列,其中相邻的两个子序列具有M个比特重叠,其中N为大于1的整数,M为正整数;
在对所述N个子序列进行并行处理的过程中,针对第一子序列,以并行方式计算所述第一子序列中在每个时刻输出的序列片段在该时刻状态下的分支度量值;
对所述第一子序列中在每个时刻输出的序列片段在该时刻状态下的分支度量值进行加比选,以得到所述第一子序列的幸存路径;
根据所述N个子序列的幸存路径,确定所述数据序列的译码结果;
其中,所述第一子序列为所述N个子序列中的任一子序列。
10.一种存储有计算机指令的计算机可读存储介质,其特征在于,当所述计算机指令被一个或多个处理器执行时,致使所述一个或多个处理器执行权利要求1-8任一项所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811527984.3A CN109462407B (zh) | 2018-12-13 | 2018-12-13 | 维特比译码方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811527984.3A CN109462407B (zh) | 2018-12-13 | 2018-12-13 | 维特比译码方法、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109462407A CN109462407A (zh) | 2019-03-12 |
CN109462407B true CN109462407B (zh) | 2022-08-16 |
Family
ID=65613156
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811527984.3A Active CN109462407B (zh) | 2018-12-13 | 2018-12-13 | 维特比译码方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109462407B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111464451B (zh) * | 2020-03-23 | 2023-04-21 | 中国科学院深圳先进技术研究院 | 一种数据流等值连接优化方法、系统及电子设备 |
CN111404560B (zh) * | 2020-03-24 | 2023-08-25 | 上海集成电路研发中心有限公司 | 一种对状态机中序列的纠错方法 |
CN113765622B (zh) * | 2021-08-26 | 2024-01-23 | 希诺麦田技术(深圳)有限公司 | 分支度量初始化方法、装置、设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1731686A (zh) * | 2005-08-08 | 2006-02-08 | 北京大学深圳研究生院 | 一种维特比译码器及用于维特比译码器的加比选单元电路 |
CN102684710A (zh) * | 2012-05-11 | 2012-09-19 | 清华大学 | 基于SSE的咬尾卷积码Viterbi译码方法 |
CN102739261A (zh) * | 2011-04-08 | 2012-10-17 | 中国科学院微电子研究所 | 多相加比选前向回溯Viterbi译码器 |
CN102804609A (zh) * | 2009-06-17 | 2012-11-28 | 相干逻辑公司 | 基于格式结构方法的并行执行 |
CN106452461A (zh) * | 2016-11-25 | 2017-02-22 | 江苏宏云技术有限公司 | 一种通过矢量处理器实现viterbi解码的方法 |
CN206099947U (zh) * | 2016-09-19 | 2017-04-12 | 江南大学 | 一种低资源消耗的多参数可配置Viterbi译码器 |
US9661163B1 (en) * | 2016-02-12 | 2017-05-23 | Xerox Corporation | Machine learning based system and method for improving false alert triggering in web based device management applications |
CN107342775A (zh) * | 2017-07-07 | 2017-11-10 | 西安电子科技大学 | 删余卷积码的维特比译码方法 |
CN108702162A (zh) * | 2015-12-07 | 2018-10-23 | Macom连接解决有限公司 | 用于维特比解码器的高速加比选 |
-
2018
- 2018-12-13 CN CN201811527984.3A patent/CN109462407B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1731686A (zh) * | 2005-08-08 | 2006-02-08 | 北京大学深圳研究生院 | 一种维特比译码器及用于维特比译码器的加比选单元电路 |
CN102804609A (zh) * | 2009-06-17 | 2012-11-28 | 相干逻辑公司 | 基于格式结构方法的并行执行 |
CN102739261A (zh) * | 2011-04-08 | 2012-10-17 | 中国科学院微电子研究所 | 多相加比选前向回溯Viterbi译码器 |
CN102684710A (zh) * | 2012-05-11 | 2012-09-19 | 清华大学 | 基于SSE的咬尾卷积码Viterbi译码方法 |
CN108702162A (zh) * | 2015-12-07 | 2018-10-23 | Macom连接解决有限公司 | 用于维特比解码器的高速加比选 |
US9661163B1 (en) * | 2016-02-12 | 2017-05-23 | Xerox Corporation | Machine learning based system and method for improving false alert triggering in web based device management applications |
CN206099947U (zh) * | 2016-09-19 | 2017-04-12 | 江南大学 | 一种低资源消耗的多参数可配置Viterbi译码器 |
CN106452461A (zh) * | 2016-11-25 | 2017-02-22 | 江苏宏云技术有限公司 | 一种通过矢量处理器实现viterbi解码的方法 |
CN107342775A (zh) * | 2017-07-07 | 2017-11-10 | 西安电子科技大学 | 删余卷积码的维特比译码方法 |
Non-Patent Citations (2)
Title |
---|
A multistandard and resource-efficient Viterbi decoder for a multimode communication system;Yi-qi XIE等;《Frontiers of Information Technology & Electronic Engineering》;20180403(第04期);147-151 * |
MIMO-OFDM系统二相ACS前向回溯基4 Viterbi译码器设计与实现;薛莲;《科技通报》;20130915(第09期);288-292 * |
Also Published As
Publication number | Publication date |
---|---|
CN109462407A (zh) | 2019-03-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109462407B (zh) | 维特比译码方法、设备及存储介质 | |
US5471500A (en) | Soft symbol decoding | |
US10790857B1 (en) | Systems and methods for using decoders of different complexity in a hybrid decoder architecture | |
Giard et al. | Fast software polar decoders | |
KR20150096340A (ko) | 터보 코드들과 컨볼루셔널 코드들의 로그 복잡도 리스트 디코딩을 위한 시스템 및 방법들 | |
US5454014A (en) | Digital signal processor | |
WO2018179246A1 (en) | Check bit concatenated polar codes | |
KR20030036845A (ko) | 트렐리스에 기초한 채널 부호화를 위한 복호기 | |
KR101212856B1 (ko) | 통신 시스템에서 데이터를 복호하는 방법 및 장치 | |
US10720944B2 (en) | Convolutional code decoder and convolutional code decoding method | |
US20200028526A1 (en) | Convolutional code decoder and convolutional code decoding method | |
KR20160026748A (ko) | 비터비 디코더 매커니즘을 갖는 전자 시스템 및 그것의 동작 방법 | |
GB2523586A (en) | Method and a device for decoding a bitstream encoded with an outer convolutional code and an inner block code | |
US8045651B2 (en) | Method and system for redundancy-based decoding in 8-PSK GSM systems | |
CN105356893A (zh) | 一种尾码可配置的Viterbi解码方法及解码器 | |
US6334202B1 (en) | Fast metric calculation for Viterbi decoder implementation | |
Van Wyk | Four-dimensional Q2PSK modulation and coding for mobile digital communication | |
CN115085742B (zh) | 解码方法、装置、电子设备和存储介质 | |
US9467174B2 (en) | Low complexity high-order syndrome calculator for block codes and method of calculating high-order syndrome | |
US9154238B2 (en) | Methods and apparatus for reducing interference effect on data transmitted over a communication channel | |
CN113162633B (zh) | 极化码的译码方法及装置、译码器、设备、存储介质 | |
CN114499548B (zh) | 一种译码方法、装置及存储介质 | |
US20060020875A1 (en) | Multi-rate viterbi decoder | |
US9294134B2 (en) | Viterbi decoding device and method for decoding a signal produced by a convolutional encoder | |
KR102302560B1 (ko) | 조인트 비터비 검출 및 복호 장치 및 그 방법 |
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 |