initvit1.m

来自「Mathematical Methods by Moor n Stiling.」· M 代码 · 共 45 行

M
45
字号
function initvit1(intrellis, inbranchweight, inpathlen, innormfunc)
% 
% Initialize the data structures and pointers for the Viterbi algorithm
% 
% function initvit1(intrellis, inbranchweight, inpathlen, innormfunc)
%
% intrellis: a description of the successor nodes 
%    e.g. [1 3; 3 4; 1 2; 3 4]
% inbranchweight: weights of branches used for comparison, saved as
%    cells in branchweight{state_number, branch_number}
%    branchweight may be a vector
%    e.g.  branchweight{1,1} = 0; branchweight{1,2} = 6;
%          branchweight{2,1} = 3; branchweight{2,2} = 3;
%          branchweight{3,1} = 6; branchweight{3,2} = 0;
%          branchweight{4,1} = 3; branchweight{4,2} = 3;
% inpathlen: length of window over which to compute
% normfun: the norm function used to compute the branch cost

% Copyright 1999 by Todd K. Moon

clear savepath endp trellis pathlen numstate branchweight
clear pathcost priorstate dooutput normfunc

global savepath endp trellis pathlen numstate branchweight
global pathcost priorstate dooutput normfunc

trellis = intrellis;
[temp,numstate] = size(intrellis);
pathlen = inpathlen;
normfunc = innormfunc;
branchweight = inbranchweight;
endp = 0;
dooutput = 0;
savepath = zeros(numstate,inpathlen);
pathcost = (realmax/2)*ones(numstate,1); % set initially to huge number
pathcost(1) = 0;
% set up the prior state information
numpriorstate = zeros(numstate,1);
priorstate = [];
for state=1:numstate
  for nextstate = trellis{state}
    numpriorstate(nextstate) = numpriorstate(nextstate)+1;
    priorstate(nextstate,numpriorstate(nextstate)) = state;
  end
end

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?