ANGLE_stdErrLIN = list() DISTA_stdErrLIN = list() ANGLE_stdErrNOL = list() DISTA_stdErrNOL = list() for n in range(0, N): # Adjust Configurations micA = getPoint(-mic_dist * 1 / 2, +mic_dist * 1 / 2) micB = getPoint(-mic_dist * 1 / 2, -mic_dist * 1 / 2) micC = getPoint(+mic_dist * 1 / 2, 0) micD = getPoint(+mic_dist * 3 / 2, 0) noise_microphone = 0.003 noise_environment = 0.04 noise_source = 0.01 source_pos = getPoint(dis * np.sin(angle_radians(ang)), dis * np.cos(angle_radians(ang))) config = updateConfig(config, micA, micB, micC, micD, noise_microphone, noise_environment, noise_source, source_pos) ## Starte Simulation loaded = simulate(config, config["source_position"], signal_function) signals = loaded.get_measurements() meta = loaded.get_meta_data() signalA = signals[0] signalB = signals[1] signalC = signals[2] signalD = signals[3] signalAF = butterWorthFilter(signalA, meta["sampling_rate"], 2000)
) print( "arr ; signal ; dist ; angle ; pNoise ; pSigna ; snr_DB ; K_True ; K_Estim ; Dist_Estim", file=f) xval = 0.8 arr = "A4" for signal in ["SX"]: #signals: for dist in distances: for angle in anglesA4: print(arr, signal, angle, dist) # Determine Sound Source Pos source_pos = getPoint( float(dist) * np.sin(angle_radians(float(angle.replace(",", ".")))), float(dist) * np.cos(angle_radians(float(angle.replace(",", "."))))) # Load Data data, meta_data = load_measurement(arr, signal, angle, dist) # Determine SNR index = keyList.index(arr + "," + signal + "," + dist + "," + angle) time_windowNoise = { "from": limitList[index][0], "to": limitList[index][1] } time_windowSignal = { "from": limitList[index][2],
error1 = list() error2 = list() for d in data: error1.append(float(d[7])) error2.append(float(d[11])) errmax1 = np.max(error1) errmax2 = np.max(error2) plt.subplot(1, 2, 1) plt.grid() for d in data: dist = float(d[0]) angl = float(d[1]) distError = float(d[7]) relError = distError / dist point = getPoint(dist * np.sin(angle_radians(angl)), dist * np.cos(angle_radians(angl))) plt.scatter(point[0], point[1], s=1000 * distError / errmax1, c="Black") #plt.colorbar() plt.subplot(1, 2, 2) plt.grid() for d in data: dist = float(d[0]) angl = float(d[1]) anglError = float(d[11]) point = getPoint(dist * np.sin(angle_radians(angl)), dist * np.cos(angle_radians(angl))) plt.scatter(point[0], point[1], s=1000 * anglError / errmax2, c="Black") #plt.colorbar()
def getRealDeltaS(source_pos, micAPos, micBPos): return distance(micAPos, source_pos) - distance(micBPos, source_pos) def getRealTDOA(source_pos, micAPos, micBPos): return getRealDeltaS(source_pos, micAPos, micBPos) / 343.3 # Load TimeFrames for Measurements keyList, limitList = loadTimeWindows() # Define Array 5 micList = list() num_mic = 8 mic_dist = 0.38 for i in range(0,num_mic): micList.append(getPoint(mic_dist*np.sin(angle_radians(360/8*(i))),mic_dist*np.cos(angle_radians(360/8*(i))))) # Load Measurements signals = ["CH", "SX"] distances = ["10", "20", "40", "60", "80"] anglesA4 = ["00", "22,5", "45", "67,5", "90"] anglesA5 = ["00", "10", "25"] file = "results_SSL_LIN_A5M_DesignC.txt" f = open(file, 'w') print("arr ; signal ; angle ; dist ; pNoise ; pSigna ; snr_DB ; TDOA_real1 ; TDOA_real2 ; TDOA_CSOM1 ; TDOA_CSOM2 ; angleReal ; angleLIN ; angleNOL ; distanceReal ; distanceLIN ; distanceNOL") print("arr ; signal ; angle ; dist ; pNoise ; pSigna ; snr_DB ; TDOA_real1 ; TDOA_real2 ; TDOA_CSOM1 ; TDOA_CSOM2 ; angleReal ; angleLIN ; angleNOL ; distanceReal ; distanceLIN ; distanceNOL", file=f) arr = "A5" for signal in signals: for dist in distances:
for xval in [0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95]: l = list() for dis in distances: # print(dis) lol = list() for n in range(0, 10): # dis = 80 ang = 0 # Adjust Configurations micList = list() for i in range(0, num_mic): micList.append( getPoint( mic_dist * np.sin(angle_radians(360 / 8 * (2 - i))), mic_dist * np.cos(angle_radians(360 / 8 * (2 - i))))) noise_microphone = 0.003 noise_environment = 0.04 noise_source = 0.01 source_pos = getPoint(dis * np.sin(angle_radians(ang)), dis * np.cos(angle_radians(ang))) config = updateConfig(config, micList, noise_microphone, noise_environment, noise_source, source_pos) # Signal Simulation loaded = simulate(config, config["source_position"], signal_function) signals = loaded.get_measurements() meta = loaded.get_meta_data() signalsFiltered = list()
def getRealTDOA(source_pos, micAPos, micBPos): return getRealDeltaS(source_pos, micAPos, micBPos) / 343.3 # Load TimeFrames for Measurements keyList, limitList = loadTimeWindows() # Define Array 5 micList = list() num_mic = 8 mic_dist = 0.38 for i in range(0, num_mic): micList.append( getPoint(mic_dist * np.sin(angle_radians(360 / 8 * (i))), mic_dist * np.cos(angle_radians(360 / 8 * (i))))) # Load Measurements signals = ["CH", "SX"] distances = ["10", "20", "40", "60", "80"] anglesA4 = ["00", "22,5", "45", "67,5", "90"] anglesA5 = ["00", "10", "25"] file = "results_SSL_LIN_A5M_DesignC.txt" f = open(file, 'w') print( "arr ; signal ; angle ; dist ; pNoise ; pSigna ; snr_DB ; TDOA_real1 ; TDOA_real2 ; TDOA_CSOM1 ; TDOA_CSOM2 ; angleReal ; angleLIN ; angleNOL ; distanceReal ; distanceLIN ; distanceNOL" ) print( "arr ; signal ; angle ; dist ; pNoise ; pSigna ; snr_DB ; TDOA_real1 ; TDOA_real2 ; TDOA_CSOM1 ; TDOA_CSOM2 ; angleReal ; angleLIN ; angleNOL ; distanceReal ; distanceLIN ; distanceNOL",
# Load Measurements signals = ["CH", "SX"] distances = ["10", "20", "40", "60", "80"] anglesA4 = ["00", "22,5", "45", "67,5", "90"] anglesA5 = ["00", "10", "25"] f = open("CalibrationResultsA4.txt", 'w') print("arr ; signal ; angle ; dist ; K1 ; K2 ; K3 ; K4 ; K5 ; K6 ; K7 ; K8") print("arr ; signal ; angle ; dist ; K1 ; K2 ; K3 ; K4 ; K5 ; K6 ; K7 ; K8", file=f) arr = "A4" for signal in signals: for dist in distances: for angle in anglesA4: # Determine Sound Source Pos source_pos = getPoint(float(dist)*np.sin(angle_radians(float(angle.replace(",",".")))), float(dist)*np.cos(angle_radians(float(angle.replace(",","."))))) # Load Data data, meta_data = load_measurement(arr, signal, angle, dist) # Determine SNR index = keyList.index(arr+","+signal+","+dist+","+angle) time_windowNoise = {"from" : limitList[index][0], "to": limitList[index][1]} time_windowSignal = {"from" : limitList[index][2], "to": limitList[index][3]} # Determine Ks signalsCut = list() for d in range(1,9): timeCut, sigCut = cutSignal(data[d], meta_data, time_windowSignal) signalsCut.append(sigCut) K_results = calcKs(signalsCut, meta_data, source_pos, plot_=False)