基于FPGA的Viterbi译码器设计

[09-12 18:33:37]   来源:http://www.88dzw.com  EDA/PLD   阅读:8748

文章摘要:式中,Rs与Cjs是接收序列R与Cj序列的Q进制表示。Viterbi算法是一种基于最大似然估计的算法。它并不是在网格图上一次比较所有可能的2kl条路径(序列),而是接收一段,就计算、比较、选择一段最可能的码段(分支),从而使整个码序列达到一个有最大似然函数的序列。3 Viterbi译码器的结构由以上分析可以得出如图4所示的Viterbi译码器的原理框图。由图4可见,Viterbi译码器大致可以分为四个部分:支路度量模块(BMU)、加比选模块(ACS)、幸存路径管理模块(SMU)和输出产生模块。其中支路度量模块用于完成译码器输入信号与网格图上的可能路径信号的分支度量计算;加比选模块主要把前一个状

基于FPGA的Viterbi译码器设计,标签:eda技术,eda技术实用教程,http://www.88dzw.com


  式中,Rs与Cjs是接收序列R与Cj序列的Q进制表示。

  Viterbi算法是一种基于最大似然估计的算法。它并不是在网格图上一次比较所有可能的2kl条路径(序列),而是接收一段,就计算、比较、选择一段最可能的码段(分支),从而使整个码序列达到一个有最大似然函数的序列。

  3 Viterbi译码器的结构

  由以上分析可以得出如图4所示的Viterbi译码器的原理框图。


  由图4可见,Viterbi译码器大致可以分为四个部分:支路度量模块(BMU)、加比选模块(ACS)、幸存路径管理模块(SMU)和输出产生模块。其中支路度量模块用于完成译码器输入信号与网格图上的可能路径信号的分支度量计算;加比选模块主要把前一个状态的路径度量与当前输入信号的分支度量相加,以得到该分支的路径度量,然后比较不同分支路径度量的大小,同时找出最小的度量值,并更新该状态的度量值,最后输出状态转移信息;路径管理模块可对加比选单元输出的状态转移信息进行处理,以便为输出判决做准备。输出模块可根据幸存路径管理单元的输出进行输出判决,最后输出译码信息。

  4 Viterbi译码器的FPGA实现

  本文所设计的(2,1,7)Viterbi译码器可在Altera公司的QuartusII8.0开发环境下进行设计,并在QuartusII下进行仿真。首先利用编码器对已知的序列进行编码,产生这个输入序列的编码码字,并对产生的编码码字进行人为加扰,用以验证所设计的Viterbi译码器对错误信息的纠错能力。图5所示是该译码器的仿真图,对于图5,通过对比原始编码序列和译码器输出的序列,可以看出。输入的序列与译码输出的序列一致,故可证明Vitervi译码器设计的正确性。



  5 结束语

  本文通过在QuartusII8.0下对基于EPGA芯片EP3C120F780C8进行Viterbi译码器进行了设计与验证。结果表明,本设计中的Viterbi译码器能够正确地进行译码输出。(国外电子元器件 作者:王连成)


上一页  [1] [2] 


Tag:EDA/PLDeda技术,eda技术实用教程EDA/PLD
分类导航
最新更新
热门排行