CN1968024A - 一种卷积码译码方法 - Google Patents
一种卷积码译码方法 Download PDFInfo
- Publication number
- CN1968024A CN1968024A CN 200610087513 CN200610087513A CN1968024A CN 1968024 A CN1968024 A CN 1968024A CN 200610087513 CN200610087513 CN 200610087513 CN 200610087513 A CN200610087513 A CN 200610087513A CN 1968024 A CN1968024 A CN 1968024A
- Authority
- CN
- China
- Prior art keywords
- path
- constantly
- difference
- global optimum
- recall
- 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
Links
Images
Landscapes
- Error Detection And Correction (AREA)
Abstract
一种卷积码译码方法,包括以下步骤:根据维特比算法,获取全局最优路径,获取译码数据;对已获取的译码数据进行差错校验,如果所述的译码为正确的译码,则输出译码,结束译码,否则继续查找其他的全局优选路径以及译码数据,查找方法是:分别根据已知的全局优选路径回溯,分别在每个全局优选路径的每个时刻与所根据的全局优选路径分离,查找相对于回溯所根据的全局优选路径的局部次优路径,获取所述局部次优路径所在的全局路径相对于全局最优路径的度量的差值,根据所述的度量的差值获取一全局优选路径,以及所获取路径对应的译码数据。对译码数据进行差错校验,如果校验不正确,则继续查找其他的全局优选路径。
Description
技术领域
本发明涉及译码方法领域,具体是涉及通讯领域的一种卷积码译码方法。
背景技术
卷积码因为编码器简单,编码增益高以及具有很强的纠正随机错误能力,因此在通讯系统中得到十分广泛的应用。基于码的网格图基础上的一种最大似然准则的维特比算法(Viterbi Algorithms,简称VA)是在加性高斯白噪声信道下性能最佳的卷积码译码方法,同时由于具有效率高、速度快、译码简单的特点,因此被广泛地应用于各种通信系统中。
Nambirajian Seshadri和Carl-Erik W.Sundberg在美国电子电机工程师学会通信学报,1994年,2月,3月,4月,第42卷,313-323页的题目为“列表维特比译码算法以及应用”文献(Nambirajan Seshadri and Carl-Erik W.Sundberg,List Viterbi Decoding Algorithms with Applications,IEEE Trans.on Comm.,Vol.42,No.2/3/4,Feb./March/April 1994,313-323.)中提出了一种列表维特比算法(一般也称为次优路径算法(List VA,简称LVA))。该方法具体是通过在网格图中,寻找L个全局优选路径来提高译码性能的。图1为LVA译码结构示意图,如图示,LVA算法在译码过程中,根据差错校验的结果从L个全局优选路径中,选择最有可能正确的路径。由于LVA相对VA增加了搜索过程中(L-1)个优选路径,提高了找到正确译码的机率,被广泛应用于包括卷积码和校验码的译码系统中。
LVA具有以下两种:并行次优路径算法(Parallel LVA,简称PLVA),和串行次优路径算法(Serial LVA,简称SLVA)。以下分别对这两种方法进行介绍:
对于PLVA,PLVA是根据VA,通过一次网格搜索,同时得到L个全局优选路径。由于对于网格图中每个时刻的每个状态都找到进入该状态的L个局部优选路径,PLVA在每个时刻的每个状态,计算2个分支度量和2L个路径度量,最终一次得到所需要的L个全局优选路径。PLVA算法与LVA算法的步骤基本相同,只是每个时刻的每个状态都具有2L个路径进入,在2L个路径中选择得到了L个局部优选路径。特别的当L=1时,就是VA。但是,PLVA在每个时刻的每个状态都需要计算2个分支度量和2L个路径度量,同时还需要L个M×N(M为卷积编码块长度,N为状态个数)的矩阵分别存储L个优选路径。与VA算法相比,PLVA算法需要额外计算(2L-2)个路径度量,额外占用(L-1)个MN矩阵存储优选路径。PLVA算法的计算量和存储空间大约是VA算法的L倍,基本与L成线性增长关系,因此需要占用巨大的存储空间。另外,由于PLVA算法不管最终选择哪一条优选路径,均要耗费L倍的计算量,因此PLVA方法实际上浪费了许多不必要的计算。
对于SLVA,SLVA首先根据VA,在前向计算中,在每时刻的每状态点,计算2个分支度量,以及累计分支最优路径度量,并存储最优路径度量、最优路径度量对应的分支度量、以及最优路径度量的路径。从卷积码最末时刻开始回溯获取全局最优路径,以及全局最优路径的译码数据,并对译码数据进行差错校验,如果校验正确,输出该正确的译码数据,结束译码;否则,分别以全局最优路径上最末时刻的状态点开始回溯,每回溯过程中分别在不同的一时刻与最优路径分离,在分离时刻的下一时刻开始按照每状态点存储的最优路径回溯,获取次优路径候选路径,根据在前向计算时已存储的,该分离时刻的不在全局最优路径上的状态点的路径度量、分离时刻的前一时刻不在全局最优路径上的另一状态点,到分离时刻的在全局最优路径上的状态点的分支度量、全局最优路径上的分离时刻的状态点的最优路径度量,获取各次优路径候选路径的路径度量,或者各次优路径候选路径相对于全局最优路径的路径度量的差值,选取路径度量最接近全局最优路径的候选路径(如果获取的是路径度量差值,那么选取差值最小的候选路径)作为全局次优路径。获取全局次优路径,并将该全局次优路径的译码进行差错校验,如果校验结果为正确,输出全局次优路径的译码,结束译码;否则继续在全局次优路径、全局最优路径基础上得到全局第3优路径,同理,直到得到第L个路径。
SLVA的优点在于只有当先前找到全局第(l-1)优选路径被判决为错误时,才需要计算全局第l优选路径。因而相对PLVA,减少了许多实际上并不需要的计算,大大减少了计算复杂度。
但是,在SLVA中,由于需要在前向计算过程中,对于网格图中的每个时刻的每个状态点存储到达该状态点的1个分支度量、最优路径度量、以及最优路径,需要占用较多的存储单元,对于卷积编码块长度为M,状态个数为N的卷积码而言,具体是M*N个度量存储单元,其中每度量存储单元、以及路径存储单元具体占用的存储单元,需要根据表示度量的比特数来确定。SLVA虽然相对于PLVA而言能够在一定程度上的减少了卷积码译码所需要的计算量、以及存储空间,然而该方法在前向计算中所需要的的存储空间仍然非常大,该需要的存储空间过大的问题,仍然大大限得局限了其在实际中的应用。
针对SLVA,Christiane Nill和Carl-Erik W.Sundberg在美国电子电机工程师学会通信学报,1995年,2月,3月,4月,第43卷,277-287页,题目为“列表和软符号输出维特比算法:扩展和对比”的文献(Christiane Nill andCarl-Erik W.Sundberg,List and Soft Symbol Output Viterbi Algorithms∷Extensions and Comparisons,IEEE Trans.On Comm.,Vol 43,2/3/4,Feb./March/April 1995,277-287)中提出了一种简化的维特比算法。该方法对于每时刻的每状态点,通过存储进入该状态的最优路径和次优路径之间的路径度量差值,简化了SLVA的回溯时计算过程,但是该方法相对现有技术而言,只是存储的变量优路径度量变成了度量差值而已,需要占用的存储空间没有改变。因此该方法仍然由于算法存储占用空间过大,大大限制了在实际中的应用。
发明内容
本发明要解决的技术问题是提供一种卷积码译码方法,以解决现有技术SLVA占用过大存储空间的问题。
为了解决上述技术问题,本发明的目的是通过以下技术方案实现的:
一种卷积码译码方法,包括以下步骤:
A、根据维特比算法,获取全局最优路径,获取译码数据,并存储全局最优路径的路径度量;
B、对所述的译码数据进行差错校验,如果差错校验正确,则输出译码,结束译码,否则执行步骤C;
C、分别根据各已知的全局优选路径回溯,分别在所述已知的全局优选路径的每个时刻与所述已知的全局优选路径分离,从所述的分离时刻开始,回溯查找相对于所述已知的全局优选路径的局部次优路径,在回溯过程中获取所述局部次优路径所在的全局路径相对于全局最优路径的度量差值,根据所述的度量差值,获取一全局优选路径,以及所获取路径对应的译码数据,返回步骤B。
本发明所述方法,所述步骤B进一步包括以下步骤:
B1、如果差错校验不正确,进一步比较已知的全局优选路径数目是否小于预设的需查找全局优选路径的总数目,如果小于,则执行步骤C;否则输出译码失败的结果,结束译码。
本发明所述方法,所述步骤A进一步存储所述全局最优路径的每个时刻的状态点的状态。
本发明所述方法,所述步骤A进一步包括:
A2、在全局最优上的每个时刻,累计并存储从所述全局最优路径的开始时刻的状态点到所述的每个时刻的状态点的路径度量。
本发明所述方法,步骤C中所述的度量差值的获取,具体为:回溯路径与全局最优路径相分离的局部路径的度量减全局最优路径与所回溯路径相分离的局部路径的度量,获取所述的度量差值。
本发明所述方法,所述步骤C具体包括以下步骤:
C11、l累加1,其中所述l为一大于0,小于所预设的需查找的全局优选路径的总数,并初始化为l=1的自然数变量;
C12、预设时刻变量j,并确定时刻j的范围,初始化时刻j;
C13、分别根据各已知的全局优选路径的路径寄存器值回溯,并在回溯到时刻j后,取与回溯所根据的已知全局优选路径不相同的另一路径;
C14、在时刻(j-1)的状态点及以后的回溯,按照最优路径回溯,并在回溯的每个时刻,累计并存储分支度量,并比较状态是否与全局最优路径在所述时刻的状态相同,如果相同,则停止回溯,获取所回溯路径与全局最优路径分离时刻与停止回溯时刻之间的,所回溯路径上的局部路径相对于全局最优路径上的局部路径的度量差值,如果j在所述步骤C12所设定的范围内,则更新时刻j,并返回步骤C13;如果j不在所述步骤C12所设定的范围内,根据所获取的差值,获取全局第l优路径,以及全局第l优路径的译码数据,返回步骤B。
本发明所述方法,步骤C14中所述的度量差值的获取,具体包括以下步骤:
C141、如果当前回溯所根据的全局优选路径是全局最优路径,所述的差值等于:停止回溯时刻相对于时刻j的累计分支度量,减去,全局最优路径上的时刻j的累计分支度量与所述停止回溯所在时刻的状态点的累计分支度量之差;否则,所述差值等于:停止回溯时刻相对于时刻j的累计分支度量,加上,当前回溯所根据的全局优选路径在时刻j的状态点的累计分支度量,减去,全局最优路径上的时刻j的累计分支度量与所述停止回溯时刻的累计分支度量之差。
本发明所述方法,步骤C中所述的度量差值的获取,具体为:所回溯路径所在的全局路径的路径度量,减全局最优路径的度量,获取所述的度量差值。
本发明所述方法,所述步骤C具体包括以下步骤:
C21、l=l+1,其中l为一大于0小于所预设的需查找的全局优选路径的总数,并初始化l=1的自然数变量;
C22、设置一自然数变量j,初始化时刻j;
C23、分别根据各已知的全局优选路径的路径寄存器值回溯,在回溯的每个时刻累计分支度量,并在回溯到时刻j时,取与回溯所根据的已知全局优选路径不相同的另一路径;
C24、在时刻(j-1)的状态点及以后的回溯,按照最优路径回溯,一直回溯到卷积码的开始时刻,获取所回溯路径的路径度量,计算获取所回溯路径与全局最优路径的路径度量差值,如果时刻j在卷积码的时刻范围内,则更新时刻j,返回步骤C23;根据所获取的差值,获取全局第l优路径,以及所述的全局第l优路径的译码数据,返回步骤B。
本发明所述方法,所述的根据所获取的差值,获取全局第l优路径,具体包括以下步骤:
C3、从所获取的差值中选取,大于全局第(l-1)优路径相对于全局最优路径的路径度量之差的差值,进一步的,在所有大于全局第(l-1)优路径相对于全局最优路径的路径度量之差的所有差值中,选取最小的差值,所述最小的差值对应的路径是全局第l优路径。
本发明所述方法,步骤C3进一步包括以下步骤:
C31、将所获取的度量差值与已存储的度量差值相比较,存储大于全局第(l-1)优路径相对于全局最优路径的路径度量差值的所有差值中最小的(L-l+1)个度量差值,以及该差值对应的路径寄存器值,其中L为所预设的需查找的全局优选路径的总数。
本发明所述方法,所述的根据所述的度量差值,获取全局第l优路径,具体是:
所有存储的度量差值中第(l-1)小的度量差值对应的路径即为全局第l优路径。
本发明所述方法,步骤C3进一步包括以下步骤:
C32、将所获取的度量差值与已存储的度量差值相比较,存储大于全局第(l-1)优路径相对于全局最优路径的路径度量差值的所有差值中最小的度量差值,以及该差值对应的路径寄存器值。
本发明所述方法,所述的根据所述的度量差值获取全局第l优路径,具体是:所获取并存储的度量差值对应的路径为全局第l优路径。
本发明所述方法,所述初始化时刻j,具体是:使时刻j等于时刻范围内最小的时刻。
本发明所述方法,所述的更新时刻j,具体是:使时刻j递增。
本发明所述方法,所述初始化时刻j,具体是:使时刻j等于时刻范围内最大的时刻。
本发明所述方法,所述的更新时刻j,具体是:使时刻j递减。
以上技术方案可以看出,与现有技术相比,本发明具有以下的优点:
首先,本发明使用了SLVA的基本原理,根据VA查找最优路径,然后根据最优路径查找全局次优路径,再根据全局最优以及次优路径寻找第3优路径,依此类推,总之根据全局1、2、3...(l-1)优路径寻找第l优的路径,并且,只要寻找到的全局优选路径的译码数据经差错校验正确,则输出该正确的译码数据,停止译码。因此本发明保留了SLVA的计算简单的特点。
本发明在查找L个优选路径时,通过分别根据已知的全局优选路径回溯,分别在每个全局优选路径的每个时刻与所根据的全局优选路径分离,查找相对于回溯所根据的全局优选路径的局部次优路径,获取所述局部次优路径所在的全局路径相对于全局最优路径的度量差值,根据所述的度量差值获取全局优选路径。同时针对所述的度量差值的获取,本发明还提供了两种解决方案:
方案一:直接通过计算所回溯路径所在的全局路径的路径度量,减全局最优路径的度量获取所述的度量差值。在本方案下,提出了两种存储机制:第一种,在查找全局最优路径时的前向计算过程中,保存每时刻的每状态点的最优路径,以及全局最优路径的路径度量,在查找除全局最优路径外的其他全局优选路径过程中,设当前查找的全局优选路径的路径号为l,保存所回溯的全局路径相对于全局最优路径的路径度量差值中,满足度量差值大于全局第(l-1)优路径相对于全局最优路径的路径度量差值的所有度量差值中最小的(L-l+1)个度量差值,以及该(L-l+1)个度量差值对应的全局路径。
第二种,在查找全局最优路径时的前向计算过程中,保存每时刻的每状态点的最优路径,以及全局最优路径的路径度量,在查找除全局最优路径外的其他全局优选路径过程中,设当前查找的全局优选路径的路径号为l,保存所回溯的全局路径相对于全局最优路径的路径度量差值中,满足度量差值大于全局第(l-1)优路径相对于全局最优路径的路径度量差值的所有度量差值中最小的一个度量差值,以及该度量差值对应的全局路径。
对于长度为M、状态数为N的卷积码,采用第一种存储机制,所需要的存储空间具体是:M*N个用于存储网格图中各时刻、各状态的最优路径的路径寄存器,L个用于存储路径度量或路径度量差值的度量存储单元,以及L个全局优选路径所占用的路径寄存器(具体为(L*M)个路径寄存器。采用第二种存储机制,所需要的存储存储空间具体是:M*N个用于存储网格图中各时刻、各状态的路径存储单元,3个度量存储单元,其中1个用于存储全局最优路径的路径度量,其中2个用于存储度量差值,以及L个全局优选路径所占用的路径寄存器(具体为(L*M)个路径寄存器。而现有技术需要的存储单元具体是:M*N个用于各时刻、各状态的状态存储单元,2M*N个用于存储每时刻的每状态的1最优路径度量(或路径度量差值)以及1个分支度量的度量存储单元。具体各状态存储单元、以及度量存储单元的具体大小根据译码系统中表示状态、度量的比特数来确定。因此本方案相对于现有技术而言,大大节省了存储空间。
方案二:可以通过计算所回溯路径与全局最优路径相分离的局部路径的度量,减全局最优路径与所回溯路径相分离的局部路径的度量获取所述的度量差值。在与已知的全局优选路径分离之后,在回溯的每时刻累计分支度量,并比较该时刻状态点的状态是否与全局最优路径上的相应时刻的状态点的状态相同,如果不同,继续回溯;否则,表明回溯回到了全局最优路径上,停止回溯,计算所回溯路径与全局最优路径相分离的局部路径的路径度量,将该路径度量减去全局最优路径上相应量值刻点之间的局部路径度量,得到该差值。
在方案二下,同样具有两种存储机制,第一种,在查找全局最优路径过程中,存储网格图中每时刻的每状态的状态以及最优路径,全局最优路径上的每时刻相对于码块开始时刻的路径度量,以及在查找除全局最优路径的其他全局优选路径过程中,每次回溯过程中,与所根据的全局优选路径相分离之后到回到全局最优路径之间的各时刻的相对于该相分离时刻的局部路径度量,以及回溯的路径与全局最优路径相分离的局部路径相对于全局最优路径在相同的时刻段内的局部路径的度量差值中,满足度量差值大于全局第(l-1)优路径相对于全局最优路径的路径度量差值的所有度量差值中最小的(L-l+1)个度量差值,以及该(L-l+1)个度量差值对应的全局路径。其中L为需查找的全局优选路径的总数,l为当前需查找的全局优选路径的路径号。
第二种存储机制,与敌一种所不同的是,在查找除全局最优路径的其他全局优选路径过程中,每次回溯过程中,需要存储与所根据的全局优选路径相分离之后到回到全局最优路径之间的各时刻的相对于该相分离时刻的路径度量,以及回溯的路径与全局最优路径相分离的局部路径,相对于全局最优路径在相同的时刻段内的局部路径的度量差值中,满足度量差值大于全局第(l-1)优路径相对于全局最优路径的路径度量差值的所有度量差值中最小的1个度量差值,以及该最小度量差值对应的全局路径。其中l为当前需查找的全局优选路径的路径号。
由上可见,对于长度为M、状态数为N的卷积码,在方案二中,采用第一种存储机制,所需要的存储空间具体为:M*N个用于存储网格图中各时刻、各状态的状态存储单元、以及M*N个用于存储网格图中各时刻、各状态的最优路径的路径寄存器、以及用于存储L个全局优选路径的路径寄存器、最多(L*M+L)个度量存储单元,。而采用第二种存储机制,由于之需要存储回溯的路径与全局最优路径相分离的局部路径,相对于全局最优路径在相同的时刻段内的局部路径的度量差值中,满足度量差值大于全局第(l-1)优路径相对于全局最优路径的路径度量差值的所有度量差值中最小的1个度量差值,以及该最小度量差值对应的全局路径,因此第二种存储机制,相对第二种存储机制而言,相对需要占用的存储空间减少,具体减少情况,根据具体的译码不相同,
可见,方案二,相对于本发明的方案一而言,显然需要占用较多的存储空间,但是本方案能够大大减少回溯过程中重复的度量计算;另外,本方案相对于现有技术而言,仍然大大节省了存储空间。
附图说明
图1为LVA译码结构图;
图2为本发明方法译码流程示意图;
图3为网格图的基本单元——蝶形图示意图;
图4为本发明的优选路径示意图;
图5实施例1所述的译码方法示意图;
图6实施例2所述的译码方法示意图;
图7实施例3所述的译码方法示意图;
图8实施例4所述的译码方法示意图。
具体实施方式
本发明的核心思想是:根据VA,获取全局最优路径,获取译码数据,并存储全局最优路径的路径度量,以及路径寄存器值;对所获取的译码数据进行差错校验,如果所述的译码为正确的译码,则输出译码,结束译码;否则继续查找其他的全局优选路径,以及该全局优选路径对应的译码数据,其查找方法具体是:分别根据已知的全局优选路径回溯,分别在每个全局优选路径的每个时刻与所根据的全局优选路径分离,查找相对于回溯所根据的全局优选路径的局部次优路径,获取所述局部次优路径所在的全局路径相对于全局最优路径的路径度量差值,根据所述的路径度量差值获取全局优选路径,以及所述全局优选路径的译码数据。每获取到一全局优选路径对应的译码数据,均对该译码数据进行差错校验,如果校验结果表明,译码数据是正确的译码数据,那么输出该正确的译码数据,否则继续查找其他的全局优选路径。
进一步的,为了更加有利于译码过程的控制,避免由于卷积码在传输信道中的干扰、衰减或者其他的原因,卷积码数据本身不完整或者畸变严重,导致无法根据接收到的卷积码,得到正确的译码数据。在这种情况下,通过根据一般情况需查找的全局优选路径的路径总数,并且在每次对当前所获取的全局优选路径对应的译码数据进行差错校验时,如果当前的译码数据仍然不是正确的译码数据,则进一步,判断当前已获取的全局优选路径的总数,是否小于所预设的需查找的全局优选路径的总数,如果小于,则继续查找其他的全局优选路径,以及译码数据;否则,结束译码,做出译码失败的判决,以便通信系统做出数据重传或其他的策略。
进一步的,根据每全局优选路径只在一段连续的时刻与全局最优路径相分离,在其他所有的时刻均重合于全局最优路径的特点,可以通过计算所回溯路径所在的全局路径的路径度量,减全局最优路径的路径度量,获取所述局部次优路径所在的全局路径相对于全局最优路径的度量差值。本方法由于只需要存储全局最优路径的路径度量、以及每全局优选路径的全局优选路径的路径度量、以及各路径的路径寄存器值,因此本方法需要占用的存储空间大大减少。
另外,还可以通过计算所回溯路径与全局最优路径相分离的局部路径的路径度量,减全局最优路径与所回溯路径相分离的局部路径的路径度量,获取所述局部次优路径所在的全局路径相对于全局最优路径的度量差值。本方法在与已知的全局优选路径分离后,在回溯的每时刻累计分支度量,并比较该时刻状态点的状态是否与全局最优路径上的相应时刻的状态点的状态相同,如果不同,则继续回溯,否则,表明回溯回到了全局最优路径上,停止回溯。计算所回溯路径与全局最优路径相分离的局部路径的路径度量,将该路径度量减去全局最优路径上相应量值刻点之间的局部路的路径度量,得到所述的度量差值。
为了让本领域的技术人员更好的理解本发明的发明内容,下面结合附图以及具体实施例作进一步的详细说明:
首先介绍本发明所根据的LVA的基本原理,图1是LVA译码结构示意图,如图示,首先从信道中接收到卷积码,并对卷积码进行解调,将解调后的卷积码输入到LVA译码器,进行译码,获取译码数据,并对所获取的译码数据进行循环冗余码校验(Cyclic Redundancy Check,简称CRC校验),如果CRC校验不正确,并且当前的路径号小于预设的需查找的全局优选路径的路径总数L,则请求下一路径,继续进行LVA译码,获取该下一路径对应的译码数据;如果CRC校验正确,则输出译码;如果CRC校验不正确,并且当前的路径号不小于预设的需查找的全局优选路径的路径总数L,则结束译码,输出译码失败结果,系统可以根据该结果,做出重传数据、前向纠错、混合纠错或者其他的通信控制策略。
图2是本发明方法的流程示意图,如图示:本方法包括以下的步骤:
步骤S201:根据VA,获取全局最优路径,获取译码数据,并存储全局最优路径的路径度量,以及路径寄存器值。
VA实际上是对一阶马尔可夫过程的状态序列进行最大似然估计的算法。任何有限状态马尔可夫过程可由网格图来描述。为简化实现,通常将网格图分解成基本组成单元:蝶形图,如图3所示,图3给出了1/n码率的蝶形图,图1的左边为起始节点,分别标出状态i和状态i+N/2,这里N为总状态数,图中分支上还标出了分支度量BMi、-BMi,网格图的各阶段由N/2个这样的蝶形图组成。
VA是根据带噪观测值来确定网格图的最大似然路径,实现过程可以分为3部分,分支度量计算、状态的路径度量更新以及回溯。
分支度量计算是将各比特度量相加,而比特度量有最大似然函数导出。至于如何将各比特度量相加,及根据最大度量之还是最小度量来选择幸存路径,则取决于译码器输入是硬判决还是软判决。当输入硬判决时,分支度量就是汉明距离,且根据最小路径来选择幸存路径;软判决优于硬判决,因为它提供额外的可靠性信息。软判决输入的分支度量是输入符号(一个输入符号定义为n个量化值组成的向量)以及分支输出之间的欧氏距离经简化后得到,计算方法如下:
其中,n为码率倒数,SDi为输入符号的量化分量,Xi∈{0,1}为分支输出。此时,根据最大路径度量来选择幸存路径,给定输入符号,式(1)只有2n种可能的值,由蝶形图的对称性,可知每个蝶形图4条分支的分支度量绝对值相同,且与某状态节点相连接的2条分支,其度量符号正好相反,利用这一特点,在每级的所有蝶形图进行度量更新时,只需要计算2n-1个分支度量,从而大大降低分支度量的计算。分支度量直接存储在寄存器中。
状态的路径度量更新按照蝶形图一次进行,一次更新2个状态,如图4所示,这种度量更新实际上是一个加选比(ACS)的过程,即先计算出汇入某状态的2条分支的分支度量,在此基础上,将2个分支度量分别与前面的状态的路径度量相加,比较2个相加的结果,如果输入硬判决时,则选择较小者存储起来作为该状态新的度量;而如果输入软判决时,选择较大者存储起来,作为该状态新的路径度量,状态的路径度量更新是VA运算量的最大部分。
回溯是由后往前从状态转移表中重构信息比特的过程。在移动通讯系统中,比如GSM、3G网络,卷积编码通常以“0”开始,并以“0”结束,因此其译码过程具体是,从末端的“0”状态,开始回溯,到始端的“0”状态结束。而对于计算机系统中的,编码长度不固定的卷积码译码,即连续译码时,为了减少时延和节省内存,回溯在处理完网格图若干阶段后进行。由卷积码的性质,Nd阶段后,S条幸存路径将汇合在同一起始节点,一般取Nd=6×Ki,其中Ki为卷积编码器的约束长度。这个共同起始节点之前的各节点均属于最大似然路径。
利用上述的VA原理,得到全局最优路径后,存储全局最优路径的路径度量以及路径寄存器值,将存储全局最优路径的路径度量的存储单元称为第一度量存储单元,将存储全局最优路径的路径寄存器值存储单元称为第一路径寄存器值存储单元。根据第一路径寄存器值存储单元所存储的路径寄存器值进行路径回溯,获取全局最优路径的译码数据。
步骤S202:对所述的译码数据进行差错校验。
由于信号在信道中进行传输过程中,由于信道中的干扰以及衰减的存在,导致信号产生错误的可能性增加,为了保证信息传递的可靠性,往往通过差错校验,对通信过程进行差错控制,现有的可以采用的差错校验的方法具体有:CRC校验、奇偶校验、重复码校验、恒比码校验等。具体是在信道编码时,在对信道传输数据进行编码时,在数据中插入差错校验码,使校验码与数据一起发送到信道接收端。信道接收端对所接收到的信号进行解调,译码后,得到译码数据,根据对信道编码所采用不同的差错校验编码方式,在对译码数据进行差错校验时,采用与信道编码时相应的差错校验方式。比如,如果在信道编码时,采用的是CRC校验码,那么对译码进行差错校验时,相应采用CRC校验方式。
步骤S203:根据差错校验结果,判断译码是否正确,如果正确,则执行步骤S205;否则执行步骤S204。
步骤S204:判断当前已知的全局优选路径的总数是否小于预设的全局优选路径的总数,如果小于执行步骤S205,否则返回步骤S207。
步骤S205:分别根据各已知的全局优选路径回溯,分别在所述已知的全局优选路径的每个时刻与所述已知的全局优选路径分离,从所述的分离时刻开始,回溯查找相对于所述已知的全局优选路径的局部次优路径,在回溯过程中获取所述局部次优路径所在的全局路径相对于全局最优路径的度量差值,根据所述的度量差值,获取另一全局优选路径,以及所获取路径对应的译码数据,并返回步骤S202。
在得到全局最优路径的基础上,如果全局最优路径的译码数据差错校验结果为不正确,则根据全局最优路径的查找全局次优路径。具体是根据全局最优路径,每次回溯分别在全局最优路径上的不同的时刻,与全局最优路径分离,在分离时刻的前一时刻回溯到与全局最优路径上的状态不同的另一状态点上,从该点开始以及更前的时刻,根据VA按照全局最优回溯,计算所回溯路径所在的全局路径相对于全局最优路径的度量的差值。分别以所有的时刻为分离时刻进行回溯后,根据各次回溯所获取的各回溯路径所在的全局路径相对于全局最优路径的度量的差值,选取最小的差值作为全局次优路径,并获取全局次优路径的译码数据,返回步骤S202。如果步骤S202中对译码进行差错校验结果为不正确,并且所需要查找的路径的总数大于当前已知的全局优选路径的总数,则进一步查找全局第三优路径。
同理,根据全局最优路径以及全局次优路径查找全局第三优路径以及全局第三优路径对应的译码数据。对于全局第4优第5优等其他的全局优选路径同理进行获取。
图4是各全局优选路径的相互关系的示意图,如图示,卷积码的长度是M,状态个数是N,全局最优路径的路径度量是LM。设全局最优路径与全局次优路径在时刻I到时刻(I+4)互相分离,全局第三优路径与全局最优路径在时刻(I-2)到时刻(I+4)互相分离,总之,所有的全局优选路径在一段连续的时刻段与全局最优路径相分离,在其他所有时刻重合于全局最优路径。
步骤S206:输出译码失败结果,结束译码。
通信系统可以根据该译码失败结果,执行相应的差错控制策略,比如:自动请求重发、前向纠错或混合纠错等。
步骤S207:输出该正确的译码数据,结束译码。
以下就本发明的优选实施方式进一步说明本发明方法:
实施例1:
图5所示本实施例的方法流程图,如图示,包括以下步骤:
步骤S501:初始化路径号l=1,时刻j=1,需查找的路径总数L,码块长度M。
步骤S502:根据VA,获取全局最优路径,获取译码数据,并存储全局最优路径的路径度量BM,以及路径寄存器值。
步骤S503:差错校验。
对获取的译码数据进行差错校验,所采用的差错校验方法根据信号编码时采用的差错校验编码方式不同。
步骤S504:如果步骤S503中的差错校验正确,则执行步骤S513;否则进一步判决当前的路径号是否小于预设的需查找的路径总数L,如果不小于L,则执行步骤S513,如果小于L,则执行步骤S505。
步骤S505:l=l+1。
使路径号加1,查找下一全局优选路径。
步骤S506:确定时刻j的范围:时刻j大于等于ts,小于或等于并且te,其中ts表示时刻最小值,te表示时刻最大值,并初始化时刻j。
如果当前的路径号l不大于2,那么可知全局第(l-1)优路径即是全局最优路径,该情况下,时刻j的范围是ts为码块的开始时刻:时刻1,te为码块的最后时刻:时刻M。
如果当前的路径号l大于2,那么将全局第(l-1)优路径与全局最优路径的分离点时刻作为te,将全局第(l-1)优路径与全局最优路径的合并点时刻作为ts。设当前的路径号l为3,如图4所示,全局最优路径与全局次优路径的分离点为A对应的时刻为时刻(i+4),全局最优路径与全局次优路径的合并点为E,对应的时刻为时刻i,那么查找全局第3优路径时,所确定的时刻j的范围为时刻i到时刻(i+4)。
初始化时刻j等于ts;或者,初始化时刻j等于te。
步骤S507:更新时刻j。
更新时刻j,使时刻j等于另外一个不同的值,选取另一时刻为分离时刻,该更新原则,通常在选用以下两种方案:如果在初始化时刻中采用了初始化时刻j=ts,则令时刻j=j+1,采用时刻j递增的方案;如果在初始化时刻中采用了初始化时刻j=te,的方式,则令时刻j=j-1,采用时刻j递减的方案。
步骤S508:根据全局第(l-1)优路径回溯,路径回溯时,在时刻j的取与回溯所根据的已知全局优选路径不相同的另一路径,记该时刻j点为路径分离点jd,在j-1时刻及以后的路径回溯按照最优路径回溯,回溯到码块的开始时刻停止回溯,并在整个回溯过程中每时刻累计分支度量,获取回溯路径的路径度量BMj。
在本步骤中每回溯均由码块的最后时刻M,一直回溯到码块的开始时刻1为止,并在回溯的每一时刻累计分支度量,当回溯到时刻1时,获取到回溯路径的全局路径的路径度量,设对应时刻j为分离时刻回溯的路径度量是BMj。
步骤S509:计算度量差值:δj=BMj-BM。
读取步骤S502中获取并存储的全局最优路径的路径度量BM,根据δj=BMj-BM,获取以时刻j为分离时刻时的回溯路径相对于全局最优路径的度量差值。
步骤S510:比较并更新度量差值、以及该差值对应的路径寄存器值,存储大于全局第(l-1)优路径相对于全局最优路径的路径度量差值的所有差值中最小的(L-l+1)个度量差值,以及该差值对应的路径寄存器值。
在查找全局第l优路径时,将每获取的差值与以存储的差值相比较,并按照存储大于全局第(l-1)优路径相对于全局最优路径的路径度量差值的所有差值中最小的(L-l+1)个度量差值、以及该差值对应的路径寄存器值的原则进行更新所存储的差值以及路径寄存器值。
步骤S511:判定时刻j是否在时刻步骤S506的范围内。
如果当前的时刻j不在步骤S506所确定的时刻范围内,即当前时刻j小于ts,或者,当前时刻j大于te,则执行步骤S512;否则返回步骤S507。
一般的如果在步骤S506中,采用的是初始化j=ts,并且在步骤S507中采用时刻j=j+1的更新时刻j的方案,则在本步骤中只需比较j是否大于te即可;如果在步骤S506中,采用的是初始化j=te,并且在步骤S507中采用时刻j=j-1的更新时刻j的方案,则在本步骤中只需比较j是否小于ts即可。
步骤S512:第(l-1)小的差值对应的路径即为全局第l优路径,获取全局第l优路径对应的译码数据。
所有存储的差值中第(l-1)小的差值对应的路径即为全局第l优路径,获取全局第l优路径对应的译码数据后,返回步骤S503。
步骤S513:输出译码结果
如果步骤S504中判定差错校验结果为正确,则输出的译码结果是:译码正确,并且输出译码数据,结束译码;如果步骤S504中判定差错校验错误,并且当前路径号不小于步骤S501中预设的需查找的路径总回溯L,则输出译码结果是:译码失败,结束译码。
值得说明的是:在本实施例中由于在步骤S510中,除了存储查找全局第l优路径所需要的大于全局第(l-1)优路径相对于全局最优路径的路径度量差值的所有差值中最小的一个差值外,还预存了仅比该差值大的另外的(L-l)个差值,以备查找后续的全局优选路径使用,使得在查找全局第(l+1)优路径时,不需要重复根据已在查找全局第l优路径时回溯过的全局路径,进行回溯查找,而只需要根据全局第l优路径,以该路径上的与其他已知的全局优选路径状态不相重合的时刻为分离时刻,进行回溯,并结合预存的度量差值以及各差值对应的路径寄存器值,查找即可获取全局第(l+1)优路径。显然,该预存机制节省了查找全局第(l+1)优路径的回溯查找次数。
本实施例的存储空间分析:在查找的路径总数为L的情况下,本实施例需要占用的存储单元为:L个度量存储单元,其中一个用于存储最优路径度量,其它(L-1)个用于存储路径度量差值;以及M*N个用于存储每时刻的每状态的最优路径的路径寄存器,以及L*M个用于存储L个全局优选路径的路径寄存器。可见本实施例相对于现有技术大大减少了存储空间。
实施例2:
在实施例1中,在查找全局第l优路径时,采用了预存机制,该预存虽然可以减少查找全局第(l+1)优路径的回溯查找次数,方便后续的全局优选路径的查找,但是相应的增大了查找当前第l优路径的数据计算量,特别是,如果当前查找的全局第l路径对应的译码差错校验结果为正确时,则不再需要继续查找后续的全局优选路径,该数据预存机制,不但不能起作用,反而增加了译码时间。
为此本实施例,提出了另外一种卷积码译码方法,如图6所示为本实施例的方法流程示意图,如图示,本方法包括以下步骤:
步骤S601:初始化路径号l=1,时刻j=1,需查找的路径总数L,码块长度M。
步骤S602:根据VA,获取全局最优路径,获取译码数据,并存储全局最优路径的路径度量BM,以及路径寄存器值。
步骤S603:差错校验。
步骤S604:如果步骤S603中的差错判决正确,则执行步骤S613;否则进一步判决当前的路径号是否小于预设的需查找的路径总数L,如果不小于L,则执行步骤S613,如果小于L,则执行步骤S605。
步骤S605:l=l+1。
上述的步骤S601、S602、S603、S605分别与实施例1中步骤、S502、S503、S505相同,因此在此不作赘述。
步骤S606:确定j的范围为大于1小于M的自然数,其中M为卷积码块的开始化时刻j。
本步骤中可以采用两种的初始化方式:初始化时刻j等于码块的开始时刻1;或者,初始化时刻j等于码块的最后时刻M。
步骤S607:更新时刻j。
更新时刻j,使时刻j等于另外一个不同的值,选取另一时刻为分离时刻,该更新原则,通常在选用以下两种方案:如果在初始化时刻中采用了初始化时刻j=1,则令时刻j=j+1,采用时刻j递增的方案;如果在初始化时刻中采用了初始化时刻j=M,的方式,则令时刻j=j-1,采用时刻j递减的方案。
步骤S608:分别根据已知的全局优选路径回溯,路径回溯时,在时刻j的状态点取与回溯所根据的已知全局优选路径不相同的另一路径,记该时刻j点为路径分离点jd,在j-1时刻及以后的路径回溯按照最优路径回溯,回溯到码块的开始时刻停止回溯,并在整个回溯过程中每时刻累计分支度量,获取回溯路径的路径度量BMj。
本步骤与实施例步骤S508不同的是,在本实施例中每查找一全局优选路径,均分别根据已知的所有全局优选路径,以各路径的时刻j为分离时刻分别进行回溯。其他同理于实施例1,每回溯均由码块的最后时刻M,一直回溯到码块的开始时刻1为止,并在回溯的每一时刻累计分支度量,当回溯到时刻1时,获取到回溯路径的全局路径的路径度量,设对应时刻j为分离时刻回溯的路径度量是BMj。
步骤S609:计算度量差值:δj=BMj-BM。
读取步骤S602中获取并存储的全局最优路径的路径度量BM,根据δj=BMj-BM,获取以时刻j为分离时刻时的回溯路径相对于全局最优路径的度量差值。
步骤S610:比较并更新度量差值、以及该差值对应的路径寄存器值,存储大于全局第(l-1)优路径相对于全局最优路径的路径度量差值的所有差值中最小的度量差值,以及该最小的度量差值对应的路径寄存器值。
在查找全局第l优路径时,将每获取的差值与已存储的差值相比较,如果该差值不大于在获取全局第(l-1)优路径时已存储的全局第(l-1)优路径相对于全局最优路径的路径度量差值,则不作任何处理;否则,进一步比较该差值是否是在查找当前全局第l优路径时所获取的最小的度量差值,如果是,则存储该差值以及该差值对应路径寄存器值。总之,使最后所存储的差值为:大于全局第(l-1)优路径相对于全局最优路径的路径度量差值的所有差值中最小的度量差值,所存储的路径寄存器值为:该所存储的差值所对应的路径寄存器值。
步骤S611:判定时刻j是否在步骤S606所确定的时刻范围内。
如果当前的时刻j不在步骤S606所确定的时刻范围内,即当前时刻j小于1,或者当前时刻j大于M,则执行步骤S612;否则返回步骤S607。
一般的如果在步骤606中,采用的是初始化j=1,并且在步骤S607中采用时刻j=j+1的更新时刻j的方案,则在本步骤中只需比较j是否大于M即可;如果在步骤S606中,采用的是初始化j=M,并且在步骤S607中采用时刻j=j-1的更新时刻j的方案,则在本步骤中只需比较j是否小于1即可。
步骤S612:当前同一l下,所获取并最终存储的度量差值对应的路径为全局第l优路径,获取全局第l优路径对应的译码数据。
当前同一l下,所最终存储的度量差值对应的路径为全局第l优路径,所最终存储的路径寄存器值为全局第l优路径的路径寄存器值,根据路径寄存器值进行回溯路径,获取全局第l优路径对应的译码数据。返回步骤S603。
对度量差值的具体存储,可以采用以下的方案:
每找到一个全局优选路径,并且该全局优选路径的路径号大于2时,只存储该路径相对于全局最优路径的度量差值,释放其他已知优选路径相对于全局优选路径的度量差值。采用该方法可以释放无用的存储内容,进一步减少存储空间,采用该方案,译码所需要占用的存储空间是:以需要查找到全局第L路径为例:3个路径度量存储单元,一个用于存储全局最优路径的路径度量,一个用于存储全局第(L-1)优路径相对去于全局最优路径的度量差值,另一个用于存储当前L下存储大于全局第(L-1)优路径相对去于全局最优路径的度量差值的所有差值中最小的差值;L个路径寄存器存储单元。
步骤S613:输出译码结果。
如果步骤S604中判定差错校验结果为正确,则输出的译码结果是:译码正确,并且输出译码数据,结束译码;如果步骤S604中判定差错校验错误,并且当前路径号不小于步骤S601中预设的需查找的路径总回溯L,则输出译码结果是:译码失败,结束译码。
实施例3:
如图7所示为本实施例的方法流程示意图,如图示,本方法包括以下步骤:
步骤S701:初始化路径号l=1,时刻j=1,需查找的路径总数L,码块长度M。
步骤S702:根据VA,获取全局最优路径,获取译码数据,并存储全局最优路径上每时刻的累计度量,以及网格图中所有每时刻、每状态点的状态。
步骤S703:差错校验。
步骤S704:如果校验结果为正确或者路径号大于L,则执行步骤S713,否则执行步骤S705。
步骤S705:l=l+1。
步骤S706:确定时刻j的范围为大于时刻ts并小于时刻te,其中ts表示时刻最小值,te表示时刻最大值,初始化时刻j。
步骤S707:更新时刻j。
步骤S701、S702、S703、S704、S705、S706、S707分别与实施例1中的步骤S501、S502、S503、S504、S505、S506、S507相同。
步骤S708:根据全局第(l-1)优路径回溯,路径回溯时,在时刻j的取与回溯所根据的已知全局优选路径不相同的另一路径,记该时刻j点为路径分离点jd,在j-1时刻及以后的路径回溯按照最优路径回溯,并且在时刻j-1时刻及以后的回溯中,累计每时刻的分支度量,并且比较每时刻的路径是否与全局最优路径上的相应时刻点的状态相同,如果不同,继续回溯,如果相同,则记录该时刻,记为合并点js,并停止回溯。计算所回溯路径与全局最优路径的相分离的时刻到合并点时刻的局部路径度量,记为BMjs。
设查找全局次优路径,以全局最优路径上的某时刻点为分离点,如图4所示,设以时刻(i+4)的状态点A为分离点,在时刻(i+3)以及以后的回溯中分别累计分支度量,并且比较每时刻的状态是否与全局最优路径的相应时刻的状态点的状态相同,设回溯到时刻i时,回溯的点的状态与全局最优路径的时刻i的状态相同,那么可知回溯回到了全局最优路径,记录该点,设该点为点E,并停止回溯。显然,回溯过程中,时刻(i+4)到时刻i分别累计分支度量,具体如图示:在时刻(i+3)状态点B记录了:状态点A到状态点B的分支度量,设为Lab,时刻(i+2)时刻点C记录了:状态点A到状态点B再到状态点C的路径度量,设为Lac,时刻(i+1)状态点D记录了:状态点A经由B、C、到状态点D的路径度量,设为Lad,时刻(i+1)状态点E记录了:状态点A经由B、C、D到E的路径度量,设为Lae。显然,该所回溯路径与全局最优路径的相分离的时刻到合并点时刻的局部路径度量BMis为Lae。
设查找的全局优选路径的路径号大于2,以查找全局第三优路径为例,其他路径号大于3的路径与查找全局第三优路径的情况相同。根据全局次优路径的路径寄存存器回溯,以全局次优路径上的,并且状态点与全局最优路径上的时刻为分离时刻,如图4所示,设点A、B、C、D、E所在的路径是全局次优路径,显然查找全局第3优路径应该以次优路径上的状态点B、C、D对应的时刻(i+3)、(i+2)、(i+1)分别为分离时刻的范围。以时刻(i+2)为例进行说明:根据全局次优路径的路径寄存器回溯,到达时刻(i+2)后,在(i+1)时刻以及以后的路径回溯,根据VA,按照最优路径回溯,并在每时刻比较当前时刻回溯的状态点的状态是否与全局最优路径上的相应时刻的状态点的状态相同,直到到达一与全局最优路径的相应时刻点的状态相同的状态点为止,停止回溯。设一直回溯到时刻(i-2),回溯的状态点与全局最优路径的时刻(i-1)的状态点的状态相同,即回溯到全局最优路径上。如图4所示,设时刻(i+2)后,根据VA所回溯获取的局部最优路径是:C--F--G--H--I,在时刻(i+1)状态点F获取了从点C到F的分支度量,设为Lcf,在时刻i状态点G获取了从点C经由点F到点G的路径度量,设为Lcg,在时刻(i-1)状态点H获取了从点C经由点F、G到点H的路径度量,设为Lch,在时刻i状态点I获取的从点C经由点F、G、H到点I的路径度量,设为Lci。另外在查找全局次优路径时,分别存储了A、B、C、D点的始于该次优路径与最优路径的分离点A的累计分支度量。因此该所回溯路径与全局最优路径的相分离的时刻到合并点时刻的局部路径度量BMjs可以通过BMjs=Lci+Lac获取。
步骤S709:计算度量差值:δj=BMjs-BMjg,其中BMjg为全局最优路径在所回溯路径与全局最优路径的分离时刻到合并点时刻,两时刻之间的局部路径度量。
根据步骤S702中存储的全局最优路径的各时刻的累计度量,获取两时刻的累计度量,设分离时刻为时刻h,该点的累计度量为BMh,合并时刻为k,该点的累计度量为BMk,那么将全局最优路径时刻h对应的累计度量减去时刻h的累计度量获取全局全局最优路径上,分离时刻到合并时刻之间的局部路径的累计度量即BMjg=BMh-BMk。
再根据:δj=BMjs-BMjg,获取所需的度量差值。
步骤S710:比较并更新度量差值、以及该差值对应的路径寄存器值,存储大于全局第(l-1)优路径相对于全局最优路径的路径度量差值的所有差值中最小的(L-l+1)个度量差值,以及该差值对应的路径寄存器值。
在查找全局第l优路径时,将每获取的差值与以存储的差值相比较,并按照存储大于全局第(l-1)优路径相对于全局最优路径的路径度量差值的所有差值中最小的(L-l+1)个度量差值、以及该差值对应的路径寄存器值的原则进行更新所存储的差值以及路径寄存器值。
步骤S711:判定j是否在时刻范围内。
如果当前的时刻j不在步骤S706所确定的时刻范围内,即当前时刻j小于ts,或者当前时刻j大于te,则执行步骤S712;否则返回步骤S707。
一般的如果在步骤S706中,采用的是初始化j=ts,并且在步骤S507中采用时刻j=j+1的更新时刻j的方案,则在本步骤中只需比较j是否大于te即可;如果在步骤S506中,采用的是初始j=te,并且在步骤S707中采用时刻j=j-1的更新时刻j的方案,则在本步骤中只需比较j是否小于ts即可。
步骤S712:第(l-1)小的差值对应的路径即为全局第l优路径,获取全局第l优路径对应的译码数据。
所有存储的差值中第(l-1)小的差值对应的路径即为全局第l优路径,获取全局第l优路径对应的译码数据后,返回步骤S503。
步骤S713:输出译码结果
如果步骤S704中判定差错校验结果为正确,则输出的译码结果是:译码正确,并且输出译码数据,结束译码;如果步骤S704中判定差错校验错误,并且当前路径号不小于步骤S701中预设的需查找的路径总回溯L,则输出译码结果是:译码失败,结束译码。
可见,本实施例采用了与实施例1相同的数据预存机制,有利于减少查找后续其他全局优选路径所需要的回溯查找次数。但是,更重要的是,本实施例相对于实施例1、2,对计算所回溯路径所在的全局路径相对于全局最优路径的度量差值,采用了不同的计算方法,本实施例通过计算所回溯路径与全局最优路径不相重合局部路径的度量,减去,全局最优路径与所回溯路径不相重合局部路径的度量而获取。采用本实施例所述的方法,相对于实施例1、2可以减少回溯过程中不必要的度量计算,减少每次回溯的速度。
由上面的描述可见,设对于长度为M,状态数为N的卷积码,并且需要查找的优选路径的总数为L,本实施例所需要的存储空间如下:M*N个用于存储每时刻的每状态的状态存储单元;当然其中包括全局最优路径的各时刻的状态点的状态;M*N个用于存储每时刻的每状态点的最优路径的路径寄存器,L*M个用于存储L个全局优选路径的路径寄存器;最多L*M个度量存储单元,其中M个用于存储全局最优路径的各时刻的累计度量,其他的用于存储在查找全局优选路径中所获取的累计度量以及度量差值。可见本实施例虽然相对实施例1和2需要占用更多的存储空间,但是相对于现有技术而言,仍然大大减少了需占用的存储空间。
实施例4:
如图8所示为本实施例的方法流程示意图,如图示,本方法包括以下步骤:
步骤S801:初始化路径号l=1,时刻j=1,需查找的路径总数L,码块长度M。
步骤S802:根据VA,获取全局最优路径,获取译码数据,并存储全局最优路径的路径度量BM,以及路径寄存器值。
步骤S803:差错校验。
步骤S804:如果校验结果为正确或者路径号大于L,则执行步骤S813,否则执行步骤S805。
步骤S805:l=l+1。
步骤S806:确定时刻j的范围为:1<=j<=M,其中M为卷积码块的最后时刻,初始化时刻j。
步骤S807:更新时刻j。
步骤S801、S802、S803、S805、S806分别与实施例2中的S601、S602、S603、S605、S606、S607相同。
步骤S808:根据已知的全局优选路径回溯,路径回溯时,在时刻j的取与回溯所根据的已知全局优选路径不相同的另一路径,记该时刻j点为路径分离点jd,在j-1时刻及以后的路径回溯按照最优路径回溯,并且在时刻j-1时刻及以后的回溯中,累计每时刻的分支度量,并且比较每时刻的路径是否与全局最优路径上的相应时刻点的状态相同,如果不同,继续回溯,如果相同,则记录该时刻,记为合并点js,并停止回溯。计算所回溯路径与全局最优路径的相分离的时刻到合并点时刻的局部路径度量,记为BMjs。
本步骤与实施例3不同之处在于,实施例3中只需要根据全局第(l-1)由路径回溯即可,本实施例中,除了需要根据全局第(l-1)由路径回溯之外,还需要分别根据其他已知的全局优选路径回溯。
BMjs的获取方法与实施例3中相同。
步骤S809:计算度量差值:δj=BMjs-BMjg,其中BMjg为全局最优路径在所回溯路径与全局最优路径的分离时刻到合并点时刻,两时刻之间的局部路径度量。
本步骤与实施例3中的步骤S709相同。
步骤S810:比较并更新度量差值、以及该差值对应的路径寄存器值,存储大于全局第(l-1)优路径相对于全局最优路径的路径度量差值的所有差值中最小度量差值,以及该差值对应的路径寄存器值。
在查找全局第l优路径时,将每获取的差值与已存储的差值相比较,如果该差值不大于在获取全局第(l-1)优路径时已存储的全局第(l-1)优路径相对于全局最优路径的路径度量差值,则不作任何处理;否则,进一步比较该差值是否是,在查找当前全局第l优路径时,所获取的最小的度量差值,如果是则存储该差值以及该差值对应路径寄存器值。总之使最后所存储的差值为:大于全局第(l-1)优路径相对于全局最优路径的路径度量差值的所有差值中最小的度量差值,所存储的路径寄存器值为:该所存储的差值所对应的路径寄存器值。
步骤S811:判定j是否在时刻范围内。
如果当前的时刻j不在步骤S806所确定的时刻范围内,即当前时刻j小于1,或者当前时刻j大于M,则执行步骤S812;否则返回步骤S807。
一般的如果在步骤S806中,采用的是初始化j=1,并且在步骤S807中采用时刻j=j+1更新时刻j的方案,则在本步骤中只需比较j是否大于M即可;如果在步骤S806中,采用的是初始j=M,并且在步骤S807中采用时刻j=j-1更新时刻j的方案,则在本步骤中只需比较j是否小于1即可。
步骤S812:第(l-1)小的差值对应的路径即为全局第l优路径,获取全局第l优路径对应的译码数据。
所有存储的差值中第(l-1)小的差值对应的路径即为全局第l优路径,获取全局第l优路径对应的译码数据后,返回步骤S803。
步骤S813:输出译码结果
如果步骤S804中判定差错校验结果为正确,则输出的译码结果是:译码正确,并且输出译码数据,结束译码;如果步骤S804中判定差错校验错误,并且当前路径号不小于步骤S801中预设的需查找的路径总回溯L,则输出译码结果是:译码失败,结束译码。
可见,本实施例的基本方法与实施例3基本相同,所不同的是,本实施例在查找全局第l优路径过程中,只存储全局第l优路径所需要的度量差值δj,相对减少了当前全局优选路径查找的计算复杂度,但是,如果对当前路径的译码差错校验不正确时,那么在查找后续的路径时,需要根据所有已知的全局优选路径,分别以各路径的各时刻为分离时刻进行回溯查找,相对增加了回溯查找的次数。
可以根据实际情况,选用不同的方法,比如,对于信道良好的环境下,建议选用本实施例的方法,对于信道良好的环境下,选用实施例3所述的方法
由上面的描述可见,设对于长度为M,状态数为N的卷积码,并且需要查找的优选路径的总数为L,本实施例所需要的存储空间基本与实施例3相同。
以上对本发明所提供的一种卷积码译码方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (18)
1、一种卷积码译码方法,其特征是,包括以下步骤:
A、根据维特比算法,获取全局最优路径,获取译码数据,并存储全局最优路径的路径度量;
B、对所述的译码数据进行差错校验,如果差错校验正确,则输出译码,结束译码,否则执行步骤C;
C、分别根据各已知的全局优选路径回溯,分别在所述已知的全局优选路径的每个时刻与所述已知的全局优选路径分离,从所述的分离时刻开始,回溯查找相对于所述已知的全局优选路径的局部次优路径,在回溯过程中获取所述局部次优路径所在的全局路径相对于全局最优路径的度量差值,根据所述的度量差值,获取一全局优选路径,以及所获取路径对应的译码数据,返回步骤B。
2、根据权利要求1所述的卷积码译码方法,其特征是,所述步骤B进一步包括以下步骤:
B1、如果差错校验不正确,进一步比较已知的全局优选路径数目是否小于预设的需查找全局优选路径的总数目,如果小于,则执行步骤C;否则输出译码失败的结果,结束译码。
3、根据权利要求1或2所述的卷积码译码方法,其特征是,所述步骤A进一步存储所述全局最优路径的每个时刻的状态点的状态。
4、根据权利要求3所述的卷积码译码方法,其特征是,所述步骤A进一步包括:
A2、在全局最优上的每个时刻,累计并存储从所述全局最优路径的开始时刻的状态点到所述的每个时刻的状态点的路径度量。
5、根据权利要求4所述的卷积码译码方法,其特征是,步骤C中所述的度量差值的获取,具体为:回溯路径与全局最优路径相分离的局部路径的度量减全局最优路径与所回溯路径相分离的局部路径的度量,获取所述的度量差值。
6、根据权利要求5所述的卷积码译码方法,其特征是,所述步骤C具体包括以下步骤:
C11、l累加1,其中所述l为一大于0,小于所预设的需查找的全局优选路径的总数,并初始化为l=1的自然数变量;
C12、预设时刻变量j,并确定时刻j的范围,初始化时刻j;
C13、分别根据各已知的全局优选路径的路径寄存器值回溯,并在回溯到时刻j后,取与回溯所根据的已知全局优选路径不相同的另一路径;
C14、在时刻(j-1)的状态点及以后的回溯,按照最优路径回溯,并在回溯的每个时刻,累计并存储分支度量,并比较状态是否与全局最优路径在所述时刻的状态相同,如果相同,则停止回溯,获取所回溯路径与全局最优路径分离时刻与停止回溯时刻之间的,所回溯路径上的局部路径相对于全局最优路径上的局部路径的度量差值,如果j在所述步骤C12所设定的范围内,则更新时刻j,并返回步骤C13;如果j不在所述步骤C12所设定的范围内,根据所获取的差值,获取全局第l优路径,以及全局第l优路径的译码数据,返回步骤B。
7、根据权利要求6所述的卷积码译码方法,其特征是,步骤C14中所述的度量差值的获取,具体包括以下步骤:
C141、如果当前回溯所根据的全局优选路径是全局最优路径,所述的差值等于:停止回溯时刻相对于时刻j的累计分支度量,减去,全局最优路径上的时刻j的累计分支度量与所述停止回溯所在时刻的状态点的累计分支度量之差;否则,所述差值等于:停止回溯时刻相对于时刻j的累计分支度量,加上,当前回溯所根据的全局优选路径在时刻j的状态点的累计分支度量,减去,全局最优路径上的时刻j的累计分支度量与所述停止回溯时刻的累计分支度量之差。
8、根据权利要求1或2所述的卷积码译码方法,其特征是,步骤C中所述的度量差值的获取,具体为:所回溯路径所在的全局路径的路径度量,减全局最优路径的度量,获取所述的度量差值。
9、根据权利要求8所述的卷积码译码方法,其特征是,所述步骤C具体包括以下步骤:
C21、l=l+1,其中l为一大于0小于所预设的需查找的全局优选路径的总数,并初始化l=1的自然数变量;
C22、设置一自然数变量j,初始化时刻j;
C23、分别根据各已知的全局优选路径的路径寄存器值回溯,在回溯的每个时刻累计分支度量,并在回溯到时刻j时,取与回溯所根据的已知全局优选路径不相同的另一路径;
C24、在时刻(j-1)的状态点及以后的回溯,按照最优路径回溯,一直回溯到卷积码的开始时刻,获取所回溯路径的路径度量,计算获取所回溯路径与全局最优路径的路径度量差值,如果时刻j在卷积码的时刻范围内,则更新时刻j,返回步骤C23;根据所获取的差值,获取全局第l优路径,以及所述的全局第l优路径的译码数据,返回步骤B。
10、根据权利要求7或9所述的卷积码译码方法,其特征是,所述的根据所获取的差值,获取全局第l优路径,具体包括以下步骤:
C3、从所获取的差值中选取,大于全局第(l-1)优路径相对于全局最优路径的路径度量之差的差值,进一步的,在所有大于全局第(l-1)优路径相对于全局最优路径的路径度量之差的所有差值中,选取最小的差值,所述最小的差值对应的路径是全局第l优路径。
11、根据权利要求10所述的卷积码译码方法,其特征是,步骤C3进一步包括以下步骤:
C31、将所获取的度量差值与已存储的度量差值相比较,存储大于全局第(l-1)优路径相对于全局最优路径的路径度量差值的所有差值中最小的(L-l+1)个度量差值,以及该差值对应的路径寄存器值,其中L为所预设的需查找的全局优选路径的总数。
12、根据权利要求11所述的卷积码译码方法,其特征是,所述的根据所述的度量差值,获取全局第l优路径,具体是:
所有存储的度量差值中第(l-1)小的度量差值对应的路径即为全局第l优路径。
13、根据权利要求10所述的卷积码译码方法,其特征是,步骤C3进一步包括以下步骤:
C32、将所获取的度量差值与已存储的度量差值相比较,存储大于全局第(l-1)优路径相对于全局最优路径的路径度量差值的所有差值中最小的度量差值,以及该差值对应的路径寄存器值。
14、根据权利要求13所述的卷积码译码方法,其特征是,所述的根据所述的度量差值获取全局第l优路径,具体是:
所获取并存储的度量差值对应的路径为全局第l优路径。
15、根据权利要求6或9所述的卷积码译码方法,其特征是,所述初始化时刻j,具体是:使时刻j等于时刻范围内最小的时刻。
16、根据权利要求15所述的卷积码译码方法,其特征是,所述的更新时刻j,具体是:使时刻j递增。
17、根据权利要求6或9所述的卷积码译码方法,其特征是,所述初始化时刻j,具体是:使时刻j等于时刻范围内最大的时刻。
18、根据权利要求17所述的卷积码译码方法,其特征是,所述的更新时刻j,具体是:使时刻j递减。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100875136A CN100499379C (zh) | 2006-06-13 | 2006-06-13 | 一种卷积码译码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100875136A CN100499379C (zh) | 2006-06-13 | 2006-06-13 | 一种卷积码译码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1968024A true CN1968024A (zh) | 2007-05-23 |
CN100499379C CN100499379C (zh) | 2009-06-10 |
Family
ID=38076610
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100875136A Active CN100499379C (zh) | 2006-06-13 | 2006-06-13 | 一种卷积码译码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100499379C (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101662293A (zh) * | 2009-08-26 | 2010-03-03 | 深圳华为通信技术有限公司 | 一种译码方法和设备 |
CN101321035B (zh) * | 2008-07-09 | 2012-03-21 | 上海华为技术有限公司 | 差值上限获取方法、定点方法及装置 |
CN102624404A (zh) * | 2011-01-31 | 2012-08-01 | 中兴通讯股份有限公司 | 一种咬尾卷积码译码校验方法及装置 |
CN105281787A (zh) * | 2015-11-19 | 2016-01-27 | 张波 | 一种改进维特比译码性能的方法 |
WO2016090557A1 (zh) * | 2014-12-09 | 2016-06-16 | 华为技术有限公司 | 一种检测发送序列的方法、接收机和接收设备 |
CN108471341A (zh) * | 2018-03-26 | 2018-08-31 | 西安电子科技大学 | 一种卷积编解码的方法 |
-
2006
- 2006-06-13 CN CNB2006100875136A patent/CN100499379C/zh active Active
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101321035B (zh) * | 2008-07-09 | 2012-03-21 | 上海华为技术有限公司 | 差值上限获取方法、定点方法及装置 |
CN101662293B (zh) * | 2009-08-26 | 2014-02-19 | 华为终端有限公司 | 一种译码方法和设备 |
CN101662293A (zh) * | 2009-08-26 | 2010-03-03 | 深圳华为通信技术有限公司 | 一种译码方法和设备 |
US9043686B2 (en) | 2011-01-31 | 2015-05-26 | Zte Corporation | Method and apparatus for decoding and checking tail-biting convolutional code |
WO2012103752A1 (zh) * | 2011-01-31 | 2012-08-09 | 中兴通讯股份有限公司 | 一种咬尾卷积码译码校验方法及装置 |
CN102624404B (zh) * | 2011-01-31 | 2014-04-30 | 中兴通讯股份有限公司 | 一种咬尾卷积码译码校验方法及装置 |
CN102624404A (zh) * | 2011-01-31 | 2012-08-01 | 中兴通讯股份有限公司 | 一种咬尾卷积码译码校验方法及装置 |
WO2016090557A1 (zh) * | 2014-12-09 | 2016-06-16 | 华为技术有限公司 | 一种检测发送序列的方法、接收机和接收设备 |
US10320523B2 (en) | 2014-12-09 | 2019-06-11 | Huawei Technologies Co., Ltd. | Method for detecting sent sequence, receiver, and receiving device |
CN105281787A (zh) * | 2015-11-19 | 2016-01-27 | 张波 | 一种改进维特比译码性能的方法 |
CN105281787B (zh) * | 2015-11-19 | 2019-01-01 | 张波 | 一种改进维特比译码性能的方法 |
CN108471341A (zh) * | 2018-03-26 | 2018-08-31 | 西安电子科技大学 | 一种卷积编解码的方法 |
CN108471341B (zh) * | 2018-03-26 | 2020-11-24 | 西安电子科技大学 | 一种卷积编解码的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN100499379C (zh) | 2009-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1138347C (zh) | 纠错译码装置及纠错译码方法 | |
CN1526196A (zh) | 缩减的软输出信息分组的选择 | |
CN1118140C (zh) | 处理单元和处理方法 | |
CN1968024A (zh) | 一种卷积码译码方法 | |
CN1150680C (zh) | 自适应信道编码方法和装置 | |
CN1968071A (zh) | 解码装置、解码方法、和接收设备 | |
CN1310458C (zh) | 对存在码间干扰并在多路发送和接收中进行按位交织编码的数字数据流进行编码/解码的方法及相应系统 | |
EP1841116A3 (en) | Decoding method for tail-biting convolutional codes using a search-depth Viterbi algorithm | |
CN1838542A (zh) | 解码设备和方法以及程序 | |
CN1139191C (zh) | 涡轮码纠错译码方法 | |
CN1245310A (zh) | 错误校正编码设备 | |
CN1836394A (zh) | 在移动通信系统中编码/解码块低密度奇偶校验码的装置和方法 | |
CN1144378C (zh) | 卷积码软输出解码装置和软输出解码方法 | |
CN1094609C (zh) | 算术设备、数字信号处理器和无线台设备 | |
CN1692557A (zh) | 编码设备、编码方法、编码程序、解码设备、解码方法、和解码程序 | |
CN1489294A (zh) | 误差校正码的译码方法及其程序和设备 | |
CN1201494C (zh) | 最大后验概率译码方法和装置 | |
CN1552129A (zh) | 一种用于高比特率cdma传输系统的较佳迭代接收方法和系统 | |
CN1235376C (zh) | 解调器、接收机、以及通信系统 | |
CN1173480C (zh) | 维特比解码器和传输设备 | |
CN1943155A (zh) | 用于提供发射序列的估计的设备和方法 | |
CN101064591A (zh) | 低密度奇偶校验码的译码方法及其校验节点更新电路 | |
CN101061684A (zh) | 带局部反馈的减少状态viterbi检测器中的流水线式判决反馈单元 | |
CN1848718A (zh) | 应用于可变长度通讯系统的方法 | |
CN101047676A (zh) | 低等待时间基线漂移补偿系统和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |