diff options
author | andreas128 <Andreas> | 2016-11-28 15:11:54 +0100 |
---|---|---|
committer | andreas128 <Andreas> | 2016-11-28 15:11:54 +0100 |
commit | 9dea632708cabd666db3f537c32cb175375725d6 (patch) | |
tree | d9c0bb87e9d13b16d362ffce129778b2cb8d4b48 | |
parent | ffae3a0ce36edb00fe1e9b99b63fb155933f9b52 (diff) | |
download | ODR-StaticPrecorrection-9dea632708cabd666db3f537c32cb175375725d6.tar.gz ODR-StaticPrecorrection-9dea632708cabd666db3f537c32cb175375725d6.tar.bz2 ODR-StaticPrecorrection-9dea632708cabd666db3f537c32cb175375725d6.zip |
Make more robust to failed measurements
-rwxr-xr-x | amplitude_ramp.py | 7 | ||||
-rwxr-xr-x | plot.py | 10 |
2 files changed, 14 insertions, 3 deletions
diff --git a/amplitude_ramp.py b/amplitude_ramp.py index c757ef8..7672cda 100755 --- a/amplitude_ramp.py +++ b/amplitude_ramp.py @@ -30,6 +30,7 @@ import time import socket import struct import threading +import numpy as np from Queue import Queue from dual_tone import dual_tone # our flowgraph! import tcp_async @@ -109,17 +110,20 @@ class RampGenerator(threading.Thread): # Receive and ignore three floats on the socket sock.recv(12) + measurements_new = [] for measurement_ix in range(self.num_meas): # Receive three floats on the socket mag_gen, phase_diff, mag_feedback = struct.unpack( "fff", sock.recv(12)) + phase_diff = phase_diff % 720 + mag_gen_sum += mag_gen phase_diff_sum += phase_diff mag_feedback_sum += mag_feedback - measurements.append((ampl, mag_gen, mag_feedback, phase_diff)) + measurements_new.append((ampl, mag_gen, mag_feedback, phase_diff)) mag_gen_avg = mag_gen_sum / self.num_meas mag_feedback_avg = mag_feedback_sum / self.num_meas @@ -128,6 +132,7 @@ class RampGenerator(threading.Thread): #Check asynchronous uhd messages for error has_msg = self.tcpa.has_msg() if not has_msg: + measurements.append([np.mean(meas) for meas in zip(*measurements_new)]) measurement_correct = True print("Ampl: {} Out: {:10} In: {:10} phase_diff: {:10}".format( ampl, mag_gen_avg, mag_feedback_avg, phase_diff_avg)) @@ -10,6 +10,10 @@ import numpy as np import matplotlib.pyplot as pp +import os + +if not os.path.isdir("./plots"): + os.makedirs("./plots") measurements = np.loadtxt("measurements.csv", delimiter=",") @@ -24,15 +28,17 @@ pp.subplot(312) pp.plot(mag_feedback) pp.subplot(313) pp.plot(phase_diff) +pp.savefig("plots/mag_gen-mag_feedback-pahase_diff.png") pp.figure() pp.scatter(mag_gen, mag_feedback) +pp.savefig("plots/mag_gen-vs-mag_feedback.png") pp.figure() mag_gen_norm = mag_gen / mag_gen.max() mag_feedback_norm = mag_feedback / mag_feedback.max() pp.plot(mag_gen_norm - mag_feedback_norm) +pp.savefig("plots/mag_gen-minus-mag_feedback.png") -pp.show() - +#pp.show() |