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)
Exemple #2
0
)
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()
Exemple #4
0
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",
Exemple #7
0
# 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)