A channel decoding method for tail-biting convolutional codes and block codes that can be represented by a tail-biting trellis diagram, comprising: S101: during the first iteration, i.e. i =1, initializing an accumulated path metric M path, 0 i s of the surviving path that enters state s at position 0 to 0, where s ∈ S 0, S 0 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, i.e. the optimal MLTBP P MLTBP O to 0, that is, letting M MLTBP O = 0; performing a Circular Viterbi Algorithm and searching for MLTBP in the current iteration; for all s ∈ S 0, setting the state metric of state s to be equal to M path, L 1 s, that is, letting M state s = M path, L 1 s where L is the length of information sequence and M path, k 1 s indicates the accumulated path metric of the surviving path that enters state s at position k in the i th iteration S102: finding the maximum likelihood path, MLP, P i MLP ( β ( s), s) and the MLTBP P i MLTBP ( s', s ') in the i th iteration, where β ( s) is the starting state of the MLTBP terminated at state s, if the net path metric M MLTBP i of P MLTBP i s ′, s ′ with M i MLTBP = M i path, L s ′ − M i path, 0 s ′ found in the current iteration is greater than the metric M MLTBP O, that is, M MLTBP i > M MLTBP O, updating M MLTBP O M MLTBP O with M MLTBP i s ′, s ′, M MLTBP i; S103: for s ∈ S L, where S L indicates the state space at position L, comparing the state metric M state ( s) of state s with the net path metric M MLTBP O of the MLTBP in the latest update; if M state s ≤ M MLTBP O, updating M state ( s)=0 and M i + 1 path, 0(s) = 0; otherwise, letting M path, 0 i + 1 s = M path, L i s; if M state s > M path, L i s − M path, 0 i s, updating M state s = M path, L i s − M path, 0 i s; making statistics on the number of states with state metric greater than M MLTBP O, and saving the number of states in sum ( i); S104: if sum ( i)=0, stopping the iteration, and outputting the optimal MLTBP P MLTBP O; if sum ( i) =sum ( i -1), performing Viterbi decoding once with state β ( s) as fixed initial state and termination state; obtaining a tail-biting path P TBP ( β ( s), β ( s)) with the net path metric M TBP ( β ( s), β ( s)) thereof; if M TBP ( β ( s),β ( s)) > M MLTBP O, updating P MLTBP O M MLTBP O with ( P TBP ( β ( s),β ( s)), M TBP ( β ( s),β ( s))), and letting M state ( β ( s)) = 0 and M path, 0 i + 1 β s = 0. S105: i ++ and letting sum ( i)=0, and performing a next iteration, that is, repeating S102 to S104. S101: during the first iteration, i.e. i =1, initializing an accumulated path metric M path, 0 i s of the surviving path that enters state s at position 0 to 0, where s ∈ S 0, S 0 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, i.e. the optimal MLTBP P MLTBP O to 0, that is, letting M MLTBP O = 0; performing a Circular Viterbi Algorithm and searching for MLTBP in the current iteration; for all s ∈ S 0, setting the state metric of state s to be equal to M path, L 1 s, that is, letting M state s = M path, L 1 s where L is the length of information sequence and M path, k 1 s indicates the accumulated path metric of the surviving path that enters state s at position k in the i th iteration S102: finding the maximum likelihood path, MLP, P i MLP ( β ( s), s) and the MLTBP P i MLTBP ( s', s ') in the i th iteration, where β ( s) is the starting state of the MLTBP terminated at state s, if the net path metric M MLTBP i of P MLTBP i s ′, s ′ with M i MLTBP = M i path, L s ′ − M i path, 0 s ′ found in the current iteration is greater than the metric M MLTBP O, that is, M MLTBP i > M MLTBP O, updating M MLTBP O M MLTBP O with M MLTBP i s ′, s ′, M MLTBP i; S103: for s ∈ S L, where S L indicates the state space at position L, comparing the state metric M state ( s) of state s with the net path metric M MLTBP O of the MLTBP in the latest update; if M state s ≤ M MLTBP O, updating M state ( s)=0 and M i + 1 path, 0(s) = 0; otherwise, letting M path, 0 i + 1 s = M path, L i s; if M state s > M path, L i s − M path, 0 i s, updating M state s = M path, L i s − M path, 0 i s; making statistics on the number of states with state metric greater than M MLTBP O, and saving the number of states in sum ( i); S104: if sum ( i)=0, stopping the iteration, and outputting the optimal MLTBP P MLTBP O; if sum ( i) =sum ( i -1), performing Viterbi decoding once with state β ( s) as fixed initial state and termination state; obtaining a tail-biting path P TBP ( β ( s), β ( s)) with the net path metric M TBP ( β ( s), β ( s)) thereof; if M TBP ( β ( s),β ( s)) > M MLTBP O, updating P MLTBP O M MLTBP O with ( P TBP ( β ( s),β ( s)), M TBP ( β ( s),β ( s))), and letting M state ( β ( s)) = 0 and M path, 0 i + 1 β s = 0. S105: i ++ and letting sum ( i)=0, and performing a next iteration, that is, repeating S102 to S104.