group_num = 100 right_num = len(right) lx_MSE = zeros((group_num, right_num)) CS_MSE = zeros((group_num, right_num)) eva_MSE = zeros((group_num, right_num)) lx_BER = zeros((group_num, right_num)) CS_BER = zeros((group_num, right_num)) eva_BER = zeros((group_num, right_num)) lx_SC = zeros((group_num, right_num)) CS_SC = zeros((group_num, right_num)) for i in range(group_num): for j in range(right_num): print 'Running... Current group: ', i, j ''' 根据RSSI/Phase产生随机导频图样''' pos_A, pos_B, pos_E = agreement(P) ''' 发送端 ''' bits_A, diagram_A, x = sender(pos_A) ''' 信道传输 ''' h_ab, H_ab, y_b = transmission(x) ''' 理想条件下的信道估计''' # 合法用户确切知道发送端导频 h_lx, H_lx, bits_lx, diagram_lx = receiver(y_b, pos_A, 'CS', 'from_pos') ''' 接收端 信道估计''' h_cs, H_cs, bits_cs, diagram_cs = receiver(y_b, pos_B, 'CS', 'from_pos') ''' 窃听信道 ''' h_ae, H_ae, y_e = transmission(x) ''' 非法用户 ''' # 非法用户随机猜测导频位置。与发送端的导频图样pos_A相比,非法用户猜对了j个,j取值[0,P)
sys.path.append('../../src') from util.function import how_many_equal from KG import agreement os.system('cls') plt.close('all') P = 36 group = 100 iteration = [0,1,2,3,4] probability = [] for i in range(len(iteration)): allright = 0.0 for j in range(group): print 'Running... Current group: ',i,j posA,posB,posE = agreement(P,{'iteration': iteration[i]}) if how_many_equal(posA,posB) == P: allright += 1 probability.append(allright/group) ''' 画图 ''' plt.figure(figsize=(8,5)) plt.plot(iteration,probability,'ko-') plt.xlabel('Iteration') plt.ylabel('Probability') plt.title('Probability of all pilots right') plt.show() print 'Program Finished'
P = 36 m = range(2, 9) ''' 多组取平均 ''' group_num = 100 m_num = len(m) bob_MSE = zeros((group_num, m_num)) eva_MSE = zeros((group_num, m_num)) bob_BER = zeros((group_num, m_num)) eva_BER = zeros((group_num, m_num)) SC = zeros((group_num, m_num)) for i in range(group_num): for j in range(m_num): print 'Running... Current group: ', i, j pos_A, pos_B, pos_E = agreement(P, {'m': m[j]}) bits_A, diagram_A, x = sender(pos_A) h_ab, H_ab, y_b = transmission(x) h_cs, H_cs, bits_cs, diagram_cs = receiver(y_b, pos_B) h_ae, H_ae, y_e = transmission(x) h_eva, H_eva, bits_eva, diagram = receiver(y_e, pos_E) bob_MSE[i, j] = MSE(H_ab, H_cs) eva_MSE[i, j] = MSE(H_ae, H_eva) bob_BER[i, j] = BMR(bits_A, bits_cs) eva_BER[i, j] = BMR(bits_A, bits_eva) SC[i, j] = SecCap(bob_BER[i, j], eva_BER[i, j]) bob_MSE = mean(bob_MSE, 0) eva_MSE = mean(eva_MSE, 0) bob_BER = mean(bob_BER, 0) eva_BER = mean(eva_BER, 0)
P = 36 coef = [i / 10.0 for i in range(10)] ''' 多组取平均 ''' group_num = 100 coef_num = len(coef) bob_MSE = zeros((group_num, coef_num)) eva_MSE = zeros((group_num, coef_num)) bob_BER = zeros((group_num, coef_num)) eva_BER = zeros((group_num, coef_num)) SC = zeros((group_num, coef_num)) for i in range(group_num): for j in range(coef_num): print 'Running... Current group: ', i, j pos_A, pos_B, pos_E = agreement(P, {'coef': coef[j]}) bits_A, diagram_A, x = sender(pos_A) h_ab, H_ab, y_b = transmission(x) h_cs, H_cs, bits_cs, diagram_cs = receiver(y_b, pos_B) h_ae, H_ae, y_e = transmission(x) h_eva, H_eva, bits_eva, diagram = receiver(y_e, pos_E) bob_MSE[i, j] = MSE(H_ab, H_cs) eva_MSE[i, j] = MSE(H_ae, H_eva) bob_BER[i, j] = BMR(bits_A, bits_cs) eva_BER[i, j] = BMR(bits_A, bits_eva) SC[i, j] = SecCap(bob_BER[i, j], eva_BER[i, j]) bob_MSE = mean(bob_MSE, 0) eva_MSE = mean(eva_MSE, 0) bob_BER = mean(bob_BER, 0) eva_BER = mean(eva_BER, 0)
''' 多组取平均 ''' group_num = 100 order_num = len(order) qtype_num = len(qtype) bob_MSE = zeros((group_num,order_num,qtype_num)) eva_MSE = zeros((group_num,order_num,qtype_num)) bob_BER = zeros((group_num,order_num,qtype_num)) eva_BER = zeros((group_num,order_num,qtype_num)) SC = zeros((group_num,order_num,qtype_num)) for i in range(group_num): for j in range(order_num): for k in range(qtype_num): print 'Running... Current group: ',i,j,k pos_A,pos_B,pos_E = agreement(P,{'order':order[j],'qtype':qtype[k]}) bits_A,diagram_A,x = sender(pos_A) h_ab,H_ab,y_b = transmission(x) h_cs,H_cs,bits_cs,diagram_cs = receiver(y_b,pos_B) h_ae,H_ae,y_e = transmission(x) h_eva,H_eva,bits_eva,diagram = receiver(y_e,pos_E) bob_MSE[i,j,k] = MSE(H_ab,H_cs) eva_MSE[i,j,k] = MSE(H_ae,H_eva) bob_BER[i,j,k] = BMR(bits_A,bits_cs) eva_BER[i,j,k] = BMR(bits_A,bits_eva) SC[i,j,k] = SecCap(bob_BER[i,j,k],eva_BER[i,j,k]) bob_MSE = mean(bob_MSE,0) eva_MSE = mean(eva_MSE,0) bob_BER = mean(bob_BER,0) eva_BER = mean(eva_BER,0)
sys.path.append('../') from util.function import how_many_equal from KG import agreement os.system('cls') plt.close('all') P = 36 group = 100 iteration = [0,1,2,3,4] probability = [] for i in range(len(iteration)): allright = 0.0 for j in range(group): print 'Running... Current group: ',i,j posA,posB,posE = agreement(P,'cross',iteration[i]) if how_many_equal(posA,posB) == P: allright += 1 probability.append(allright/group) ''' 画图 ''' plt.figure(figsize=(8,5)) plt.plot(iteration,probability,'ko-') plt.xlabel('Iteration') plt.ylabel('Probability') plt.title('Probability of all pilots right') plt.show() print 'Program Finished'
P = 36 block_size = range(5, 41, 5) ''' 多组取平均 ''' group_num = 100 bsize_num = len(block_size) bob_MSE = zeros((group_num, bsize_num)) eva_MSE = zeros((group_num, bsize_num)) bob_BER = zeros((group_num, bsize_num)) eva_BER = zeros((group_num, bsize_num)) SC = zeros((group_num, bsize_num)) for i in range(group_num): for j in range(bsize_num): print 'Running... Current group: ', i, j pos_A, pos_B, pos_E = agreement(P, {'block_size': block_size[j]}) bits_A, diagram_A, x = sender(pos_A) h_ab, H_ab, y_b = transmission(x) h_cs, H_cs, bits_cs, diagram_cs = receiver(y_b, pos_B) h_ae, H_ae, y_e = transmission(x) h_eva, H_eva, bits_eva, diagram = receiver(y_e, pos_E) bob_MSE[i, j] = MSE(H_ab, H_cs) eva_MSE[i, j] = MSE(H_ae, H_eva) bob_BER[i, j] = BMR(bits_A, bits_cs) eva_BER[i, j] = BMR(bits_A, bits_eva) SC[i, j] = SecCap(bob_BER[i, j], eva_BER[i, j]) bob_MSE = mean(bob_MSE, 0) eva_MSE = mean(eva_MSE, 0) bob_BER = mean(bob_BER, 0) eva_BER = mean(eva_BER, 0)
P = 36 iteration = [0, 1, 2, 3, 4] ''' 多组取平均 ''' group_num = 100 itera_num = len(iteration) bob_MSE = zeros((group_num, itera_num)) eva_MSE = zeros((group_num, itera_num)) bob_BER = zeros((group_num, itera_num)) eva_BER = zeros((group_num, itera_num)) SC = zeros((group_num, itera_num)) for i in range(group_num): for j in range(itera_num): print 'Running... Current group: ', i, j pos_A, pos_B, pos_E = agreement(P, {'iteration': iteration[j]}) bits_A, diagram_A, x = sender(pos_A) h_ab, H_ab, y_b = transmission(x) h_cs, H_cs, bits_cs, diagram_cs = receiver(y_b, pos_B) h_ae, H_ae, y_e = transmission(x) h_eva, H_eva, bits_eva, diagram = receiver(y_e, pos_E) bob_MSE[i, j] = MSE(H_ab, H_cs) eva_MSE[i, j] = MSE(H_ae, H_eva) bob_BER[i, j] = BMR(bits_A, bits_cs) eva_BER[i, j] = BMR(bits_A, bits_eva) SC[i, j] = SecCap(bob_BER[i, j], eva_BER[i, j]) bob_MSE = mean(bob_MSE, 0) eva_MSE = mean(eva_MSE, 0) bob_BER = mean(bob_BER, 0) eva_BER = mean(eva_BER, 0)