Mercurial > hg > nnls-chroma
diff viterbi.cpp @ 94:19f3b33a19fb matthiasm-plugin
corrected viterbi frame initialisation
author | matthiasm |
---|---|
date | Thu, 02 Dec 2010 23:39:57 +0900 |
parents | b6cddb109482 |
children | 99b87ce4bb70 |
line wrap: on
line diff
--- a/viterbi.cpp Thu Dec 02 23:11:27 2010 +0900 +++ b/viterbi.cpp Thu Dec 02 23:39:57 2010 +0900 @@ -12,11 +12,6 @@ if (trans[0].size() != nState || trans.size() != nState || obs[0].size() != nState) { cerr << "ERROR: matrix sizes inconsistent." << endl; } - - for (int iState = 0; iState < nState; ++iState) delta[iState] = init[iState]; - for (int iFrame = 1; iFrame < nFrame; ++iFrame) { - for (int iState = 0; iState < nState; ++iState) delta[iFrame*nState + iState]; - } // vector<vector<double> > delta; // "matrix" of conditional probabilities vector<vector<int> > psi; // "matrix" of remembered indices of the best transitions @@ -28,7 +23,7 @@ /* initialise first frame */ // delta.push_back(init); for (int iState = 0; iState < nState; ++iState) { - delta[iState] *= obs[0][iState]; + delta[iState] = init[iState] * obs[0][iState]; deltasum += delta[iState]; } for (int iState = 0; iState < nState; ++iState) delta[iState] /= deltasum; // normalise (scale)