精選優質文檔-----傾情為你奉上
精選優質文檔-----傾情為你奉上
專心---專注---專業
專心---專注---專業
精選優質文檔-----傾情為你奉上
專心---專注---專業
#include <stdio.h>
#
for(j=0;j<N;j++)
state[i][j].met=0;
for(l=0;l<4;l++)
{state[l][0].met=trandistance(*viterbiinput,initialstate,l);
state[l][0].value=traninput(initialstate,l);
精選優質文檔-----傾情為你奉上
精選優質文檔-----傾情為你奉上
專心---專注---專業
專心---專注---專業
精選優質文檔-----傾情為你奉上
專心---專注---專業
state[l][0].last=NULL;
}
viterbiinput++; /*擴展第一步幸存路徑*/
for(t=1;t<N;t++)
{for(p=0;p<4;p++)
{state[p][t].met=state[0][t-1].met+trandistance(*viterbiinput,0,p);
state[p][t].value=traninput(0,p);
state[p][t].last=&state[0][t-1];
for(q=0;q<4;q++)
{if(state[q][t-1].met+trandistance(*viterbiinput,q,p)<state[p][t].met)
{state[p][t].met=state[q][t-1].met+trandistance(*viterbiinput,q,p);
state[p][t].value=traninput(q,p);
state[p][t].last=&state[q][t-1];
}
}
}
viterbiinput++;
} /*計算出剩余的幸存路徑*/
r=state[0][N-1].met; /*找出n步后度量值最小的狀態,準備回溯路由*/
g=&state[0][N-1];
for(u=N;u>0;u--) /*向前遞歸的找出最大似然路徑 */
{*(viterbioutput+(u-1))=g->value;
內容來自淘豆網www.canything.com轉載請標明出處.