uncorrelated h's Gauss EM and ML seed = 214003 FIR_length = 3 N = 10 avg_h = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 var_h = 0.1 Rh = 0.1 0 0 0 0.1 0 0 0 0.1 SNR = 10 trials = 10000 iter_avg_g = 2 1 1.813 1.9212 1.9799 2.0276 2.0822 2.1446 2.2191 2.2956 2.3865 2.4915 iter_max_g = 2 1 2 3 4 4 5 5 6 6 6 6 EM_local_min = 98.94 100 80.57 70.32 65.04 61.19 60.52 58.19 56.11 53.94 50.54 46.65 EM_equal_ML = 96.45 100 78.03 62.32 52.4 44.36 39.28 33.37 29.58 25.3 22.22 19.38 b_equal_ML = 9.9116 10 9.7403 9.4047 9.0795 8.7092 8.3489 7.944 7.5457 7.0846 6.5244 5.8961 elapsed_time = 15605 x4_g_mc.m: for b_ML_index = 1:N+2 if( b_ML_index == 1) % init using b=0 b_ML_delta = zeros(N,1); elseif( b_ML_index == 2) % init using b_ML b_ML_delta = b_ML; else % flip some bits in b_ML % % 1..N: % b_ML_delta(b_ML_index-2) = - b_ML_delta(b_ML_index-2); % % N...1: % b_ML_delta(N-b_ML_index+3) = - b_ML_delta(N-b_ML_index+3); % % random: rperm = randperm(N); rperm = rperm(1:b_ML_index-2); b_ML_delta = b_ML; b_ML_delta(rperm) = - b_ML_delta(rperm); end b = b_ML_delta; b_temp = b; iter = 0; while(1) iter = iter + 1; B = get_A_C( b); vit_C; b = get_ex; if( all(b == b_temp)) break; end b_temp = b; end ...