一种卷积码译码方法

文档序号:7538894阅读:221来源:国知局
专利名称:一种卷积码译码方法
技术领域
本发明涉及译码方法领域,特别是涉及一种卷积码译码方法。
背景技术
卷积码是爱里斯(Elias)在1955年提出的一种信道标码方法。卷积码的校验元不仅与本组的信息有关,而且与以前输入至编码器的信息组有关。同样,译码过程中也要从前后相关的码组中提取信息,因此,卷积码具有比较好的信能,并且因为编码简单,编码增益高以及具有很强的纠正随机错误能力,因此在通讯系统中得到十分广泛的应用。
维特比算法(Viterbi Algorithms,简称VA)是一种基于码的网格图基础上的最大似然准则算法,也是在加性高斯白噪声信道下性能最佳的卷积码译码方法,同时由于具有效率高、速度快、译码简单的特点,因此被广泛地应用于各种通信系统中。
基于VA,Texas Instruments公司在2004年9月公布了一篇题目为“维特比译码器协处理器TMS320C64x DSP参考指南”(TMS320C64xDSPViterbi-Decoder Coprocessor(VCP)Reference Guide”)的文献(以下简称文献1)。在文献中,提出了一种应用VA进行译码的译码方法的解决方案。
其技术方案具体是,在传统的VA中引入了滑动窗口的技术,以减少译码所需的存储单元。根据VA的特性,当译码深度d足够大的时候(比如,d=4~5*K,其中K为卷积编码器的约束长度),所有的幸存路径会议很大的概率在d个时间单位内合并。当帧长足够大时,把卷积帧分段在滑动窗口中。设滑动窗口的宽度为W=R+C,其中R段为判决输出部分,C段为相邻两个滑动窗口的重叠部分。状态度量以及回溯在整个滑动窗口内进行,仅输出R个判决。通过这种机制,当帧长较长时,可以显著的减少路径寄存器的存储单元占用。具体是,对于一卷积编码块长度是M,状态数为N的卷积码,应用传统的VA,所需要占用的存储单元为M*N个状态存储单元,以及M*N个度量存储单元;而应用文献1所述的技术方案,所需要的存储单元为W*N个状态存储单元,以及W*N个度量存储单元。可见,文献1中所述的技术方案,所需要占用的存储空间是传统VA的W/M倍。
同时,基于VA的扩展,Nambirajian Seshadri和Carl-Erik W.Sundberg在美国电子电机工程师学会通信学报,1994年,2月,3月,4月,第42卷,313-323页的题目为“列表维特比译码算法以及应用”文献(Nambirajan Seshadri andCarl-Erik W.Sundberg,List Viterbi Decoding Algorithms with Applications,IEEETrans.on Comm.,Vol.42,No.2/3/4,Feb./March/April 1994,313-323.)中提出了一种列表维特比算法(一般也称为次优路径算法(List VA,简称LVA))。图1为该方法的译码结构示意图,如图示,LVA在译码过程中,根据差错校验的结果从L个全局优选路径中,选择最有可能正确的路径。由于LVA相对VA增加了搜索过程中(L-1)个优选路径,提高了找到正确译码的几率,被广泛应用于包括卷积码和校验码的译码系统中。
并行次优路径算法(Parallel LVA,简称PLVA),是LVA的一种基本实现方式。图2所示为PLVA的方法示意图,如图示,PLVA的基本实现方式是根据VA,通过一次网格搜索,同时得到L个全局优选路径。由于对于网格图中每个时刻的每个状态都找到进入该状态的L个局部优选路径,PLVA在每个时刻的每个状态,计算2个分支度量和2L个路径度量,最终一次得到所需要的L个全局优选路径。特别的当L=1时,就是VA。
但是,PLVA在每个时刻的每个状态均计算2个分支度量、以及2L个路径度量,同时,需要L个M*N的矩阵分别存储每个时刻的每状态点对应的L个优选路径,其中M为卷积编码块长度,N为状态个数,L为预设的获取的全局优选路径的路径总数。与VA相比,该方法需要额外计算2(L-1)个路径度量,额外占用(L-1)个M*N矩阵存储优选路径。PLVA的计算量以及存储空间大约是VA算法的L倍,基本与L呈增长的关系。因此,PLVA虽然提高了找到正确译码的概率,但是由于其需要占用巨大的存储空间,大大限制了PLVA的实际应用。

发明内容
本发明要解决的技术问题是提供一种卷积码译码方法,解决现有方法中PLVA需要占用过大存储空间的问题。
为解决上述技术问题,本发明的目的是通过以下技术方案实现的一种卷积码译码方法,包括以下步骤A、预设滑动窗口,其中所述的滑动窗口由判决输出部分以及辅助部分组成,将卷积码帧分段在所述的各滑动窗口中,使所述的各滑动窗口的判决输出部分的长度的总和等于卷积码帧长,预设滑动窗口标识iw,以及需要查找的全局优选路径的总数L,初始化iw等于0;B、使iw累加1,获取第iw滑动窗口内,每时刻的每状态点的状态、每时刻的每状态点相对于所述的卷积码开始时刻的路径度量,根据所述的路径度量选取L个优选路径度量,并存储所述的L个优选路径度量分别对应的优选路径,以第iw滑动窗口的最末端的时刻的一状态点为起始点开始回溯,在每时刻,根据回溯状态点的路径值,按照最优路径回溯,回溯到第iw滑动窗口的最开始端的时刻,获取第iw滑动窗口的判决输出部分的局部最优路径,并且以所述的局部最优路径在判决输出部分最末端的时刻的状态点为回溯起始点,根据回溯的状态点的优选路径值回溯,获取除局部最优路径外的其它局部优选路径,执行步骤C;C、如果iw小于滑动窗口的总数目,返回步骤B,否则,执行步骤D;D、根据各滑动窗口所获取的所有局部优选路径,获取所有的局部优选路径以及所述各全局优选路径的译码,并对所获取的全局优选路径输出的译码数据进行差错校验,根据校验结果,输出译码结果,其中所述的局部优选路径包括局部最优路径,以及除局部最优路径外的其它局部优选路径。
本发明所述的方法,步骤A中所述的滑动窗口的设置具体是设置所述的判决输出部分的长度,以及辅助部分的长度,其中辅助部分的长度具体是,根据所述的卷积码的译码深度设置。
本发明所述的方法,步骤B所述的根据所述的路径度量选取L个优选路径度量具体是如果所述的卷积码译码器输入是硬判决,则选择较小L个的路径度量作为所述的优选路径度量;如果所述的卷积码译码器输入是软判决,则选择较大的L个路径度量,作为所述的优选路径度量。
本发明所述的方法,所述的L个优选路径度量分别对应的优选路径具体用一具有L个比特单元的数值表示,其中各比特单元的值分别表示各优选路径。
优选的,在所述步骤B中,在所述的获取第iw滑动窗口的判决输出部分的局部最优路径过程中,如果所述的卷积码译码器输入是硬判决,则选取第iw滑动窗口的最末端的时刻的路径度量最小的状态点为起始点开始回溯;如果所述的卷积码译码器输入是软判决,则选取第iw滑动窗口的最末端的时刻的路径度量最大的状态点为起始点开始回溯。
本发明所述的方法,步骤B中所述的根据回溯的状态点的优选路径值回溯,具体包括以下步骤B1、根据每时刻的每状态点对应的各优选路径,预设一优选路径回溯表,所述的优选路径回溯表,具体反映各优选路径与所述的各优选路径值的对应关系。
B2、在回溯的每时刻,获取当前回溯所在状态点对应的各优选路径,并对照所述的优选路径回溯表,根据所述的优选路径回溯表,回溯获取所述的局部优选路径。
优选的,所述步骤B2中,如果在回溯到第iw滑动窗口的最开始端的时刻之前的每时刻的状态点,所述状态点对应的优于当前回溯的优选路径的其他所有优选路径对应的路径值与当前回溯路径的路径值均相同,则回溯到第iw滑动窗口的最开始端的时刻,停止回溯。
本发明所述的方法,在步骤B2中进一步包括以下步骤B21、在回溯的每时刻,获取当前回溯所在状态点对应的各优选路径值后,比较各优选路径值中的当前需要回溯获取的局部优选路径对应的优选路径值以及最优路径值是否相同,在第一次不相同后,在回溯的下一时刻以及以后的回溯的每时刻,获取回溯的状态点的状态,并比较所述状态点的状态是否与局部最优路径在所述状态点所在时刻的状态相同,如果不同,继续回溯;否则,停止回溯,保存当前回溯的局部优选路径。
优选的,步骤B21所述的保存当前回溯的局部优选路径后,进一步包括舍弃之前保存的与当前回溯的优选路径的路径号相同的其他局部优选路径。
优选的,在所述步骤B中进一步包括以下步骤B3、如果iw大于2,则释放滑动窗口标识小于(iw-1)的所有的所有其他滑动窗口内的每时刻的每状态点的状态、路径度量,以及路径的存储空间。
本发明所述的方法,步骤D中所述的全局最优路径的获取具体是根据所获取的各滑动窗口的局部优选路径,获取全局最优路径。
本发明所述的方法,步骤D中所述的除全局最优路径之外的其它全局优选路径的获取具体是根据保存的各局部优选路径,以及各局部最优路径,获取所述的全局优选路径。
本发明所述的方法,步骤D中对所获取的全局优选路径输出的译码数据进行差错校验,根据校验结果,输出译码结果,具体包括以下步骤D1、预设一实数变量l,初始化l等于0;D2、对全局第l优路径输出的译码数据进行差错校验,如果校验正确,执行步骤D4,否则,进一步判定l是否小于所预设的需查找的全局优选路径的总数,如果小于,执行D3;否则,执行步骤D4;D3、使l累加1,返回D2;D4、输出译码结果,结束译码由以上技术方案可以看出,本发明相对于现有技术,具有以下的优点首先,由于在传统的PLVA技术中引入了滑动窗口的技术,将卷积码帧分段在个滑动窗口中,在各滑动窗口内,获取局部的优选路径,再根据各滑动窗口内的局部优选路径寄存器值,获取全局的优选路径。对于帧长为M,状态数为N的卷积码,需要查找的优选路径的总数是L,使用传统的PLVA,需要占用的存储空间分别是L*N*M个状态存储空间,以及2L*N*M个度量存储空间;而使用本发明方法,设滑动窗口的长度为W,需要占用的存储空间分别是2L*N*W个状态存储空间,以及2L*N*W个度量存储空间。显然,W<M,因此本发明相对现有技术而言,本方法既实现了PLVA卷积码译码的优点,又能减少译码所需要的存储空间,并且,由于滑窗技术的引入,使得译码需要占用的存储空间基本不受卷积码长度的约束,实际应用性更加强。特别的,当卷积码帧长较长时,应用本发明方法的效果更加显著。
其次,本发明还提出了一种如何在滑动窗口内查找除局部最优路径外的其他局部优选路径的方法。本方法相对于文献1中揭露的如何在滑动窗口中查找局部最优路径的方法,既在技术上对滑动窗口技术的应用方面进行了更进一步的扩展和补充,更在实际应用方面,提出了更加适合实际应用的解决方案。


图1是LVA译码结构示意图;图2是PLVA的方法示意图;图3是本发明方法流程示意图;图4是本发明的一种滑动窗口示意图;图5是本发明的另一种滑动窗口示意图;图6是每时刻的每状态点对应的的路径寄存器值示意图;图7是L=4时的优选路径回溯表;图8是滑动窗口对次优路径选择影响示意图;图9是实施例1方法的流程示意图;图10是在第iw窗口回溯局部第2优路径的流程示意图。
具体实施例方式
本发明的核心思想是,把滑动窗口技术引入到PLVA中,具体通过以下的技术方案实现首先,预设滑动窗口,其中所述的滑动窗口由判决输出部分以及辅助部分组成,将卷积码帧分段在所述的各滑动窗口中,使所述的各滑动窗口的判决输出部分的长度的总和等于卷积码帧长,预设滑动窗口标识变量iw,以及需要查找的全局优选路径的总数L,初始化iw=0;然后,使iw=iw+1,获取第iw滑动窗口内的每时刻的每状态点的状态,以及每时刻的每状态点相对于所述的卷积码开始时刻的路径度量,根据所述的路径度量选取L个优选路径度量,并存储所述的L个优选路径度量分别对应的优选路径,以第iw滑动窗口的最末端的时刻的一状态点为起始点开始回溯,在每时刻,根据回溯状态点的路径值,按照最优路径回溯,回溯到第iw滑动窗口的最开始端的时刻,获取第iw滑动窗口的判决输出部分的局部最优路径,并且以所述的局部最优路径在判决输出部分最末端的时刻的状态点为回溯起始点,根据回溯的状态点的优选路径值回溯,获取其它局部优选路径,如果iw小于滑动窗口的总数目,则继续使iw加1,在下一滑动窗口内查找相应的局部最优路径以及除最优路径外的其他局部优选路径;如果iw不小于滑动窗口的总数目,根据各滑动窗口所获取的所有局部优选路径,获取所有的局部优选路径以及所述各全局优选路径的译码,并对所获取的全局优选路径输出的译码数据进行差错校验,根据校验结果,输出译码结果,其中所述的局部优选路径包括局部最优路径以及次优路径。
为了让本领域的技术人员更好的理解本发明内容,下面结合附图以及实施例进行进一步的说明如图3所示为本发明方法的流程示意图,如图示,本发明包括以下步骤步骤S301设置滑动窗口,预设需要查找的全局优选路径总数L,以及设置窗口标识变量iw,并且初始化iw=0。
图4是本发明的滑动窗口示意图,如图示,滑动窗口W由判决输出部分WR、以及辅助部分Wc组成。滑动窗口W的长度W等于判决输出部分WR长度R,以及辅助部分Wc长度C之和,即W=R+C。
首先设置判决输出部分WR,该滑动窗口为译码判决输出部分,该部分的长度R的大小具体根据实际的译码系统性能进行设置,如果译码系统性能较优时,可以设置较长的判决输出部分,即较大的R值;如果译码系统性能较差,存储空间较小时,可以设置较小的R值,使判决输出部分较短。各滑动窗口的判决输出部分的和等于所需要译码的卷积码的长度。
其次辅助部分Wc,辅助部分Wc的设置,主要是由于如果各滑动窗口均只有判决输出部分,而不设置辅助输出部分,那么根据最优路径的定义以及网格图的特性,各滑动窗口中的最优路径可能不是全局意义上的最优路径在该滑动窗口中的部分路径。例如,对于一长度为M的卷积码,假设在时刻(M-1)时,所有状态点中状态点A的路径度量最小,设该最小路径度量为a,并且路径度量a对应的路径为路径1,状态点A在时刻M转移到状态点B,状态点A到状态点B的分支度量为ab,根据网格图的特性,对于状态点B还存在另一汇入分支,设由状态点C汇入,状态点C的路径度量是c,并且状态点C到状态点B的分支度量为ac,如果ac>ab,并且使(c+ac)<(a+ab),即在时刻M,路径度量最小的路径,即全局最优路径,为状态点C汇入的路径,而不是状态点A汇入的路径。可见,从卷积码开始时刻到时刻(M-1)的最优路径并不是全局最优路径的局部,如果从时刻(M-1)为起始点,根据VA回溯最优路径时,回溯获取的局部路径为路径1,不能得到正确的最优路径。因此,针对这种情况,在各滑动窗口的判决输出部分末端设置了辅助部分。根据VA的特性当译码深度d足够大的时候,比如,d等于卷积码编码器的约束长度的4到6倍时,所有的幸存路径会以很大的概率在d个时刻单位内合并。因此,将辅助部分的长度C设置为足够大,使得所有的幸存路径会以很大的概率在时刻长度C内合并,在包括判决输出部分以及辅助部分的所有滑动窗口内,进行前向计算,并且在辅助部分的最末端的时刻为起始时刻,按照最优路径回溯。根据辅助部分的长度C的设置,回溯将很大概率的在时判决滑动窗口内与真正的全局意义上的最优路径合并,保证在判决输出滑动窗口内回溯获取的路径是全局意义上的最优路径的部分。
根据以上对滑动窗口的设置方法,可以得知,各全局优选路径与全局最优路径相分离的长度很大概率的不超过一个滑动窗口的长度,亦即,如果全局优选路径在某滑动窗口内与全局最优路径相分离,那么很大概率的,必将在本滑动窗口内,或者,在与之相邻的另一滑动窗口内(具体是另一滑动窗口的辅助部分内)与全局最优路径相合并。
将卷积码帧分段在各滑动窗口中,使所述的各滑动窗口的判决输出部分的长度的总和等于卷积码帧长,在卷积码上的各滑动窗口可以相同也可以不同,具体根据译码方便以及卷积码的类型进行设置,对于通讯系统中通常的对整帧卷积码的译码,如图4所示,通常设定使除位于卷积码帧最末端的滑动窗口外的其他所有滑动窗口一样即各滑动窗口的R、C参数一样,而对于最末端的滑动窗口,令该滑动窗口的判决输出部分的长度R等于余下的卷积码长度,其辅助部分的长度C等于卷积码末端的冗余码段长度(一般在卷积编码时,在编码结束后,在编码的末端多输入一个(K-1)比特的各比特值为“0”的冗余码段,用于确认编码结束)。
而如果需要对一帧卷积码帧的某段进行译码时,通常采用图5所示的滑动窗口设置,所有滑动窗口的辅助部分C参数一致,而对于除了位于所需要译码的卷积码段最末端的滑动窗口的其它滑动窗口,其判决输出部分R参数一样,而对于位于所需要译码的卷积码段的最末端的滑动窗口的判决输出部分R参数具体等于余下的卷积码部分的长度。
步骤S302iw=iw+1,获取第iw滑动窗口的局部最优路径以及除最优路径外的其他局部优选路径。
按照滑动窗口在卷积码帧的时刻从大到小的顺序,将对应的时刻最小的滑动窗口称为第一滑动窗口,其次第二滑动窗口,依次类推。
使iw加1,首先iw=1,首先对第1滑动窗口在第1滑动窗口内的网格图中,从滑动窗口的开始时刻(对于第一滑动窗口也即需要译码的卷积码的开始时刻),前向计算,对于每个时刻的每个状态存储该状态,并分别计算2个分支度量,并分别将前一时刻的状态点的路径度量加上分支度量,获取当前状态点的路径度量。如果所需要查找的全局优选路径的总数为L,则在每一状态点计算2L个路径度量,并保存该2L个路径度量中的较小的L个路径度量,以及该所保存的L个路径度量对应的路径。按照最优、次优、第三优一直到第L优的顺序,对应存储。
图6是每时刻的每状态点对应的的路径寄存器值示意图,该路径寄存器值具体是存储在路径寄存器中的该状态点对应的各优选路径,假设所需要查找的全局优选路径的路径总数为L,如图示,在每个时刻的每个状态点均有相应的路径寄存器来存储该L个优选路径,在路径寄存器中保存L个比特值,每比特值分别表示到达当前状态点的的迁移时刻的各优选路径,比如,第1比特表示最优路径的路径,第2比特表示次优路径的路径,第3比特表示第3优路径,依次,第L比特表示第L优路径的路径。每比特的值可以是“0”或者“1”,比特值具体表示到达该状态点的前一时刻的路径,根据移动通讯中网格图的特性,对于每一时刻的每状态点,均有2个分支汇入,也有2个分支汇出,因此,可以使用比特值“0”和“1”分别当前状态具体是由那个分支转移过来的,即当前状态是由前一时刻的两个状态点的那个状态点转移过来的。比如,如果设置比特值为“0”时,表示当前状态是由前一时刻的某状态点转移过来的,而比特值为“1”时,则表示当前状态是由前一时刻的另一状态转移过来的。
前向计算到滑动窗口的最末端的时刻后,当前滑动窗口内的前向计算完毕。此时保存了当前窗口内的所有状态点的状态、所有状态点的L个优选路径值(即路径寄存器值)。
回溯查找局部最优路径选取滑动窗口中的辅助部分的最末端的时刻,任选一个状态点为起始点,根据每状态点的路径寄存器值,按照最优路径回溯,一直回溯到该滑动窗口的开始时刻,即回溯到判决输出滑动窗口的开始时刻,其中在判决输出部分回溯的路径便是所需要的局部最优路径,保存判决输出部分时刻范围的最优路径。
查找除局部最优路径之外的其他局部优选路径选取所获取的局部最优路径在滑动窗口的判决输出部分的最末端的时刻的状态点为起始点,在回溯的每时刻,根据回溯所在状态点的路径寄存器值,回溯查找所需要的局部优选路径,如果回溯在当前窗口内一直与局部最优路径相合并,则回溯到当前窗口最开始端的时刻为止,停止回溯;否则,一直回溯到与局部优选路径在合并为止。
为了方便回溯查找所需要的L个局部优选路径,可以根据如图6所示的路径寄存器值,建立一优选路径回溯表,如图7所示为L=4时的优选路径回溯表,如图示,表中的“1”表示在回溯的下一时刻,按照最优路径回溯;“2”表示在回溯的下一时刻,按照次优路径回溯;“3”表示在回溯的下一时刻,按照第3优路径回溯;“4”表示在回溯的下一时刻,按照第4优路径回溯。因此该表描述了,查找各局部优选路径时,在回溯查找的每一时刻,根据该时刻回溯所在状态点的路径寄存器值,确定在回溯的下一时刻,具体应该按照所述的下一时刻的路径寄存器值中的哪个路径回溯。例如如果,当前回溯查找的路径是最优路径,对照图7所示的表格,可见无论回溯的每个状态点对应的路径寄存器值是什么,在回溯的每一时刻的下一时刻均按照最优路径回溯。回溯到当前窗口开始端的时刻时,获取到当前行窗口的局部最优路径。
如果,当前回溯查找的路径是次优路径(即局部第2优路径),根据图7所示的优选路径回溯表,如果当前回溯所在状态点的路径值中次优路径与最优路径相同,即对照图7所示表格中,路径值为“0000”、“0001”、“0010”、“0011”、“1111”、“1110”、“1101”、“1100”,则在回溯的下一时刻均根据所述的下一时刻的状态点的路径寄存器值,按照次优路径回溯;如果当前回溯所在状态点的路径值中次优路径与最优路径不相同,即对照图7所示表格中,路径值为“1000”、“1001”、“1010”、“1011”、“0111”、“0110”、“0101”、“0100”,则在回溯的下一时刻,均按照所述下一时刻的路径寄存器值中的最优路径回溯。
当前回溯查找的路径是第3优路径,在回溯的每一时刻,获取当前回溯所在状态点的路径寄存器值,根据该路径寄存器值,对照图7所示的表格,如果路径值的最优路径值、次优路径值、第3优路径值相等,即路径值为“0000”、“0001”、“1110”、“1111”,则在回溯的下一时刻,按照所述下一时刻的路径寄存器值中的第3优路径回溯;
如果路径值的最优路径值、次优路径值相同,而第3优路径值与最优路径值、次优路径值不同,即路径值为“0010”、“0011”、“1101”、“1100”,则在回溯的下一时刻,按照所述下一时刻的路径寄存器值中的最优路径回溯;如果路径值的最优路径值、次优路径值不同,而第3优路径值与最优路径值、次优路径值其中之一相同,即路径值为“010”、“0101”、“0110”、“0111”、“1011”、“1010”、“1001”、“1110”,则在回溯的下一时刻,按照所述下一时刻的路径寄存器值中的次优路径回溯;如果,当前回溯查找的路径是第4优路径,在回溯的每一时刻,获取当前回溯所在状态点的路径寄存器值,根据该路径寄存器值,对照图7所示的表格,如果路径值的最优路径值、次优路径值、第3优路径值、第4优路径值均相等,即路径值为“0000”、“1111”,则在回溯的下一时刻,按照所述下一时刻的路径寄存器值中的第4优路径回溯;如果路径值的最优路径值、次优路径值、第3优路径值、第4优路径值只有三个相同,其中一个与其它的3个相异,即路径值为“0010”、“0100”、“0111”、“1101”、“1011”、“1110”,则在回溯的下一时刻,按照所述下一时刻的路径寄存器值中的第3优路径回溯;如果路径值的最优路径值、次优路径值、第3优路径值、第4优路径值只有两个相同,即路径值为“0011”、“0101”、“0110”、“1100”、“1010”、“1001”,则在回溯的下一时刻,按照所述下一时刻的路径寄存器值中的次优路径回溯;如果路径值的最优路径值、次优路径值、第3优路径值相同,而第4优路径值与最优路径值、次优路径值、第3优路径值相异,即路径值为“0001”、“1110”,则在回溯的下一时刻,按照所述下一时刻的路径寄存器值中的最优路径回溯;在回溯的每时刻,根据图7所示的优选路径回溯表,分别回溯获取个局部优选路径。值得说明的是,在回溯过程中,如果路径值的最优路径值与当前所回溯的局部优选路径对应的路径值第一次不相同时(比如,如果当前回溯查找的路径是局部次优路径,则路径值的最优路径值与次优路径值第一次不同;如果当前回溯查找的路径是局部第3优路径,则路径值的最优路径值与第3优路径值第一次不同。)则在以后回溯的每时刻,获取回溯所在状态点的状态,将该状态与已知的局部优选路径在对应时刻的状态是否相同,如果不同,则一直根据图7所示的优选路径回溯表回溯,一直回溯到,回溯所在状态点的状态与局部优选路径在对应时刻的状态点的状态相同位置,停止回溯。
滑动窗口的位置会对除最优路径之外的其他优选路径的回溯产生影响,以下以次优路径为例进行说明,其他的优选路径与次优路径同理。
如图8示,当次优路径落在滑动窗口内时,如滑动窗口3,显然,次优路径的回溯在滑动窗口3内停止,不受滑动窗口的影响。但是。当滑动窗口落在次优路径与最优路径的中间部分时,如滑动窗口4的位置,则按照传统的滑动窗口的方法在当前滑动窗口内回溯,无法回溯出完整的次优路径,此时需要在滑动窗口4以外,利用前一滑动窗口,即滑动窗口3的路径信息,继续回溯,直到与滑动窗口3的最优路径相合并为止,才能正确获得次优路径。
在当前滑动窗口内,对所有的除了最优路径外的其他所有(L-1)个优选路径回溯,并存储所获取的各局部优选路径后,执行步骤S303,判定当前的iw是否小于滑动窗口总数,如果不小于,则执行步骤S304;否则,返回步骤S302,继续使iw加1,使iw=2。
在第2滑动窗口内的前向计算与在第一滑动窗口内的计算基本相同,所不同的是在本滑动窗口中,由于第1滑动窗口的判决输出部分的最末端的时刻为第二滑动窗口的判决输出端的开始时刻,第1滑动窗口的辅助部分与第二滑动窗口相重合。相重合部分的所有状态点的状态、累积度量以及路径值,在第一滑动窗口前向计算时已经获取,因此,在对第2滑动窗口进行计算时,可以不必进行重复计算,而从第1滑动窗口的最末端的时刻为前向计算的开始时刻,设该时刻为时刻i,那么,根据iw=1时获取的时刻i的所有状态点的路径度量,累计下一时刻的分支度量,获取下一时刻的路径度量。并且根据路径度量,保存L个优选路径的路径值。
前向计算完毕后,与获取第1滑动窗口内同法,获取第2滑动窗口的判决输出部分的局部最优路径。选取该局部最优路径在第2滑动窗口的判决输出部分的末端的时刻的状态点为回溯起始点,与在第1滑动窗口内获取除最优路径外的优选路径同法,在第2滑动窗口内回溯查找相应的优选路径。值得说明的是在回溯查找除最优路径外的其他优选路径时,如果所回溯的优选路径与最优路径在当前滑动窗口内保持重合,则回溯到本滑动窗口的判决输出部分的开始端的时刻停止;否则一直回溯到与最优路径相合并为止,并存储当前获取的优选路径在与最优路径相分离时刻段的路径寄存器值,而舍弃在前一滑动窗口回溯获取的与当前所获取的局部优选路径的路径号相同的局部优选路径(即如果在第2滑动窗口中获取的第2局部优选路径与该窗口内的局部最优路径,在地2滑动窗口内部在所有时刻重合,那么舍弃在第1滑动窗口内获取的局部次优路径,对于其他局部优选路径,同理处理)。如果所回溯的优选路径与最优路径在当前滑动窗口内相分离后,回溯到当前滑动窗口的最开始端的时刻,仍然未与当前滑动窗口内的最优路径合并,那么继续在前一滑动窗口内进行回溯,直到回溯的优选路径与前一滑动窗口的局部优选路径合并为止。在第2滑动窗口内,对所有的优选路径回溯完毕,并更新了所述的各优选路径的路径寄存器值后,执行步骤S303,判定当前的iw是否小于滑动窗口总数,如果不小于,则执行步骤S304,否则,表示当前滑动窗口不是最末端的滑动窗口,返回步骤S302,继续使iw加1,使iw=3。
对第3滑动窗口以及后续的其他滑动窗口的最优路径以及其他优选个路径的获取方法与第2滑动窗口的同理。在此不作赘述。
值得说明的是,根据上面的描述,可以看出,在回溯查找除全局最优路径的其他优选路径时,存在回溯的优选路径不在当前滑动窗口内与当前滑动窗口的局部最优路径合并,而需要在前面的滑动窗口内继续进行回溯,回溯在前面的滑动窗口内与该滑动窗口内的的局部最优路径相合并的可能。再根据对滑动窗口的辅助部分Wc的长度C的设置,得知,如果回溯的优选个路径在当前滑动窗口内未与最优路径合并,在前一滑动窗口内必定与最优路径合并。因此,如果当前的滑动窗口为第iw滑动窗口,需要,并只需要存储第(iw-1)滑动窗口内的所有状态点的状态,所有状态点的L个径度量以及相对于L个路径度量的路径值,以便于第iw滑动窗口查找该滑动窗口内的除局部最优路径外的其他局部优选路径使用。
步骤S303判定当前iw是否小于滑动窗口的总数,如果不小于,则表示当滑动窗口是最末端的滑动窗口,执行步骤S304;否则返回步骤S302。
步骤S304根据各滑动窗口所获取的所有局部优选路径,获取所有的局部优选路径以及所述各全局优选路径的译码,并对所获取的全局优选路径输出的译码数据进行差错校验,根据校验结果,输出译码结果。
显然,由于各相邻滑动窗口的判决输出部分首尾在同一时刻点相连接,因此各滑动窗口的局部优选路径,按照时刻顺序的组合便是全局最优路径,而对于除全局最优路径外的其他各全局优选路径,可以根据各优选路径与全局最优经相分离的时刻段的路径,结合全局最优路径,将各优选路径与全局最优经相分离的时刻段的路径,替换全局最优路径上的相应时刻段的路径,便可获取包括所有时刻的各全局优选路径。
对各全局优选路径的译码数据,进行差错校验,如果某全局优选路径的译码差错校验正确,则输出该正确的译码,结束译码;如果对所有路径输出的译码数据分别进行差错校验均不正确,则输出译码失败的译码结果,结束译码。
现有的可以采用的差错校验的方法具体有CRC校验、奇偶校验、重复码校验、恒比码校验等。具体是在信道编码时,在对信道传输数据进行编码时,在数据中插入差错校验码,使校验码与数据一起发送到信道接收端。信道接收端对所接收到的信号进行解调,译码后,得到译码数据,根据对信道编码所采用不同的差错校验编码方式,在对译码数据进行差错校验时,采用与信道编码时相应的差错校验方式。比如,如果在信道编码时,采用的是CRC校验码,那么对译码进行差错校验时,相应采用CRC校验方式。
当译码失败时,通信系统可以根据该译码,执行自动请求重发、前向纠错、或混合纠错等相应的差错控制策略。
以下将通过具体实施例对本发明方法作进一步的分析
图9所示为本实施例的方法流程示意图,如图示,本方法包括以下步骤步骤S901预设滑动窗口。
根据卷积码帧长,设置滑动窗口的判决输出部分WR的长度R,以及与下一滑动窗口相重合的部分Wc的长度C,其中各滑动窗口的判决输出部分R的总和,等于卷积码帧长。
如图4所示,对于除位于卷积码最末端的最后一滑动窗口外的其他的滑动窗口,判决输出部分WR的长度R大小均为R0,与下一滑动窗口相重合的部分Wc的长度C大小均为C0=6*K,其中K为卷积编码器的约束长度。对于帧长为M的卷积码,可知滑动窗口的个数Nw为 因此,对于位于卷积码最末段的滑动窗口该滑动窗口的判决输出部分WR的长度为RNw=M-(Nw*R0),而对于该滑动窗口的辅助部分Wc,由于该滑动窗口位于卷积码的最末段,可以将其设置为CNw=K-1。
步骤S902初始化当前滑动窗口标识iw=1,以及路径号l=1。
设滑动窗口标识iw的范围为0<iw<=Nw,初始化,使当前滑动窗口为,位于卷积码最开始码段的第1个滑动窗口。
步骤S903设置时刻变量j,并初始化j=0,以及确定时刻j的范围。
根据第iw滑动窗口,确定时刻j的范围,即时刻j的范围为,最小时刻为当前滑动窗口的判决输出部分的最开始端对应的时刻,最大时刻j为当前滑动窗口的辅助部分的最末端对应的时刻。
步骤S904j=j+1,获取时刻j的分支度量、路径度量,以及L个优选路径的路径寄存器值。
时刻j加1,获取时刻j的所有状态点的状态,并计算分支度量,以及通过计算汇入该状态点的前一状态点的路径度量与分支度量的和,获取路径度量,设需要查找的全局优选路径的总数为L,显然,在每状态点需要保存最小的L个路径度量,以及该L个路径度量对应的路径,由于每时刻的前一时刻具有L个路径度量,而每时刻的后一时刻具有2个分支度量进入该时刻,可见,对于每时刻均需要计算2L个路径度量,在所得到的2L个路径度量中选取较小的L个路径度量存储,并且保存该L个路径度量对应的路径值存储在路径寄存器中。如图6所示每时刻的每状态点对应的的路径寄存器值示意图,在该路径寄存器中,保存有L个比特值,从第1比特、第2比特、、、第L比特的值,分别对应最优路径、次优路径、、、第L优路径的路径信息。对个每比特的值可能是“0”也可能是“1”。由于每状态点均既有两可能分支汇入,也有两可能分支汇出,即对于每状态点,只可能由前一时刻的两个状态转移过来的。因此,如果比特值为0,则表示前一状态点具体是由前一时刻一状态点转移过来的;如果该比特值为1,则表示前一状态点具体是由前一时刻另外一状态点转移过来的。可见,如果两比特的值相同,则表示两路径在前一时刻的状态点为同一点;否则,两路径在前一时刻的状态点不同。
步骤S905判断j是否在步骤S903所确定的时刻范围内,如果在时刻范围内,返回步骤S904,否则,执行步骤S906。
步骤S906取第iw滑动窗口的在最末时刻的所有状态点中路径度量最小的状态点为回溯起始点,进行路径回溯,获取判决输出部分WR的局部最优路径。
选取第iw滑动窗口的在最末时刻的所有状态点中路径度量最小的状态点为回溯起始点,根据前向计算所获取各状态点的路径寄存器值,按照最优路径回溯,输出第iw滑动窗口的判决输出部分WR局部最优路径,并存储所述的局部最优路径的路径寄存器值。
本步骤中,除了选取第iw滑动窗口的在最末时刻的所有状态点中路径度量最小的状态点为回溯起始点之外,还可以选取其他的任意状态点为起始点,所不同的是选取第iw滑动窗口的在最末时刻的所有状态点中路径度量最小的状态点为回溯起始点,有利于回溯尽快与滑动窗口内的局部最优路径重合,有利于尽快回溯到第iw滑动窗口的局部最优路上。
步骤S907根据局部最优路径回溯获取其他的(L-1)个局部优选路径,并更新相应的路径寄存器值。
根据已获取的第iw滑动窗口的判决输出部分的局部最优路径,选取在最优路径在判决输出部分的最末端对应的时刻的状态点为回溯起始点,根据前向计算所存储的各状态点的路径寄存器值,对照图7所示的优选路径回溯表,进行回溯,为了增加可靠性,回溯的过程中,如果优选路径与最优路径分离后,则根据相应的路径寄存器值,回溯到优选路径与最优路径重合后,便停止回溯。
以下以次优路径为例,具体说明如何根据路径寄存器值回溯获取次优路径首先,选取在最优路径上,WR的最末时刻的状态点为起始点,在起始点时刻,即WR的最末时刻,获取起始点的路径寄存器值,并根据路径寄存器值,对照图7所示的优选路径回溯表,查找获知在回溯的下一时刻应该按照那个优选路径回溯,并且在该起始点时刻,按照次优路径回溯。在回溯的下一时刻,即起始点的前一时刻,根据当前时刻的路径寄存器值,按照在起始时刻的路径寄存器值所获知的在当前时刻应该根据哪个优选路径回溯的优选路径回溯,并在当前时刻,根据当前时刻的路径寄存器值,对照图7所示的优选路径回溯表,获知在下一时,应该按照那个优选路径回溯,同理对于此后回溯的每一时刻。如图10所示为在第iw窗口回溯局部第2优路径的流程示意图,如图示,具体如下步骤S1001初始化时刻t=te。
初始化时刻t等于第iw滑动窗口的判决输出部分的最末端的时刻,设该时刻为时刻te;步骤S1002获取时刻te回溯所在状态点对应的路径寄存器值;并对照优选路径回溯表获知在时刻(te-1)应按照那个优选路径回溯,获取时刻(te-1)时刻应回溯的路径号;在时刻te,根据路径寄存器值,按照次优路径回溯。
对照图7所示的优选路径回溯表,可见,在时刻te,如果路径寄存器值为“0000”、“0001”、“0010”、“0011”、“1111”、“1110”、“1101”、“1100”,则在时刻(te-1),均根据时刻(te-1)的状态点的路径寄存器值,按照次优路径回溯;否则,在时刻(te-1),根据时刻(te-1)的状态点的路径寄存器值,按照最优路径回溯。同时在时刻te,根据时刻te的路径寄存器值,按照次优路径回溯。
步骤S1003根据路径寄存器值,判别路径寄存器值中次优路径值与最优路径值是否不同,如果不同执行步骤S1004’;否则,执行步骤S1004。
步骤S1004使时刻t等于t减1,执行步骤S1005。
步骤S1005获取时刻t回溯所在状态点对应的路径寄存器值,执行步骤S1006’。
步骤S1006对照优选路径回溯表获知在时刻(t-1)应按照那个优选路径回溯,获取时刻(t-1)时刻应回溯的路径号,并且在时刻t,根据路径寄存器值,按照在时刻(t+1)获取的在时刻t按照的优选路径回溯,并返回步骤S1007。
对照图7所示的优选路径回溯表,可见,在时刻t,如果路径寄存器值为“0000”、“0001”、“0010”、“0011”、“1111”、“1110”、“1101”、“1100”,则在时刻(t-1),均根据时刻(t-1)的状态点的路径寄存器值,按照次优路径回溯;否则,在时刻(t-1),根据时刻(t-1)的状态点的路径寄存器值,按照最优路径回溯。同时根据时刻(t+1)时,所获取的在时刻t应按照的具体优选路径回溯。
步骤S1007判定时刻t是否大于第iw窗口的最开始端的时刻,如果大于,则返回步骤S1003;否则,执行步骤S10010。
步骤S1004’使时刻t等于t减1,执行步骤S1005’。
步骤S1005’获取时刻t回溯所在状态点对应的路径寄存器值,执行步骤S1006’。
步骤S1006’对照优选路径回溯表获知在时刻(t-1)应按照那个优选路径回溯,获取时刻(t-1)时刻应回溯的路径号,并且在时刻t,根据路径寄存器值,按照在时刻(t+1)获取的在时刻t按照的优选路径回溯,执行步骤S1007。
对照图7所示的优选路径回溯表,可见,在时刻t,如果路径寄存器值为“0000”、“0001”、“0010”、“0011”、“1111”、“1110”、“1101”、“1100”,则在时刻(t-1),均根据时刻(t-1)的状态点的路径寄存器值,按照次优路径回溯;否则,在时刻(t-1),根据时刻(t-1)的状态点的路径寄存器值,按照最优路径回溯。同时根据时刻(t+1)时,所获取的在时刻t应按照的具体优选路径回溯。
步骤S1007’存储局部次优路径路径。
步骤S1008’判断时刻t回溯所在状态点的状态与局部优选路径在时刻t的状态点的状态是否相同,如果相同执行,执行步骤S1008;否则,返回步骤S1004’。
如果回溯到第iw窗的最开始端对应的时刻,回溯还没有与最优路径重合,那么进入第(iw-1)窗,继续根据每时刻的路径寄存器值进行回溯,直到回溯到与第(iw-1)滑动窗口的局部最优路径合并为止。根据滑动窗口中的辅助部分长度C的设置,可见所有优选路径与最优路径以很大的概率在C个时刻内合并,即使得各优选路径与最优路径相分离的长度不大于一个滑动窗口长度,因此在第iw滑动窗口的回溯,如果不在第iw滑动窗口内与最优路径相合并,那么回溯一定能够在第(iw-1)窗内与最优路径相重合。
如果回溯的局部次优路径在第iw窗口内与该窗口的局部优选路径相分离了,那么舍弃在之前滑动窗口获取的局部次优路径,存储当前回溯获取的局部次优路径。根据各优选路径与最优路径只可能在一连续的时刻段内相分离,因此,可以只存储与最优路径相分离时刻段的路径,最后历遍所有滑动窗口查找后结合全局最优路径,获取该局部优选路径的全局路径。
步骤S1009’舍弃之前获取的次优路径。
步骤S10010停止回溯。
第3优、第4优路径以及其他的优选路径的回溯与地有路径回溯同理,在此不作赘述。
步骤S908iw=iw+1。
使iw加1,更新滑动窗口标识iw。
步骤S909如果iw不小于滑动窗口的总数,执行步骤S910;否则,返回步骤S903。
步骤S910根据路径寄存器获取全局第l优优选路径,并对第l优路径输出的译码数据进行差错校验。
至此,根据所存储的路径寄存器信息,可以获取到所有需要查找的全局优选路径。根据寄存器回溯全局第l优选路径,获取全局第l优选路径对应的译码数据,并对译码数据进行差错校验。
步骤S911差错校验结果判决。
如果差错校验正确,执行步骤S914;否则,执行步骤S912。
步骤S912l=l+1。
使路径号加1,更新路径号。
步骤S913判定l是否大于L。
如果l不大于所预设的需查找的全局优选路径的总数L,执行步骤S914,否则返回步骤S910。
步骤S914输出译码结果。
如果步骤S911中,差错校验正确,那么输出的译码结果是全局第l优路径的译码数据,结束译码。否则,输出的译码结果是译码失败,结束译码。
以上对本发明所提供的一种卷积码译码方法进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种卷积码译码方法,其特征是,包括以下步骤A、预设滑动窗口,其中所述的滑动窗口由判决输出部分以及辅助部分组成,将卷积码帧分段在所述的各滑动窗口中,使所述的各滑动窗口的判决输出部分的长度的总和等于卷积码帧长,预设滑动窗口标识iw,以及需要查找的全局优选路径的总数L,初始化iw等于0;B、使iw累加1,获取第iw滑动窗口内,每时刻的每状态点的状态、每时刻的每状态点相对于所述的卷积码开始时刻的路径度量,根据所述的路径度量选取L个优选路径度量,并存储所述的L个优选路径度量分别对应的优选路径,以第iw滑动窗口的最末端的时刻的一状态点为起始点开始回溯,在每时刻,根据回溯状态点的路径值,按照最优路径回溯,回溯到第iw滑动窗口的最开始端的时刻,获取第iw滑动窗口的判决输出部分的局部最优路径,并且以所述的局部最优路径在判决输出部分最末端的时刻的状态点为回溯起始点,根据回溯的状态点的优选路径值回溯,获取除局部最优路径外的其它局部优选路径,执行步骤C;C、如果iw小于滑动窗口的总数目,返回步骤B,否则,执行步骤D;D、根据各滑动窗口所获取的所有局部优选路径,获取所有的局部优选路径以及所述各全局优选路径的译码,并对所获取的全局优选路径输出的译码数据进行差错校验,根据校验结果,输出译码结果,其中所述的局部优选路径包括局部最优路径,以及除局部最优路径外的其它局部优选路径。
2.根据权利要求1所述的卷积码译码方法,其特征是,步骤A中所述的滑动窗口的设置具体是设置所述的判决输出部分的长度,以及辅助部分的长度,其中辅助部分的长度具体是根据所述的卷积码的译码深度设置。
3.根据权利要求1所述的卷积码译码方法,其特征是,步骤B所述的根据所述的路径度量选取L个优选路径度量具体是如果所述的卷积码译码器输入是硬判决,则选择较小L个的路径度量作为所述的优选路径度量;如果所述的卷积码译码器输入是软判决,则选择较大的L个路径度量,作为所述的优选路径度量。
4.根据权利要求3所述的卷积码译码方法,其特征是,所述的L个优选路径度量分别对应的优选路径具体用一具有L个比特单元的数值表示,其中各比特单元的值分别表示各优选路径。
5.根据权利要求4所述的卷积码译码方法,其特征是,在所述步骤B中,的所述的获取第iw滑动窗口的判决输出部分的局部最优路径过程中,如果所述的卷积码译码器输入是硬判决,则选取第iw滑动窗口的最末端的时刻的路径度量最小的状态点为起始点开始回溯;如果所述的卷积码译码器输入是软判决,则选取第iw滑动窗口的最末端的时刻的路径度量最大的状态点为起始点开始回溯。
6.根据权利要求5所述的卷积码译码方法,其特征是,步骤B中所述的根据回溯的状态点的优选路径值回溯,具体包括以下步骤B1、根据每时刻的每状态点对应的各优选路径,预设一优选路径回溯表,所述的优选路径回溯表,具体反映各优选路径与所述的各优选路径值的对应关系。B2、在回溯的每时刻,获取当前回溯所在状态点对应的各优选路径,并对照所述的优选路径回溯表,根据所述的优选路径回溯表,回溯获取所述的局部优选路径。
7.根据权利要求6所述的卷积码译码方法,其特征是所述步骤B2中,如果在回溯到第iw滑动窗口的最开始端的时刻之前的每时刻的状态点,所述状态点对应的优于当前回溯的优选路径的其他所有优选路径对应的路径值与当前回溯路径的路径值均相同,则回溯到第iw滑动窗口的最开始端的时刻,停止回溯。
8.根据权利要求6所述的卷积码译码方法,其特征是,在步骤B2中进一步包括以下步骤B21、在回溯的每时刻,获取当前回溯所在状态点对应的各优选路径值后,比较各优选路径值中的当前需要回溯获取的局部优选路径对应的优选路径值以及最优路径值是否相同,在第一次不相同后,在回溯的下一时刻以及以后的回溯的每时刻,获取回溯的状态点的状态,并比较所述状态点的状态是否与局部最优路径在所述状态点所在时刻的状态相同,如果不同,继续回溯;否则,停止回溯,保存当前回溯的局部优选路径。
9.根据权利要求8所述的卷积码译码方法,其特征是,步骤B21所述的保存当前回溯的局部优选路径后,进一步包括舍弃之前保存的与当前回溯的优选路径的路径号相同的其他局部优选路径。
10.根据权利要求9所述的卷积码译码方法,其特征是,在所述步骤B中进一步包括以下步骤B3、如果iw大于2,则释放滑动窗口标识小于(iw-1)的所有滑动窗口内的每时刻的每状态点的状态、路径度量,以及路径的存储空间。
11.根据权利要求1所述的卷积码译码方法,其特征是,步骤D中所述的全局最优路径的获取具体是根据所获取的各滑动窗口的局部优选路径,获取全局最优路径。
12.根据权利要求1至11其中任意之一所述的卷积码译码方法,其特征是,步骤D中所述的除全局最优路径之外的其它全局优选路径的获取具体是根据保存的各局部优选路径,以及各局部最优路径,获取所述的全局优选路径。
13.根据权利要求12所述的卷积码译码方法,其特征是,步骤D中对所获取的全局优选路径输出的译码数据进行差错校验,根据校验结果,输出译码结果,具体包括以下步骤D1、预设一实数变量l,初始化l等于0;D2、对全局第l优路径输出的译码数据进行差错校验,如果校验正确,执行步骤D4,否则,进一步判定l是否小于所预设的需查找的全局优选路径的总数,如果小于,执行D3;否则,执行步骤D4;D3、使l累加1,返回D2;D4、输出译码结果,结束译码。
全文摘要
一种卷积码译码方法,本方法通过在传统的PLVA中引入滑动窗口技术,将需要译码的卷积码分段在各滑动窗口中,在各滑动窗口中分别查找局部优选路径,根据各滑动窗口的局部优选路径,获取全局的优选路径,对所述的各全局优选路径译码进行差错校验,根据校验结果,输出译码结果。通过本发明的技术方案,既保留了PLVA的优点,又能大大减少了PLVA译码所需要占用的存储空间。
文档编号H03M13/41GK1968023SQ20061008745
公开日2007年5月23日 申请日期2006年6月8日 优先权日2006年6月8日
发明者徐昌平 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1