コード例 #1
0
    Y[0,indice]=c[0]*np.cos(w*indice)-c[1]*np.sin(w*indice)+B[0,indice]
    Y[1,indice]=c[2]*np.cos(w*indice)-c[3]*np.sin(w*indice)+B[1,indice]
    Y[2,indice]=c[4]*np.cos(w*indice)-c[5]*np.sin(w*indice)+B[2,indice]

#calcul du critère
index=0
critere=[]
temps=[]

while index+window < N:
    X=Y[:,index:index+window]
    w0_est,trash,trash=estimate_w_NR_unbalanced(X,w_init,3)
    T=compute_GLRT_statistic(X,w0_est)
    critere=np.append(critere,T)
    temps=np.append(temps,index+(window/2))
    index=index+window

##export csv file
if csv_on==1:

    output=np.array([temps,critere])
    np.savetxt(filename, output.T,header="n,critere", delimiter=",")
    output_signal=np.array([np.arange(0,N),np.arange(0,N)/Fe,Y[0,:],Y[1,:],Y[2,:]])
    np.savetxt(filename_signal, output_signal.T,header="n,t,Phase 1,Phase 2,Phase 3", delimiter=",")

#show figure
if plot_on==1:
    show_signals(Y,Fe=1)
    plt.figure(2)
    plt.plot(temps,critere)
    plt.show()
コード例 #2
0
if type == "unbalanced":
    sym = np.matrix(np.array([-0.5, 0.2, 1, 1, -0.4, 0.1])).T
    filename_signal = "../csv/sym_signal_unbalanced.csv"
    filename = "../csv/sym_est_unbalanced.csv"


# Signal generation
num = sym.T * sym
sigmaB = np.sqrt(np.trace(num / 2) / (np.power(10, SNR / 10.0)))
Y = generate_Y_from_sym(sym, w, N, sigmaB)

z_approx = compute_naive_sym_component(Y, w).A1
z_est = estimate_sym_unbalanced(Y, w).A1


# export csv file
if csv_on == 1:

    output_signal = np.bmat([sym.reshape((3, 2)), z_approx.reshape((3, 2)), z_est.reshape((3, 2))])
    np.savetxt(filename, output_signal, header="symx,symy,z_approxx,z_approxy,px,py", delimiter=",")

    print(output_signal)
    output_signal = np.array([np.arange(0, N), np.arange(0, N) / Fe, Y[0, :].A1, Y[1, :].A1, Y[2, :].A1])
    np.savetxt(filename_signal, output_signal.T, header="n,t,Phase 1,Phase 2,Phase 3", delimiter=",")


if plot_on == 1:
    show_signals(Y)
    plt.show()
    pd_blind[indice]=pd_blind[indice]/Ntest


    print("Probability of Detection (theo): %f" % (pd_theo[indice]))
    print("Probability of Detection (clairvoyant): %f" % (pd_clair[indice]))
    print("Probability of Detection (blind): %f" % (pd_blind[indice]))


#export csv file
if csv_on==1:

    header_string="%s,theo,clairvoyant,blind" % parameter
    comments_string="Simulation Parameter: pfa=%f, N=%d, SNR=%d, sym=%s, Fe=%d, f0=%f, Ntest=%d\n" % (pfa,N,SNR,sym.tolist(),Fe,f0,Ntest)
    output=np.array([x_vect,pd_theo,pd_clair,pd_blind])
    #np.savetxt(filename, output.T,header=header_string, delimiter=",",fmt=['%d','%f','%f','%f'],comments=comments_string)

    output_signal=np.array([np.arange(0,N),np.arange(0,N)/Fe,Y[0,:].A1,Y[1,:].A1,Y[2,:].A1])
    np.savetxt(filename_signal, output_signal.T,header="n,t,Phase 1,Phase 2,Phase 3", delimiter=",",comments=comments_string)


#show figure
if plot_on==1:
    show_signals(Y,1)

    plt.figure(2)
    plt.plot(x_vect,pd_theo,label='PD (theo)')
    plt.plot(x_vect,pd_clair,label='PD (clairvoyant)')
    plt.plot(x_vect,pd_blind,label='PD (blind)')
    plt.legend(loc='lower right')
    plt.show()