没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
matlab 卷积编码与 viterbi 译码的实现
标签: matlab viterbi 译码 信道编码 卷积码
MATLAB 中 viterbi 译码算法讨论!!!!!!!!!大家可以再评论区交流!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
MATLAB 中实现 viterbi 译码的函数为:
convenc 其中:
code = convenc(msg,trellis)
vitdec 其中:
vitdec(code,trellis,tblen,opmode,dectype)
code 卷积编码,trellis 网格表,tblen 回溯长度,opmode:cont、term、trunc,dectype:
unquant、hard、soft;
本人最近在做一个关于 viterbi 译码算法,最终在 FPGA 中实现,在 FPGA 中最终的实现方案
为 xillinx IP 核实现。在此之前用 MATLAB 进行仿真验证。
matlab 程序:
Tre = poly2trellis(7,[133 171]);
通过 poly2trellis 生成逻辑关系图,如下图所示。
matlab 卷积编码与 viterbi 译码的实现
逻辑关系图
%卷积编码:
msg = [0 1 0 1 1 0 1 0 1 1 1 1 0 0 1 1 0 0 1 0 1 0 0 1];
code = convenc(msg,Tre);
%code =
[0,0,1,1,0,1,0,0,0,1,1,0,0,1,0,1,1,0,0,0,1,0,0,0,1,0,1,0,0,1,1,1,1,1,1,1,0,0,1,1,0,1,0,1,1,1,1,0];
%这是通过 convenc 函数
生成的卷积码
%vitdec 译码:
%在 vitdec 译码过程中采用硬判决,通过不同的 tblen 和 opmode 来找出其中关系。
%(1) opmode = cont
tblen = 12;
msg_dat = vitdec(code,Tre,tblen,'cont','hard');
%msg_dat =[ 0 0 0 0 0 0 0 0 0 0 0 0
0 1 0 1 1 0 1 0 1 1 1 1 ];
%通过了解到 cont 模式中,vitdec 译码会有延迟,延迟的长度为 tblen 长度,所以在此对 vitdec
进行修改
code_temp = [code,zeros(1,24)];
msg_temp = vitdec(code_temp ,T,12,'cont','hard')
msg_dat = msg_temp(13:end);
%msg_dat = [ 0 1 0 1 1 0 1 0 1 1 1 1
0 0 1 1 0 0 1 0 1 0 0 1];
资源评论
Tosonw
- 粉丝: 88
- 资源: 95
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功