本人编写。
package Veteribi;
import java.util.ArrayList;
public class Veterbi {
public static void decoder(StringBuffer received) {
// 记录四种状态的路径
StringBuffer route1 = new StringBuffer("0000"); // x00
StringBuffer route2 = new StringBuffer("0011"); // x10
StringBuffer route3 = new StringBuffer("1110"); // x01
StringBuffer route4 = new StringBuffer("1101"); // x11
StringBuffer realway1 = new StringBuffer("00");
StringBuffer realway2 = new StringBuffer("01");
StringBuffer realway3 = new StringBuffer("10");
StringBuffer realway4 = new StringBuffer("11");
System.out.println("接收到的数据长度为: " + received.length());
System.out.println("接收到的数据为 : " + received);
int [] distance = {
0,0,0,0,0};; //记录4种状态的最小码距
int length = received.length();
distance[0] = 0;
distance[1] += (route1.charAt(0)^received.charAt(0) ) + (route1.charAt(1)^received.charAt(1))
+ (route1.charAt(2)^received.charAt(2)) +(route1.charAt(3)^received.charAt(3)) ;
distance[2] += (route2.charAt(0)^received.charAt(0) ) + (route2.charAt(1)^received.charAt(1))
+ (route2.charAt(2)^received.charAt(2)) +(route2.charAt(3)^received.