同址存储在维特比译码中的应用

来源 :硅谷 | 被引量 : 0次 | 上传用户:zhuyuyuseu
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘 要: 维特比算法是卷积码的一种最大似然译码,其幸存路径和幸存路径度量的存储均有不同的实现方法,设计的通用维特比译码器,采用同址存储方法来实现幸存路径及其度量的存储,并用Matlab仿真该结构的译码器,结果表明该结构的译码器可正确实现译码,并且控制相对简单、译码延时较小。
  关键词: 同址存储;维特比译码器;幸存路径;路径度量;FPGA
  中图分类号:TN929 文献标识码:A 文章编号:1671-7597(2011)1210137-02
  0 引言
  维特比算法是卷积码的一种最佳概率译码方法[1]。实际中对某一种码型的维特比译码进行研究的较多,而有时需要不同码型的维特比译码,即通用的。
  维特比译码中,需要将各个状态的幸存路径及其度量进行存储。路径度量的存储通常采用两种结构:乒乓结构和同址存储。幸存路径的存储有两种传统的实现方法:寄存器交换法[2]和回溯法[3]。本文设计的通用维特比译码器采用同址存储法[4]来实现幸存路径及其度量的存储,其控制相对简单、译码延时较小。
  1 同址存储方法
  在维特比译码器中,幸存路径或其度量的存储,就是记录下译码器每组输入时,各个状态对应的幸存路径或其度量。同址存储就是将前一时刻某个状态的幸存路径或其度量的信息,从一个地址读出,当经过加-比-选(ACS)单元处理后,把新状态的幸存路径或其度量又存储到该地址中。
  以(2,1,3)卷积码为例,来介绍同址存储方法的原理,其ACS采用基2蝶形运算(见图1,图中转移分支上为该分支对应的判决比特)。
  
  图1 基2蝶形运算图
  图1中, 表示在n-1时刻0X状态。第n时刻,转移到状态X0的路径有21条,即从n-1时刻的0X状态转移过来的路径①,和从n-1时刻的1X状态转移过来的路径②。同样,在n时刻,转移到状态X1的路径也有21条,即路径③和④。但转移到各个状态的幸存路径只有一条,同时,在n时刻的其余状态的幸存路径都不会经由0X或1X状态转移过来,这样就可以实现幸存路径或其度量的同址存储。同址存储时,存储器按照状态个数分成相应的存储单元,里面存储的是相应状态的幸存路径或其度量。
  
  图2 与图1对应的幸存路径存储器的信息
  若此时译码深度为8,n时刻经过ACS的计算,确定状态X0和X1的幸存路径分别为第①条和第④条。此时,在幸存路径存储器里面,存储的是n-1时刻各个状态对应的幸存路径,见图2。则n时刻,状态X0的幸存路径可由前一状态0X所对应的幸存路径,加上状态X0的判决比特构成。通过对寄存器的读操作,从A中读出0X状态的幸存路径00001100,左移一位后,在该路径的后面添加一比特0,最后X0状态对应的幸存路径00011000,再将其存储到存储器的A地址里;同理,n时刻的X1状态对应的幸存路径为01001001,在存储X0状态的幸存路径的同时,将01001001存储于B地址中,这样就实现了幸存路径的同址存储。幸存路径度量的存储与此原理类似。
  对于(n,k,N)卷积码(其中k 表示编码输入数据的位数,n表示编码输出数据位数,N表示约束长度),基2k蝶形运算如图3所示。输入的2k个状态的幸存路径及其度量,只与输出的2k个状态的幸存路径及其度量有关,并且输出的2k个状态的幸存路径及其度量的确定只与输入的2k个状态的幸存路径及其度量有关,所以可以用同址存储法实现幸存路径的存储。
  由于幸存路径及其度量均采用同址存储,那么这两部分的控制就相同。同址存储方法中,如果存储是幸存路径,即译码后的序列,当达到译码深度后,就可以直接进行输出,不需要回溯,相应的译码延时就小;且采用的幸存路径存储部分是RAM(寄存器交换法采用寄存器和多路选择器),则会占用较少的资源。
  
  图3 (n,k,N)卷积编码的一个基2k蝶形运算图
  2 Matlab仿真
  
  为了检验采用同址存储的通用维特比译码器的功能,本文采用Matlab进行仿真。
  如果已知卷积码的n、k、N及其子生成元的系数 或 (其中K=0,1,……,k-1,l=0,1,……,N-1,j=0,1,……,n-1),就可以确定其结构(见图4),根据此结构就可在Matlab中实现任意卷积码的编码。
  (N,k,N)的维特比译码,共有2k(N-1)个状态,对应每组译码器的输入,基本的译码步骤为:
  1)计算出一个基2k蝶形运算中每个输出状态的2k个分支度量。
  2)读出该蝶形运算需要的2k个输入状态的幸存路径路径及其度量。
  3)对蝶形结构的输出2k状态均进行ACS运算,确定每个输出状态的幸存路径及其度量。
  4)将输出的2k个状态的新幸存路径及其度量进行存储。此时幸存路径或其度量采用同址存储法:2k个输出状态的幸存路径或其度量信息,存储到原来存储2k个输入状态的存储地址中,完成幸存路径或其度量的同址存储。
  5)完成所有2k(N-1)状态的ACS计算,即2k(N-2)个基2k的蝶形运算,计算过程见1)-4)。
  6)若达到译码深度,则选择具有最大度量幸存路径进行译码输出,每次输出k比特;若输入码元组数小于译码深度,则等所有输入均完成译码后,再选择具有最大度量的幸存路径进行译码输出。
  用Matlab完成上述的卷积码的编译码过程,再将两者连接到一起进行验证。给定任意一组编码输入序列、k、n、N和相应的子生成元的系数,通过编、译码器后,观察译码的输出码元和编码的输入码元是否一致。如果一致,说明能正常译码,即采用同址存储的幸存路径及其度量存储是可行的。本程序对码率分别为1/2、1/3、1/4、2/3、3/4的适用于维特比译码算法的码[1]进行了验证:当给定一组卷积码的结构和随机的一组编码输入,将编码器的输出序列再作为维特比译码器的输入,发现译码器的输出序列与编码输入一致。图5是k=3、n=4、N=4、g11=40、g12=14、g13=34、g14=60、g21=04、g22=64、g23=20、g24=70、g31=34、g32=00、g33=60、g34=64
  码型的卷积码的编码输入和译码输出的波形,其输入与输出完全一致。
  3 结论
  幸存路径及其度量是维特比译码器中的主要存储内容,如这两部分的结构合适,就可以大大减小译码器的硬件资源,并简化控制。传统的寄存器存储,需要寄存器和MUX,而同址存储用RAM进行存储,需要的硬件资源相对会少;传统的回溯法,存储的幸存路径在达到译码深度之后要进行回溯操作,而回溯时间需要一定的时间,但同址存储法由于存储的就是译码的信息,所以在达到译码深度后就可以直接进行输出,无需回溯。幸存路径度量的乒乓结构需要两组路径度量存储单元;而同址存储只需要一组存储单元,硬件资源会少。当幸存路径及其度量均采用同址存储时,这两部分的控制也相同,简化了控制的实现。在今后的设计中值得推广应用。
  
  
  图5 (4,3,4)卷积码编、译码的各个序列
  
  基金项目:福建省教育厅B类科技项目(JB09009)
  
  参考文献:
  [1]王新梅、肖国镇,纠错码——原理与方法,西安:西安电子科技大学出版社,2001.
  [2]D.A.El-Dib,M.I.Elmasry.Modified register-exchange Viterbi dec
  oder for low-power wireless communications.IEEE Transactions on Circuits and Systems,2004,51(2):371-378.
  [3]Mario Traber.A Low Power Survivor Memory Unit For Sequential Viterbi Decoders.The 2001 IEEE International Symposium on,Circuits and Systems,2001.ISCAS 2001.Volume: 4:6-9 May 2001:214-217.
  [4]张红、陈新、张国成,维特比译码器中幸存路径存储器的一种新的实现方法,应用科技,2007,34(3):19-22.
  
  作者简介:
  张红(1978-),女,讲师,福州大学物理与信息工程学院。
其他文献
介绍影响织机跑偏的原因及改进方法。
通过牵引所电容差压保护特点的分析,提出电容差压保护整定的计算及原则。
分析配电网的特点和配网设备运行维护的特殊要求,从实现目标、实施范围、用户对象、基本功能等多个方面对配网自动化进行重新定位,提出配电房综合自动化的概念,介绍配网自动
摘 要: 在高校计算机课程中,由于办公软件具有应用广泛的特点,因此是计算机教学中的难点和重点,但是学生对办公软件缺乏学习的兴趣,讨论提高计算机办公软件效率的建议。  关键词: 计算机教学;办公软件;技巧分析  中图分类号:TP311.52 文献标识码:A 文章编号:1671-7597(2011)1210132-01  办公软件教学是一门具有理论性强、实际工程意义大的特点,办公软件研究的方法和概念
查询服务类子系统主要包括网上查询、触摸屏查询、领导查询、电话语音服务和补助业务等几个方面,是数字化校园管理平台的最直观体现,它是以校园网为基础,为师生提供综合的查询统
本文通过对荣华二采区10
期刊