软维特比解码器无法正常工作

时间:2014-11-03 07:15:29

标签: matlab telecommunication viterbi

我一直在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输入有很大不同。

指导我不正确的地方

1 个答案:

答案 0 :(得分:0)

解码输出取决于您选择的opmode输入的类型。

如果是cont,则输出的延迟等于tblen个符号数,而有' term'和trunc模式。

您可以将初始msg(1,end-tblen)符号与dcd(1,tblen+1:end)进行比较。它们是一样的!

您可以在Matlab帮助中查看vitdec