1. A channel decoding method, comprising:
S101: during the first iteration, i.e. i=1, initializing, via a mobile or a wireless communications system, the metric Mpath,0i(s) of the surviving path that enters state s at position 0 to 0, where s?S0, S0 indicates the state space at position 0, and i indicates the number of iterations; setting the metric of the optimal maximum
likelihood tail-biting path (MLTBP) PMLTBPO to 0, that is, letting PMLTBPO=0; performing a Modified Viterbi Algorithm (MVA), and searching for MLTBP in current iteration; for all s?S0, setting the state metric of state s to be equal to Mpath,L1(s), that is, letting Mstate(s)=Mpath,L1(s);
S102: if the net path metric MMLTBPi of PMLTBPi(s?,s?) found in current iteration is greater than the metric MMLTBPO, that is, MMLTBPi>MMLTBPO, updating (PMLTBP, MMLTBPO) with (PMLTBPi(s?,s?), MMLTBP);
S103: for s?SL, where L is the length of information sequence, and SL indicates the state space at position L, comparing the state metric Mstate(s) of state s with the metric MMLTBPO of the MLTBP in the latest update; if Mstate(s)?MMLTBPO, updating Mstate(s)=0; otherwise, letting Mpath,0i+1(s)=Mpath,Li(s); if Mstate(s)>Mpath,Li(s)?Mpath,0i(s), updating Mstate(s)=Mpath,Li(s)?Mpath,0i(s); making statistics on the number of states with state metric greater than MMLTBPO, and saving the number of states in sum(i);
S104: if sum(i)=0, stopping the iteration, and outputting the optimal MLTBP PMLTBPO; if sum(i)=sum(i?1), performing Viterbi decoding once with state ?(s) as fixed initial state and termination state, where
?(s) is the starting state of the maximum likelihood path (MLP) found in the ith iteration, i.e. PMLPi(?(s),s); obtaining a tail-biting path PTBP(?(s),?(s)) with metric MTBP(?(s),?(s)) thereof; if MTBP(?(s),?(s))>MMLTBPO, updating (PMLTBPO, MMLTBPO,) with (PTBP(?(s),?(s)), MTBP(?(s),?(s))), and letting Mstate(?(s))=0 and Mpath,0i+1(?(s))=0;
S105: i++ and letting sum(i)=0, and performing a next iteration, that is, repeating S102 to S104.