vitflush.m

来自「The Viterbi algorithm」· M 代码 · 共 36 行

M
36
字号
function [plist] = vitflush(termnode)% % Flush out the rest of the viterbi paths%% function [plist] = vitflush(termnode)%% termnode = 0 or list of allowable terminal nodes%    If termnode==0, then choose path with lowest cost%    Otherwise, choose path with best cost among termnode%% plist = list of paths from trellis% Copyright 1999 by Todd K. Moonglobal savepath endp trellis pathlen numstate branchweightglobal pathcost priorstate dooutput% Find path with smallest metricif(termnode)  [pcost,minstate] = min(pathcost(termnode));  minstate = termnode(minstate);else  [pcost,minstate] = min(pathcost);endplist = minstate;pathlist = mod(endp-2:-1:endp-pathlen+1,pathlen)+1;% Now work backward from end of listfor branch = pathlist  minstate = savepath(minstate,branch);  if(minstate)    plist = [plist minstate];  else    break;  endendplist = fliplr(plist);                  % reverse the list

⌨️ 快捷键说明

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