summaryrefslogtreecommitdiffstats
path: root/dpd/src/phase_align.py
diff options
context:
space:
mode:
authorandreas128 <Andreas>2017-08-19 19:19:46 +0200
committerandreas128 <Andreas>2017-08-19 19:19:46 +0200
commit70d4314056cf6ec2df93369ac50e223d9c43aef7 (patch)
treecd95b16dc6783e3c66e89d13fac48e347a874e18 /dpd/src/phase_align.py
parenta11b8c5b13654d69286c6661b4e5eee2d7b0cc59 (diff)
downloaddabmod-70d4314056cf6ec2df93369ac50e223d9c43aef7.tar.gz
dabmod-70d4314056cf6ec2df93369ac50e223d9c43aef7.tar.bz2
dabmod-70d4314056cf6ec2df93369ac50e223d9c43aef7.zip
Cleanup plots
Diffstat (limited to 'dpd/src/phase_align.py')
-rw-r--r--dpd/src/phase_align.py77
1 files changed, 50 insertions, 27 deletions
diff --git a/dpd/src/phase_align.py b/dpd/src/phase_align.py
index 9e78483..bea0b82 100644
--- a/dpd/src/phase_align.py
+++ b/dpd/src/phase_align.py
@@ -14,35 +14,58 @@ def phase_align(sig, ref_sig):
angle_diff = (np.angle(sig) - np.angle(ref_sig)) % (2. * np.pi)
- dt = datetime.datetime.now().isoformat()
- fig_path = "/tmp/phase_align_" + dt + ".pdf"
- plt.subplot(311)
- plt.hist(angle_diff, bins=60, label="Angle Diff")
- plt.xlabel("Angle")
- plt.ylabel("Count")
- plt.legend(loc=4)
-
- plt.subplot(312)
- plt.plot(np.angle(ref_sig[:128]), label="ref_sig")
- plt.plot(np.angle(sig[:128]), label="sig")
- plt.xlabel("Angle")
- plt.ylabel("Sample")
- plt.legend(loc=4)
-
- angle = np.median(angle_diff)
- logging.debug("Compensating phase by {} rad, {} degree.".format(
- angle, angle*180./np.pi
+ real_diffs = np.cos(angle_diff)
+ imag_diffs = np.sin(angle_diff)
+
+ if logging.getLogger().getEffectiveLevel() == logging.DEBUG:
+ dt = datetime.datetime.now().isoformat()
+ fig_path = "/tmp/" + dt + "_phase_align.pdf"
+
+ plt.subplot(511)
+ plt.hist(angle_diff, bins=60, label="Angle Diff")
+ plt.xlabel("Angle")
+ plt.ylabel("Count")
+ plt.legend(loc=4)
+
+ plt.subplot(512)
+ plt.hist(real_diffs, bins=60, label="Real Diff")
+ plt.xlabel("Real Part")
+ plt.ylabel("Count")
+ plt.legend(loc=4)
+
+ plt.subplot(513)
+ plt.hist(imag_diffs, bins=60, label="Imaginary Diff")
+ plt.xlabel("Imaginary Part")
+ plt.ylabel("Count")
+ plt.legend(loc=4)
+
+ plt.subplot(514)
+ plt.plot(np.angle(ref_sig[:128]), label="ref_sig")
+ plt.plot(np.angle(sig[:128]), label="sig")
+ plt.xlabel("Angle")
+ plt.ylabel("Sample")
+ plt.legend(loc=4)
+
+ real_diff = np.median(real_diffs)
+ imag_diff = np.median(imag_diffs)
+
+ angle = np.angle(real_diff + 1j * imag_diff)
+
+ logging.debug(
+ "Compensating phase by {} rad, {} degree. real median {}, imag median {}".format(
+ angle, angle*180./np.pi, real_diff, imag_diff
))
sig = sig * np.exp(1j * -angle)
- plt.subplot(313)
- plt.plot(np.angle(ref_sig[:128]), label="ref_sig")
- plt.plot(np.angle(sig[:128]), label="sig")
- plt.xlabel("Angle")
- plt.ylabel("Sample")
- plt.legend(loc=4)
- plt.tight_layout()
- plt.savefig(fig_path)
- plt.clf()
+ if logging.getLogger().getEffectiveLevel() == logging.DEBUG:
+ plt.subplot(515)
+ plt.plot(np.angle(ref_sig[:128]), label="ref_sig")
+ plt.plot(np.angle(sig[:128]), label="sig")
+ plt.xlabel("Angle")
+ plt.ylabel("Sample")
+ plt.legend(loc=4)
+ plt.tight_layout()
+ plt.savefig(fig_path)
+ plt.clf()
return sig