def SSL_TDOA_NOL(tdoa1, tdoa2, micA, micB, micC, micD, estimationLIN): std1 = tdoa1*343.2 std2 = tdoa2*343.2 curveA = get_tCurve(micA, micB, std1) curveB = get_tCurve(micC, micD, std2) estimationNOL = optimizeIntersectionPoint_nonLinear_numeric(estimationLIN, curveA, curveB) return estimationNOL
def SSL_TDOA_NL(micPosList, tdoa1, tdoa2, c_speed, LIN): # Get Microphone Points micAP = micPosList[0] micBP = micPosList[1] micCP = micPosList[2] micDP = micPosList[3] # Calculate way_tdoa1 and way_tdoa2 ds1 = tdoa1 * c_speed ds2 = tdoa2 * c_speed # Define Curves curveA = get_tCurve(micAP, micBP, ds1) curveB = get_tCurve(micCP, micDP, ds2) # Find Intersection Point of Nonlinear Curves return optimizeIntersectionPoint_nonLinear_numeric(LIN, curveA, curveB)
tdoa = basic_tdoa.BasicTDOA(loaded, 0, 0.0, arr) tdoaMAT = tdoa.tdoa_gcc_phat(0.0)[1][0] delta_n1 = tdoaMAT[1][0] delta_n2 = tdoaMAT[3][2] delta_t1 = delta_n1*meta["sampling_spacing"] delta_t2 = delta_n2*meta["sampling_spacing"] delta_s1 = delta_t1*343.2 delta_s2 = delta_t2*343.2 # TDOA LINEAR VERFAHREN steep1 = KarstenDOA_calculateSteep_linear_simple(distance(micA_pos, micB_pos), delta_s1) steep2 = KarstenDOA_calculateSteep_linear_simple(distance(micC_pos, micD_pos), delta_s2) solutions, m1_a, m1_b, m2_a, m2_b, b1_a, b1_b, b2_a, b2_b = getMicrophonePair_DOA_Intersection_linear(micA_pos, micB_pos, micC_pos, micD_pos, steep1, steep2) estimationLIN = plausibleFilter_TDOA(solutions) curveA = get_tCurve(micA_pos, micB_pos, delta_s1) curveB = get_tCurve(micC_pos, micD_pos, delta_s2) estimationNOL = optimizeIntersectionPoint_nonLinear_numeric(estimationLIN, curveA, curveB) # Kurven zur Darstellung X_NOL_CURVE1, Y_NOL_CURVE1 = KarstenDOA_calculateCurve_nonlinear(micA_pos, micB_pos, delta_s1, res=0.01, rang=10) X_LIN_CURVE1, Y_LIN_CURVE1 = KarstenDOA_calculateCurve_linear(micA_pos, micB_pos, delta_s1, res=0.01, rang=10) X_NOL_CURVE2, Y_NOL_CURVE2 = KarstenDOA_calculateCurve_nonlinear(micC_pos, micD_pos, delta_s2, res=0.01, rang=10) X_LIN_CURVE2, Y_LIN_CURVE2 = KarstenDOA_calculateCurve_linear(micC_pos, micD_pos, delta_s2, res=0.01, rang=10) # Plot Data import matplotlib.pyplot as plt plt.xlim(-10,10) plt.ylim(-1,19) plt.grid() plt.title("Geometry")
def SSL_TDOA_NOL(s_tdoaMAT, micList, indA, indB, indC, indD, estimationLIN): curveA = get_tCurve(micList[indA], micList[indB], s_tdoaMAT[indB][indA]) curveB = get_tCurve(micList[indC], micList[indD], s_tdoaMAT[indD][indC]) estimationNOL = optimizeIntersectionPoint_nonLinear_numeric( estimationLIN, curveA, curveB) return estimationNOL