Add option to suppress ringing in Saturation Recovery script

A parameter option "suppress_ringing" has been added to the Saturation Recovery script. This option modifies phase lists and allows the application of a phase cycle that compensates for ringing but reduces signal-to-noise ratio by half. This gives users the option to prioritize either reduced ringing or higher SNR as per their requirements.
This commit is contained in:
Markus Rosenstihl 2024-02-27 17:14:28 +01:00
parent 0d25b17c60
commit 7da97a4f26

View File

@ -25,8 +25,9 @@ def experiment(): # saturation-recovery with soild-echo detection
pars['D2'] = 1e-4 # end interval in saturation sequence (s) pars['D2'] = 1e-4 # end interval in saturation sequence (s)
pars['DATADIR'] = '/home/fprak/Students/' # data directory pars['DATADIR'] = '/home/fprak/Students/' # data directory
pars['OUTFILE'] = None # output file name pars['OUTFILE'] = None # output file name
pars["suppress_ringing"] = False # 16 Phase cycle, reduces ringing but halves SNR
# specify a variable parameter (optional): # specify a variable parameter (optional):
pars['VAR_PAR'] = 'TAU' # variable parameter name (a string) pars['VAR_PAR'] = 'TAU' # variable parameter name (a string)
start = 1e-4 # starting value start = 1e-4 # starting value
stop = 1e-0 # end value stop = 1e-0 # end value
@ -109,11 +110,17 @@ def satrec2_experiment(pars, run):
pars['PROG'] = 'satrec2_experiment' pars['PROG'] = 'satrec2_experiment'
# phase lists: if pars["suppress_ringing"]:
pars['PH1'] = [ 0] # saturation pulses # phase cycle to compensate ringing (loss of half the signal!)
pars['PH3'] = [ 0, 180, 0, 180, 90, 270, 90, 270] # 1st 90-degree pulse pars['PH3'] = [ 0, 0, 0, 0, 90, 90, 90, 90, 180, 180, 180, 180, 270, 270, 270, 270] # 1st 90-degree pulse
pars['PH4'] = [90, 90, 270, 270, 0, 0, 180, 180] # 2nd 90-degree pulse pars['PH4'] = [ 0, 90, 180, 270, 90, 180, 270, 0, 180, 270, 0, 90, 270, 0, 90, 180] # 2nd 90-degree pulse
pars['PH2'] = [ 0, 180, 0, 180, 90, 270, 90, 270] # receiver pars['PH2'] = [ 180, 0, 180, 0, 270, 90, 270, 90, 0, 180, 0, 180, 90, 270, 90, 270] # receiver
else:
# simple phase cycle:
pars['PH1'] = [0] # saturation pulses
pars['PH3'] = [0, 180, 0, 180, 90, 270, 90, 270] # 1st 90-degree pulse
pars['PH4'] = [90, 90, 270, 270, 0, 0, 180, 180] # 2nd 90-degree pulse
pars['PH2'] = [0, 180, 0, 180, 90, 270, 90, 270] # receiver
# read in variables: # read in variables:
P90 = pars['P90'] P90 = pars['P90']