Exemple #1
0
            K_true = 0
            for k in range(0, len(micList)):
                K_true += signalsPower[k] * distance(
                    micList[k], source_pos) * distance(micList[k], source_pos)
            K_true /= len(micList)

            # Calculate K estimation
            K_estim_exakt = list()
            K_estim_noise = list()
            for i in range(0, len(micList)):
                for j in range(0, len(micList)):
                    if (i != j):
                        a = getRealTDOA(source_pos, micList[i], micList[j])
                        b = getFakeTDOA(a, 96000)
                        K1_exakt, K2_exakt = estimateK_Pair(
                            signalsPower[i], signalsPower[j], micList[i],
                            micList[j], a * 343.2)
                        K1_noised, K2_noised = estimateK_Pair(
                            signalsPower[i], signalsPower[j], micList[i],
                            micList[j], b * 343.2)
                        K_estim_exakt.append(K1_exakt)
                        K_estim_exakt.append(K2_exakt)
                        K_estim_noise.append(K1_noised)
                        K_estim_noise.append(K2_noised)

            # Remove NAN
            K_estim_exakt = [x for x in K_estim_exakt if str(x) != 'nan']
            K_estim_noise = [x for x in K_estim_noise if str(x) != 'nan']
            K_estim_exakt.sort()
            K_estim_noise.sort()
            K_estim = K_estim_noise[int(len(K_estim_noise) * xval)]
delta_t2 = delta_n2*meta["sampling_spacing"]
delta_t3 = delta_n3*meta["sampling_spacing"]
delta_t4 = delta_n4*meta["sampling_spacing"]
delta_t5 = delta_n5*meta["sampling_spacing"]
delta_t6 = delta_n6*meta["sampling_spacing"]
delta_s1 = delta_t1*343.2
delta_s2 = delta_t2*343.2
delta_s3 = delta_t3*343.2
delta_s4 = delta_t4*343.2
delta_s5 = delta_t5*343.2
delta_s6 = delta_t6*343.2

# AMP Verfahren
K_list = list()
R_listA = list()
K1, K2 = estimateK_Pair(powerA, powerB, micA_pos, micB_pos, delta_s1)
K_list.append(K1)
K_list.append(K2)
R_listA.append(K1/np.sqrt(powerA))
R_listA.append(K2/np.sqrt(powerA))
K1, K2 = estimateK_Pair(powerA, powerC, micA_pos, micC_pos, delta_s2)
K_list.append(K1)
K_list.append(K2)
R_listA.append(K1/np.sqrt(powerA))
R_listA.append(K2/np.sqrt(powerA))
K1, K2 = estimateK_Pair(powerA, powerD, micA_pos, micD_pos, delta_s3)
K_list.append(K1)
K_list.append(K2)
R_listA.append(K1/np.sqrt(powerA))
R_listA.append(K2/np.sqrt(powerA))
K1, K2 = estimateK_Pair(powerB, powerC, micB_pos, micC_pos, delta_s4)
tdoa = basic_tdoa.BasicTDOA(loaded, 0, 0.0, arr)
TDOA_mat = tdoa.tdoa_gcc_phat(0.0)[1][0]

K_list = list()

for i in range(0,7):
    for j in range(0,7):
        if(i!=j):
            delta_n1 = TDOA_mat[j][i]   # MIC A and MIC B
            delta_t1 = delta_n1*meta["sampling_spacing"]
            delta_s1 = delta_t1*343.2
            powerA = getSignalPower_UsingTime_AverageFree(np.asarray(signals[i]))
            powerB = getSignalPower_UsingTime_AverageFree(np.asarray(signals[j]))
            micA_pos = convertPoint(config["microphone_positions"][i])
            micB_pos = convertPoint(config["microphone_positions"][j])
            K1, K2 = estimateK_Pair(powerA, powerB, micA_pos, micB_pos, delta_s1)
            K_list.append(K1)
            K_list.append(K2)
            
# AMP Verfahren
FILTER_LOW = int(len(K_list)*0.4)
FILTER_HIGH = len(K_list)-1
K_list = [x for x in K_list if str(x) != 'nan']
K_list.sort()
K_list_filt = [x for x in K_list if x > 0.05] #K_list[FILTER_LOW-1:FILTER_HIGH]
estim_K = np.median(K_list_filt)

import matplotlib.pyplot as plt
#plt.plot(K_list)
#
Exemple #4
0
        z = np.asarray(s)
        power = getSignalPower_UsingTime_AverageFree(np.asarray(s))
        powers.append(power)
    #    print("microphone ",power,"W")
    #print("Source Power ",getSignalPower_UsingTime_AverageFree(source_signal),"W")

    # Calculate TDOA
    arr = array_parameters.ArrayParameters(config["microphone_positions"])
    tdoa = basic_tdoa.BasicTDOA(loaded, 0, 0.0, arr)

    # Do Amplitude Verfahren
    powerA = powers[0]
    powerB = powers[1]
    micA_pos = convertPoint(config["microphone_positions"][0])
    micB_pos = convertPoint(config["microphone_positions"][1])
    dTDOA = tdoa.tdoa_gcc_phat(0.0)[1][0][1][0]
    dSDOA = dTDOA * meta["sampling_spacing"] * 343.2

    K1, K2 = estimateK_Pair(powerA, powerB, micA_pos, micB_pos, dSDOA)
    rA_1 = K1 / np.sqrt(powerA)
    rA_2 = K2 / np.sqrt(powerA)
    rB_1 = K1 / np.sqrt(powerB)
    rB_2 = K2 / np.sqrt(powerB)

    solutions = getIntersectionPointsCircle(micA_pos, rA_2, micB_pos, rB_2)
    estimPos = getPlausibleOne(solutions[0], solutions[1])
    sourcePos = convertPoint(config["source_position"])

    print(i, config["source_position"], estimPos, " ", sourcePos, " > ",
          distance(estimPos, sourcePos))