我一直在matlab2009中的viterbi译码器上工作,使用简单的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 0 0 0 1 10 0 1 11 10 0 10 11 0 11,这是正确的,但是谈到在viterbi译码器出现错误后输出的dcd,即000000101110010。这与我的msg输入有很大的不同。
指引我去哪里不对?
发布于 2014-11-18 08:00:06
解码后的输出取决于您选择的opmode输入类型。
在cont的情况下,输出的延迟等于符号的tblen数,但是也有“术语”和trunc模式。
您可以将初始msg(1,end-tblen)符号与dcd(1,tblen+1:end)进行比较。他们是一样的!
您可以在Matlab帮助下查看vitdec。
https://stackoverflow.com/questions/26709463
复制相似问题