From 630d4b50dd3f3751c3854dc02e1a521d0ad6e11b Mon Sep 17 00:00:00 2001 From: Leolab Cavity CAD PC <quantuminfo.leolab@gmail.com> Date: Wed, 10 Apr 2024 16:21:39 +0200 Subject: [PATCH] Added unit conversion class for TimeBase FM to use detuning --- TimeBaseAOMDriver/unitconversions.py | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/TimeBaseAOMDriver/unitconversions.py b/TimeBaseAOMDriver/unitconversions.py index aaab056..d297813 100644 --- a/TimeBaseAOMDriver/unitconversions.py +++ b/TimeBaseAOMDriver/unitconversions.py @@ -18,7 +18,7 @@ from labscript_utils.unitconversions.UnitConversionBase import UnitConversion from labscript_utils.unitconversions.generic_frequency import FreqConversion -# from labscript_utils.unitconversions.detuning import detuning +from labscript_utils.unitconversions.detuning import detuning from numpy import log10 class TimeBaseAOMDriver_AM(UnitConversion): @@ -32,7 +32,7 @@ class TimeBaseAOMDriver_AM(UnitConversion): -class TimeBaseAOMDriver_FM(UnitConversion): +class FM(UnitConversion): # This must be defined outside of init, and must match the default hardware unit specified within the BLACS tab base_unit = "V" derived_units = ["Hz"] @@ -48,6 +48,23 @@ class TimeBaseAOMDriver_FM(UnitConversion): def Hz_from_base(self,V): return self.parameters["freq"] + V/10 * self.parameters["FM_deviation"] +class FM_detuning(detuning,FM): + """ + Combination of the deuning class and FM by overwriting the base unit and only two functions, + to convert the FM voltage to the detuning from the atom resonance. + """ + base_unit = "V" + derived_units = ["MHz", "d_MHz", "linewidths"] + + def __init__(self, calibration_parameters): + detuning.__init__(self,calibration_parameters) + + def MHz_to_base(self, aom_frequency_MHz): + return self.Hz_to_base(aom_frequency_MHz*1e6) + + def MHz_from_base(self, V): + return self.Hz_from_base(V) * 1e-6 + class dBm_to_W(UnitConversion): base_unit = "dBm" -- GitLab