卷积码Viterbi译码器的FPGA设计与实现

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

卷积码Viterbi译码器的FPGA设计与实现作者:刘建强殷…文章来源:现代电子技术点击数:199更新时间:2006-4-11摘要:主要介绍了卷积码中Viterbi译码器的FPGA实现方案。方案中设计了幸存路径交换寄存器模块,充分利用FPGA中丰富的触发器资源,减小了译码器状态控制的复杂度,提高了VB译码器的运行速度。关键词:卷积码;Viterbi算法;FPGA;VB在通信系统信道编码中,卷积码编码器的输出不仅与此时刻的k个输入有关,还与前m个输入有关,由于其充分利用了各组之间的相关性,与分组码相比,在同样的码率和设备复杂性条件下,卷积码的性能不比分组码差,且实现最佳译码也较分组码容易。1967年维特比(Viterbi)提出了基于网格图(Trellis)的最大似然译码算法Viterbi(VB)算法。在码的约束度较小时,VB算法具有效率高、速度快、译码器简单等特点,现在已被广泛应用于各种数传系统中。近年来随着集成电路制造技术的迅速发展,可编程逻辑器件(PLD)也得到了很大发展,并以其密度高、速度快、编程灵活、成本低廉等优点在各个领域得到广泛应用。基于FPGA的卷积码Viterbi译码器,针对FPGA触发器资源丰富的优点,设计了幸存路径交换寄存器模块,使译码过程中的幸存路径选择变得快速简单。而且所设计的VB译码器可以很容易地根据需要集成到应用系统之中。1VB译码器原理卷积码的编码过程可以认为是输入信息元通过编码网格图相应路径的过程。因此译码可以认为是根据接收码字序列寻找编码时通过网格图的路径的过程。找到该路径即完成了译码过程,并可以纠正接收码字中的错误比特。图1所示八状态(2,1,3)卷积码网格图中,实线和虚线分别表示输入比特为0,1时的状态转移,而分枝上的值表示相应的编码输出码字。参照网格图,VB算法的基本原理是:在不同时刻t=k+1,k+2,...,k+L,对于同一时刻的所有8个状态,分别计算并比较以其为终点的两条路径的路径度量,保留一条具有最大路径度量的路径,称为幸存路径,而将另一条路径舍弃。每个时刻进行同样的运算处理过程,直到最后时刻,留下的幸存路径即是所要的最大似然译码路径。幸存路径对应的编码比特,就是译码输出的硬判决比特。实际译码过程中,考虑到译码延时与译码器存储量,常采用截尾译码方式,即在处理完第L段码元序列后,译码器就开始输出第k个判决比特,L称为译码窗口宽度,等于译码器的译码输出延时。理论表明,当L=5~10m时(m为卷积码编码存贮长度),对译码器输出的译码错误概率影响很小。对于八状态卷积码m=3,因此设计中取L=30。2VB译码器FPGA实现总体架构VB译码器主要由5个子模块构成,如图2所示。(1)支路度量发生器对于每一时刻的输入码元,为每一个状态生成相应的支路度量。(2)加比较选择器(ACS)根据VB译码原理,将支路度量和前一时刻相应的路径度量相加并比较,得到本时刻的新的路径度量和相应的判决比特,如图3所示。(3)路径度量PM化简模块对新的路径度量进行化简,挑选最小的路径度量作为化简基准,更新所有8个状态的路径度量值,防止路径度量多次相加后溢出。(4)幸存路径交换寄存器模块设计用来快速实现VB译码过程,完成幸存路径的选择、交换、存储等功能;在L步延时后,0状态的幸存路径作为译码判决输出,如图4所示。(5)译码控制状态机控制和协调VB译码器各模块的工作时序。3结语在VB算法基础上,设计了基于FPGA的VB译码器硬件架构,并根据要求设计了每个功能子模块。为保证译码速度并充分利用FPGA中的触发器资源,设计了幸存路径交换寄存器模块,以动态交换代替了传统的静态存储结构,减小了译码器状态控制的复杂度,提高了译码器的运行速度。VB译码器及所有模块均在Xilinx公司的ISE5.1开发环境中成功调试及综合下载。FPGA器件选用Xilinx公司SpartanⅡ系列中的XC2S100。参考文献[1]王新梅,肖国镇.纠错码原理与方法[M].西安:西安电子科技大学出版社,2001.[2]王金明.数字系统设计与VerilogHDL[M].北京:电子工业出版社,2002.[3]朱明程.Xilinx数字系统现场集成技术[M].南京:东南大学出版社,2001.

1 / 3
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功