Exemplo n.º 1
0
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'
Exemplo n.º 3
0
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)
Exemplo n.º 4
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)
Exemplo n.º 5
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)
Exemplo n.º 6
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'
Exemplo n.º 7
0
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)
Exemplo n.º 8
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)