我一直在matlab2009上使用简单的1/2速率卷积编码器进行维特比解码器。 这是我的代码
trel = poly2trellis(3,[7 5]);
msg = [ 0 1 0 1 1 1 0 0 1 0 1 0 0 0 1 ];
code = convenc(msg,trel);
% Traceback Length
tblen = 5;
ucode = real(awgn(1-2*code,tblen,'measured'));
dcd = vitdec(ucode,trel,tblen,'cont','unquant');
根据此输入代码 我得到的代码= 00 11 10 00 01 10 01 11 11 10 00 10 11 00 11 哪个是对的 但是谈论维特比解码器输出后输出的dcd是不正确的 即000000101110010。这与我的msg输入有很大不同。
指导我不正确的地方
答案 0 :(得分:0)
解码输出取决于您选择的opmode
输入的类型。
如果是cont
,则输出的延迟等于tblen
个符号数,而有' term'和trunc
模式。
您可以将初始msg(1,end-tblen)
符号与dcd(1,tblen+1:end)
进行比较。它们是一样的!
您可以在Matlab帮助中查看vitdec
。