首页 > 解决方案 > Matlab的viterbi算法在vitdec()函数中的实现

问题描述

我正在研究卷积编码和解码。在 MATLAB 中,我使用 vitdec() 函数进行解码。结果很好,误码率符合预期,但我想更深入地研究这个函数,我做得很好,直到我点击了 vitdec() 调用的 vit() 函数(vitdec(函数 Matlab)中的代码行 402) )。到目前为止,我无法在 MathWorks 或其他任何地方找到有关此功能的任何帮助。

我正在粘贴下面使用 vit() 函数的 vitdec() MATLAB 函数的那部分。

% Call to vit.c
 code   = double(code);      % for proper numerical operation
 [varargout{1}, varargout{2}, varargout{3}, varargout{4}] ...
   = vit(code, k, n, trellis.numStates, outputs,    trellis.nextStates,...
   tblen, opmodeNum, dectypeNum, nsdec, puncErasMode,    puncVectorRow,...
   erasVector, initTableSet, initmetric, initstate, initinput);
   % Set output data type to logical if appropriate
   if outLog, varargout{1} = logical(varargout{1}); 
end
else

 [varargout{1}, varargout{2}, varargout{3}, varargout{4}] ...
   = vitdeccore(code, k, n, trellis.numStates, outputs,    trellis.nextStates,...
   tblen, opmodeNum, dectypeNum, nsdec, puncErasMode,    puncVectorRow,...
   erasVector, initTableSet, initmetric, initstate, initinput);

我知道维特比算法是如何工作的。我已经用 C 语言实现了它,它的结果与 MATLAB 的结果匹配。我只想看看 videc() 是如何逐步计算分支和路径指标的。任何链接/书籍参考表示赞赏。

标签: matlabdecodingdecoderviterbiforwarderrorcorrection

解决方案


推荐阅读