------------------------------------------------------------------------------- -- -- -- Experiment Source Code -- -- Delta NMR Experiment & Machine Control Interface -- -- -- -- Copyright (c) 2000 JEOL Ltd -- -- All Rights Reserved -- -- -- ------------------------------------------------------------------------------- -- HELP.eng: proton DQ/SQ correlation with 1H-1H decoupling and z-rotation -- Category: solids, 2D, homonuclear correlation --- By Rongchun Zhang, 2021/02/25 header filename => "TQ_wPMLG_zrot_2D"; sample_id => ""; comment => "TQ_wPMLG_zrot_2D"; process = "2d_solid_scale.list"; include "header_solid"; auto_dwell => false; auto_filter => false; end header; instrument include "instrument_solid"; recvr_gain => 20; end instrument; acquisition x_domain => "Proton"; x_offset => 14[ppm]; x_sweep => 100[kHz]; x_points => 256; scans => 16; x_prescans => 2; mod_return => 1; y_domain = x_domain; y_offset = x_offset*3; filter_width = 0[MHz]; include "acquisition_solid"; end acquisition; pulse collect COMPLEX,OBS COMPLEX; initial_wait = 1.0[s]; mas_frequency = mas_spin_get; spinning_freq => 12[kHz]; obs_width_90 => x90; obs_amp_pulse => 100[%], 0[%]->100[%]:0.01[%], help "set ampliper for x pulse"; RN_Setup =? "-----------Setup RN pulses-----------"; number_large_N => 12; number_n => 2; number_nu => 5; number_RN => 1; obs_amp_RN => 0[%]; obs_phs_RN_p = 180*number_nu/number_large_N; obs_phs_RN_m = -obs_phs_RN_p; obs_width_RN = (number_n/spinning_freq)/number_large_N; supercycle => "S0Sinv", ("S0","S0S180","S0Sinv","S0Sinv_180"); recoupling =? if supercycle = "S0" then number_RN*number_n/spinning_freq else if supercycle = "S0S180" then 2*number_RN*number_n/spinning_freq else if supercycle = "S0Sinv" then 2*number_RN*number_n/spinning_freq else if supercycle = "S0Sinv_180" then 4*number_RN*number_n/spinning_freq else 0[us]; z_filter => 100[us],0[ns] -> 50[ms] : 20[ns], help "total echo time"; LG_Setup =? "-----------Setup PMLG pulses-----------"; obs_width_nominal90 => x90; obs_amp_lg => 100[%], 0[%]->100[%]:0.01[%], help "set ampliper for x pulse"; obs_width_lg =? obs_width_nominal90 * sqrt(2/3) * 4; PMLGn =? 3, help "PMLGn pulse divided into 3 steps"; obs_width_lg_element => obs_width_lg / PMLGn; obs_width_lg_e_round =? round(obs_width_lg_element / 20[ns]) * 20[ns]; x_Setup =? "#Setup X Dimension#"; bef_trig_1 = 2000[ns]; bef_trig_2 = 1500[ns]; t_trig = 1400[ns]; aft_trig = 1200[ns]; t_w = bef_trig_1 + bef_trig_2 + t_trig + aft_trig; scale_factor_x => 0.47, help "Theoretical Scaling Factor for wPMLG3"; scale_x_sweep = 1 / Scale_factor_x; cycle_time_x = (obs_width_lg_e_round * 2 * PMLGn + t_w) * 2; x_sweep = 100[kHz]; get_freq = "pulse_service::get_freq_value"; scaled_x_sweep =? 1 / cycle_time_x / scale_factor_x * (1[Mppm] / _get_freq( x_domain )); y_Setup =? "#Setup Y Dimension#"; scale_factor_y => 0.47, help "Theoretical Scaling Factor for wPMLG3"; scale_y_sweep = 1 / Scale_factor_y; lg_loop => 4, 0->64:1, help "loop number for PMLG"; cycle_time_y = cycle_time_x * lg_loop; y_sweep = 1 / cycle_time_y; scaled_y_sweep =? y_sweep / scale_factor_y * (1[Mppm] / _get_freq( y_domain )); y_points => 64; acq_time_y =? y_points * cycle_time_y; Others_Setup =? "#Setup Others#"; relaxation_delay => 5.0[s], help"inter-pulse delay"; repetition_time =? relaxation_delay + x_points * cycle_time_x ,help"relaxation_delay+x_acq_time"; obs_atn => xatn, help "set attenuator for x pulse"; obs_phs_lg = {0}; obs_phs_exc = { 0..300:60, 30..330:60}.ystep(60%2); obs_phs_rec = { 0}; obs_phs_restore = {6( 0),6(120),6(240)}; obs_phs_acq = {3( 0,180),3(120,300),3(240, 60)}.ystep(180%2); module_config = "solid_sample obs.blank_inhibit"; begin initial_wait; relaxation_delay; ----#1 loop number_RN times loop number_large_N/2 times obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_p+obs_phs_exc), obs.amp.obs_amp_RN, obs.atn.obs_atn); obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_m+obs_phs_exc), obs.amp.obs_amp_RN, obs.atn.obs_atn); end loop; when supercycle = "S0S180" do loop number_large_N/2 times obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_p+obs_phs_exc+180), obs.amp.obs_amp_RN, obs.atn.obs_atn); obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_m+obs_phs_exc+180), obs.amp.obs_amp_RN, obs.atn.obs_atn); end loop; end when; when supercycle = "S0Sinv" do loop number_large_N/2 times obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_m+obs_phs_exc), obs.amp.obs_amp_RN, obs.atn.obs_atn); obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_p+obs_phs_exc), obs.amp.obs_amp_RN, obs.atn.obs_atn); end loop; end when; when supercycle = "S0Sinv_180" do loop number_large_N/2 times obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_m+obs_phs_exc), obs.amp.obs_amp_RN, obs.atn.obs_atn); obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_p+obs_phs_exc), obs.amp.obs_amp_RN, obs.atn.obs_atn); end loop; loop number_large_N/2 times obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_p+obs_phs_exc+180), obs.amp.obs_amp_RN, obs.atn.obs_atn); obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_m+obs_phs_exc+180), obs.amp.obs_amp_RN, obs.atn.obs_atn); end loop; loop number_large_N/2 times obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_m+obs_phs_exc+180), obs.amp.obs_amp_RN, obs.atn.obs_atn); obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_p+obs_phs_exc+180), obs.amp.obs_amp_RN, obs.atn.obs_atn); end loop; end when; end loop; ----#2 loop number_RN times loop number_large_N/2 times obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_p+obs_phs_exc+120), obs.amp.obs_amp_RN, obs.atn.obs_atn); obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_m+obs_phs_exc+120), obs.amp.obs_amp_RN, obs.atn.obs_atn); end loop; when supercycle = "S0S180" do loop number_large_N/2 times obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_p+obs_phs_exc+300), obs.amp.obs_amp_RN, obs.atn.obs_atn); obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_m+obs_phs_exc+300), obs.amp.obs_amp_RN, obs.atn.obs_atn); end loop; end when; when supercycle = "S0Sinv" do loop number_large_N/2 times obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_m+obs_phs_exc-120), obs.amp.obs_amp_RN, obs.atn.obs_atn); obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_p+obs_phs_exc-120), obs.amp.obs_amp_RN, obs.atn.obs_atn); end loop; end when; when supercycle = "S0Sinv_180" do loop number_large_N/2 times obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_m+obs_phs_exc-120), obs.amp.obs_amp_RN, obs.atn.obs_atn); obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_p+obs_phs_exc-120), obs.amp.obs_amp_RN, obs.atn.obs_atn); end loop; loop number_large_N/2 times obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_p+obs_phs_exc+300), obs.amp.obs_amp_RN, obs.atn.obs_atn); obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_m+obs_phs_exc+300), obs.amp.obs_amp_RN, obs.atn.obs_atn); end loop; loop number_large_N/2 times obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_m+obs_phs_exc+ 60), obs.amp.obs_amp_RN, obs.atn.obs_atn); obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_p+obs_phs_exc+ 60), obs.amp.obs_amp_RN, obs.atn.obs_atn); end loop; end when; end loop; -----#3 loop number_RN times loop number_large_N/2 times obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_p+obs_phs_exc+240), obs.amp.obs_amp_RN, obs.atn.obs_atn); obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_m+obs_phs_exc+240), obs.amp.obs_amp_RN, obs.atn.obs_atn); end loop; when supercycle = "S0S180" do loop number_large_N/2 times obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_p+obs_phs_exc+ 60), obs.amp.obs_amp_RN, obs.atn.obs_atn); obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_m+obs_phs_exc+ 60), obs.amp.obs_amp_RN, obs.atn.obs_atn); end loop; end when; when supercycle = "S0Sinv" do loop number_large_N/2 times obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_m+obs_phs_exc-240), obs.amp.obs_amp_RN, obs.atn.obs_atn); obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_p+obs_phs_exc-240), obs.amp.obs_amp_RN, obs.atn.obs_atn); end loop; end when; when supercycle = "S0Sinv_180" do loop number_large_N/2 times obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_m+obs_phs_exc-240), obs.amp.obs_amp_RN, obs.atn.obs_atn); obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_p+obs_phs_exc-240), obs.amp.obs_amp_RN, obs.atn.obs_atn); end loop; loop number_large_N/2 times obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_p+obs_phs_exc+180), obs.amp.obs_amp_RN, obs.atn.obs_atn); obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_m+obs_phs_exc+180), obs.amp.obs_amp_RN, obs.atn.obs_atn); end loop; loop number_large_N/2 times obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_m+obs_phs_exc- 60), obs.amp.obs_amp_RN, obs.atn.obs_atn); obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_p+obs_phs_exc- 60), obs.amp.obs_amp_RN, obs.atn.obs_atn); end loop; end when; end loop; ------starting t1 evolution ----------------------- loop 0 ystep 1 times loop lg_loop times bef_trig_1 + bef_trig_2 + t_trig + aft_trig; obs_width_lg_e_round, (obs.gate, obs.phs.obs_phs_lg+034.64, obs.amp.obs_amp_lg, obs.atn.obs_atn); obs_width_lg_e_round, (obs.gate, obs.phs.obs_phs_lg+103.92, obs.amp.obs_amp_lg, obs.atn.obs_atn); obs_width_lg_e_round, (obs.gate, obs.phs.obs_phs_lg+173.21, obs.amp.obs_amp_lg, obs.atn.obs_atn); obs_width_lg_e_round, (obs.gate, obs.phs.obs_phs_lg+353.21, obs.amp.obs_amp_lg, obs.atn.obs_atn); obs_width_lg_e_round, (obs.gate, obs.phs.obs_phs_lg+283.92, obs.amp.obs_amp_lg, obs.atn.obs_atn); obs_width_lg_e_round, (obs.gate, obs.phs.obs_phs_lg+214.64, obs.amp.obs_amp_lg, obs.atn.obs_atn); bef_trig_1 + bef_trig_2 + t_trig + aft_trig; obs_width_lg_e_round, (obs.gate, obs.phs.obs_phs_lg+034.64+180, obs.amp.obs_amp_lg, obs.atn.obs_atn); obs_width_lg_e_round, (obs.gate, obs.phs.obs_phs_lg+103.92+180, obs.amp.obs_amp_lg, obs.atn.obs_atn); obs_width_lg_e_round, (obs.gate, obs.phs.obs_phs_lg+173.21+180, obs.amp.obs_amp_lg, obs.atn.obs_atn); obs_width_lg_e_round, (obs.gate, obs.phs.obs_phs_lg+353.21+180, obs.amp.obs_amp_lg, obs.atn.obs_atn); obs_width_lg_e_round, (obs.gate, obs.phs.obs_phs_lg+283.92+180, obs.amp.obs_amp_lg, obs.atn.obs_atn); obs_width_lg_e_round, (obs.gate, obs.phs.obs_phs_lg+214.64+180, obs.amp.obs_amp_lg, obs.atn.obs_atn); end loop; end loop; ------------- Starting TQ reconversion------------------------ loop number_RN times loop number_large_N/2 times obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_p+obs_phs_rec), obs.amp.obs_amp_RN, obs.atn.obs_atn); obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_m+obs_phs_rec), obs.amp.obs_amp_RN, obs.atn.obs_atn); end loop; when supercycle = "S0S180" do loop number_large_N/2 times obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_p+obs_phs_rec+180), obs.amp.obs_amp_RN, obs.atn.obs_atn); obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_m+obs_phs_rec+180), obs.amp.obs_amp_RN, obs.atn.obs_atn); end loop; end when; when supercycle = "S0Sinv" do loop number_large_N/2 times obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_m+obs_phs_rec), obs.amp.obs_amp_RN, obs.atn.obs_atn); obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_p+obs_phs_rec), obs.amp.obs_amp_RN, obs.atn.obs_atn); end loop; end when; when supercycle = "S0Sinv_180" do loop number_large_N/2 times obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_m+obs_phs_rec), obs.amp.obs_amp_RN, obs.atn.obs_atn); obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_p+obs_phs_rec), obs.amp.obs_amp_RN, obs.atn.obs_atn); end loop; loop number_large_N/2 times obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_p+obs_phs_rec+180), obs.amp.obs_amp_RN, obs.atn.obs_atn); obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_m+obs_phs_rec+180), obs.amp.obs_amp_RN, obs.atn.obs_atn); end loop; loop number_large_N/2 times obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_m+obs_phs_rec+180), obs.amp.obs_amp_RN, obs.atn.obs_atn); obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_p+obs_phs_rec+180), obs.amp.obs_amp_RN, obs.atn.obs_atn); end loop; end when; end loop; loop number_RN times loop number_large_N/2 times obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_p+obs_phs_rec+120), obs.amp.obs_amp_RN, obs.atn.obs_atn); obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_m+obs_phs_rec+120), obs.amp.obs_amp_RN, obs.atn.obs_atn); end loop; when supercycle = "S0S180" do loop number_large_N/2 times obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_p+obs_phs_rec+300), obs.amp.obs_amp_RN, obs.atn.obs_atn); obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_m+obs_phs_rec+300), obs.amp.obs_amp_RN, obs.atn.obs_atn); end loop; end when; when supercycle = "S0Sinv" do loop number_large_N/2 times obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_m+obs_phs_rec-120), obs.amp.obs_amp_RN, obs.atn.obs_atn); obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_p+obs_phs_rec-120), obs.amp.obs_amp_RN, obs.atn.obs_atn); end loop; end when; when supercycle = "S0Sinv_180" do loop number_large_N/2 times obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_m+obs_phs_rec-120), obs.amp.obs_amp_RN, obs.atn.obs_atn); obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_p+obs_phs_rec-120), obs.amp.obs_amp_RN, obs.atn.obs_atn); end loop; loop number_large_N/2 times obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_p+obs_phs_rec+300), obs.amp.obs_amp_RN, obs.atn.obs_atn); obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_m+obs_phs_rec+300), obs.amp.obs_amp_RN, obs.atn.obs_atn); end loop; loop number_large_N/2 times obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_m+obs_phs_rec+ 60), obs.amp.obs_amp_RN, obs.atn.obs_atn); obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_p+obs_phs_rec+ 60), obs.amp.obs_amp_RN, obs.atn.obs_atn); end loop; end when; end loop; loop number_RN times loop number_large_N/2 times obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_p+obs_phs_rec+240), obs.amp.obs_amp_RN, obs.atn.obs_atn); obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_m+obs_phs_rec+240), obs.amp.obs_amp_RN, obs.atn.obs_atn); end loop; when supercycle = "S0S180" do loop number_large_N/2 times obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_p+obs_phs_rec+ 60), obs.amp.obs_amp_RN, obs.atn.obs_atn); obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_m+obs_phs_rec+ 60), obs.amp.obs_amp_RN, obs.atn.obs_atn); end loop; end when; when supercycle = "S0Sinv" do loop number_large_N/2 times obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_m+obs_phs_rec-240), obs.amp.obs_amp_RN, obs.atn.obs_atn); obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_p+obs_phs_rec-240), obs.amp.obs_amp_RN, obs.atn.obs_atn); end loop; end when; when supercycle = "S0Sinv_180" do loop number_large_N/2 times obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_m+obs_phs_rec-240), obs.amp.obs_amp_RN, obs.atn.obs_atn); obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_p+obs_phs_rec-240), obs.amp.obs_amp_RN, obs.atn.obs_atn); end loop; loop number_large_N/2 times obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_p+obs_phs_rec+ 60), obs.amp.obs_amp_RN, obs.atn.obs_atn); obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_m+obs_phs_rec+ 60), obs.amp.obs_amp_RN, obs.atn.obs_atn); end loop; loop number_large_N/2 times obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_m+obs_phs_rec- 60), obs.amp.obs_amp_RN, obs.atn.obs_atn); obs_width_RN, (obs.gate, obs.phs.(obs_phs_RN_p+obs_phs_rec- 60), obs.amp.obs_amp_RN, obs.atn.obs_atn); end loop; end when; end loop; z_filter; obs_width_90, (obs.gate, obs.phs.obs_phs_restore, obs.amp.obs_amp_pulse, obs.atn.obs_atn); acquire begin bef_trig_1, (OBS.BLANK, OBS.PHS.0); bef_trig_2, (RCV.GATE, OBS.BLANK, OBS.PHS.0); t_trig, (RCV, RCV.GATE, OBS.BLANK, OBS.PHS.0, RCV.PHS.obs_phs_acq); aft_trig / 2; obs_width_lg_e_round, (OBS.GATE, OBS.PHS.obs_phs_lg + 34.64, OBS.AMP.obs_amp_lg, OBS.ATN.obs_atn); obs_width_lg_e_round, (OBS.GATE, OBS.PHS.obs_phs_lg + 103.92, OBS.AMP.obs_amp_lg, OBS.ATN.obs_atn); obs_width_lg_e_round, (OBS.GATE, OBS.PHS.obs_phs_lg + 173.21, OBS.AMP.obs_amp_lg, OBS.ATN.obs_atn); obs_width_lg_e_round, (OBS.GATE, OBS.PHS.obs_phs_lg + 353.21, OBS.AMP.obs_amp_lg, OBS.ATN.obs_atn); obs_width_lg_e_round, (OBS.GATE, OBS.PHS.obs_phs_lg + 283.92, OBS.AMP.obs_amp_lg, OBS.ATN.obs_atn); obs_width_lg_e_round, (OBS.GATE, OBS.PHS.obs_phs_lg + 214.64, OBS.AMP.obs_amp_lg, OBS.ATN.obs_atn); bef_trig_1 + bef_trig_2 + t_trig + aft_trig; obs_width_lg_e_round, (OBS.GATE, OBS.PHS.obs_phs_lg + 34.64 + 180, OBS.AMP.obs_amp_lg, OBS.ATN.obs_atn); obs_width_lg_e_round, (OBS.GATE, OBS.PHS.obs_phs_lg + 103.92 + 180, OBS.AMP.obs_amp_lg, OBS.ATN.obs_atn); obs_width_lg_e_round, (OBS.GATE, OBS.PHS.obs_phs_lg + 173.21 + 180, OBS.AMP.obs_amp_lg, OBS.ATN.obs_atn); obs_width_lg_e_round, (OBS.GATE, OBS.PHS.obs_phs_lg + 353.21 + 180, OBS.AMP.obs_amp_lg, OBS.ATN.obs_atn); obs_width_lg_e_round, (OBS.GATE, OBS.PHS.obs_phs_lg + 283.92 + 180, OBS.AMP.obs_amp_lg, OBS.ATN.obs_atn); obs_width_lg_e_round, (OBS.GATE, OBS.PHS.obs_phs_lg + 214.64 + 180, OBS.AMP.obs_amp_lg, OBS.ATN.obs_atn); aft_trig / 2; end acquire; end pulse;