Matlab's viterbi algorithm implementation in vitdec() function

986 Views Asked by At

I'm working on convolutional coding and decoding. In MATLAB, I'm using vitdec() function for decoding. Results are fine and bit error rate is as expected but I want to dig deeper into this function and I was doing it well until I hit vit() function which is being called by vitdec() (code line 402 in vitdec(function Matlab)). I'm unable to find any help regarding this function on MathWorks or anywhere else so far.

I'm pasting that part of vitdec() MATLAB function which uses vit() function below.

% 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);

I know how viterbi algorithm works. I have implemented it in C-language whose results match with those of MATLAB's. I just want to see how is videc() calculating branch and path metrics, step-by-step. Any link/book reference is appreciated.

0

There are 0 best solutions below