您现在的位置:首页 >> 项目讲座 >> 通信/信号处理 >> 内容

HighSpeedLogic专题:217维特比译码器的FPGA设计

时间:2019/7/15 13:31:15 点击:

  核心提示: (2,1,7)卷积码译码过程的总体结构可分为4个子模块,分别是分支度量模块,加比选蝶形运算单元,幸存路径存储单元和回溯译码单元。...

二:viterbi译码器

   217)卷积码译码过程的总体结构可分为4个子模块,分别是分支度量模块,加比选蝶形运算单元,幸存路径存储单元和回溯译码单元。

译码器的结构框图如图3所示。

 

·分支度量计算单元

    分支度量计算单元是用来计算输入信号序列与卷积码各个可能输出信号序列的似然度量,维特比的似然准则就是在寻找具有最小距离的路径。若译码器采用硬判决译码时,分支度量计算采用汉明距离,而采用软判决译码时,则是采用欧氏距离,即计算

采用这种方法,与采用欧氏距离相比,对译码器的性能影响不大,该译码器的性能与采用欧氏距离的译码器性能差仅有0.1~0.2dB

由上式可以看出,如果采用8电平量化软判决方式,则此时路径度量值扩展为014,所以分支度量单元的输入是3比特数据,而输出则是4比特数据,这样硬件实现比较简单,可以减少硬件开销。

其硬件实现电路结构如图4所示。由于本设计中采用的是(217)卷积码,所以一级中共有64个结点,需要64个分支度量计算单元,在实现中,采用了全并行的结构,这样在一个时钟周期内,可以更新所有64个结点的分支度量值。

4  分支度量计算单元的硬件电路结构

     其代码如下所示:

 

 

assign  I = (en) ? Iin : 0;           //软判决输出模块

assign  Q = (en) ? Qin : 7;          //软判决输出模块

assign  recom = reset &en | start;

wire [3:0] bm0,bm1,bm2,bm3;

assign bm0=bm00(I,Q);//BM模块的输出

assign bm1=bm01(I,Q);//BM模块的输出

assign bm2=bm10(I,Q);//BM模块的输出

assign bm3=bm11(I,Q);//BM模块的输出

 

作者:HighSpeedLogic 来源:HighSpeedLogic
  • 您是如何找到本站的?
  • 百度搜索
  • Google搜索
  • 查阅资料过程中
  • 论坛发现
  • 百度贴吧发现
  • 朋友介绍
本站最新成功开发工程项目案例
相关评论
发表我的评论
  • 大名:
  • 内容:
  • matlab代做|matlab专业代做|matlab淘宝代做|FPGA项目合作(www.hslogic.com) © 2023 版权所有 All Rights Reserved.
  • Email:highspeed_logic@163.com 站长QQ: 1224848052

    专业代做/代写/承接、MATLAB、SIMULINK、FPGA项目、博士/硕士/本科课题、Coursework、Eassy、Assignment