-------------------------------------------------------------------------------
--                                                                           --
--                          Experiment Source Code                           --
--              Delta NMR Experiment & Machine Control Interface             --
--                                                                           --
--                     Copyright (c) 2000 JEOL Ltd                           --
--                            All Rights Reserved                            --
--                                                                           --
-------------------------------------------------------------------------------
-- HELP
-- File name : exchange.ex2
-- 

header
    filename  => "SQ-DQ-SQ";
    sample_id => "";
    comment   => "homonuclear exchange";
    process   =  "1d_solid.list";
    include "header_solid";
end header;

instrument
    include "instrument_solid";
end instrument;

acquisition
    x_domain         => "Proton";
    x_offset         => 0[ppm];
    x_sweep          => 100[kHz];
    x_points         => 512;
    scans            => 8;
    x_prescans       => 0;
    mod_return       => 1;

    y_domain         =  x_domain;
    y_offset         =  x_offset*2;
    y_sweep          => x_sweep;
    y_dwell          =? 1/y_sweep;
    y_points         => 64;

    z_domain         =  x_domain;
    z_offset         =  x_offset;
    z_sweep          => x_sweep;
    z_dwell          =? 1/z_sweep;
    z_points         => 64;

    include "acquisition_solid";
    include "acquisition_2d";
end acquisition;

pulse

    collect COMPLEX,OBS COMPLEX COMPLEX,OBS;
    
    initial_wait     =  10[ms];

Pulse_Setup	=? "-----------Setup Pulse-----------";
	obs_width_90	=>	x90;
	obs_amp_pulse	=> 100.0[%],  0[%]->100[%]:0.01[%], help "set ampliper for x pulse";

RFDR_Setup	=? "-----------Setup RFDR-----------";
	obs_width_rfdr	=>	x90*2;
	obs_amp_rfdr	=> 100.0[%],  0[%]->100[%]:0.01[%], help "set ampliper for x pulse";
	spinning_freq	=>	100[kHz];
	tau1		=	(1/spinning_freq-obs_width_rfdr)/2;
	number_rfdr	=>	1;
	mixing		=? 16*number_rfdr/spinning_freq;

BABA_Setup	=? "-----------Setup BABA-----------";

	obs_width_baba		=>	x90,										help "90deg pulse width";
	number_baba		=>	1,											help "number of baba cycle";

	spinning_freq		=> 100 [kHz],									help "spinning frequency";
	tau			=	(1/spinning_freq) / 2 - obs_width_baba * 2;
	baba_duration		=?	16 * tau * number_baba;
	z_filter		=>	1[ms],0[ns]	->	50[ms]	:	20[ns],		help "total echo time";


    relaxation_delay	=> 5.0[s], help"inter-pulse delay";
    repetition_time	=? relaxation_delay + x_acq_time,help"relaxation_delay+x_acq_time";

	obs_phs_rd_rfdr	={  0};

	obs_phs_prep	={{  0},{  0},{ 90},{ 90}}.zstep(180%2);
	obs_phs_store	={4(  0),4(180)};
	obs_phs_rfdr	={  0};
	obs_phs_restore	=	{8(  0),8(120),8(240)};
	obs_phs_acq	=	{2(  0,180),2(180,  0),2(120,300),2(300,120),2(240, 60),2( 60,240)}.ystep(180%2).zstep(180%2);

	obs_phs_exc_base	=	{{  0, 90,180,270},{ 45,135,225,315}}.ystep(90%2);
	obs_phs_exc1		=	obs_phs_exc_base+180;
	obs_phs_exc2		=	obs_phs_exc_base+180;
	obs_phs_exc3		=	obs_phs_exc_base+270;
	obs_phs_exc4		=	obs_phs_exc_base+270;
	obs_phs_exc5		=	obs_phs_exc_base+180;
	obs_phs_exc6		=	obs_phs_exc_base+180;
	obs_phs_exc7		=	obs_phs_exc_base+270;
	obs_phs_exc8		=	obs_phs_exc_base+ 90;

	obs_phs_exc9		=	obs_phs_exc_base+  0;
	obs_phs_exc10		=	obs_phs_exc_base+  0;
	obs_phs_exc11		=	obs_phs_exc_base+ 90;
	obs_phs_exc12		=	obs_phs_exc_base+ 90;
	obs_phs_exc13		=	obs_phs_exc_base+  0;
	obs_phs_exc14		=	obs_phs_exc_base+  0;
	obs_phs_exc15		=	obs_phs_exc_base+ 90;
	obs_phs_exc16		=	obs_phs_exc_base+270;

	obs_phs_exc17		=	obs_phs_exc1 +180;
	obs_phs_exc18		=	obs_phs_exc2 +180;
	obs_phs_exc19		=	obs_phs_exc3 +180;
	obs_phs_exc20		=	obs_phs_exc4 +180;
	obs_phs_exc21		=	obs_phs_exc5 +180;
	obs_phs_exc22		=	obs_phs_exc6 +180;
	obs_phs_exc23		=	obs_phs_exc7 +180;
	obs_phs_exc24		=	obs_phs_exc8 +180;

	obs_phs_exc25		=	obs_phs_exc9 +180;
	obs_phs_exc26		=	obs_phs_exc10+180;
	obs_phs_exc27		=	obs_phs_exc11+180;
	obs_phs_exc28		=	obs_phs_exc12+180;
	obs_phs_exc29		=	obs_phs_exc13+180;
	obs_phs_exc30		=	obs_phs_exc14+180;
	obs_phs_exc31		=	obs_phs_exc15+180;
	obs_phs_exc32		=	obs_phs_exc16+180;

	obs_phs_recov_base	=		{0};
	obs_phs_recov32		=	obs_phs_recov_base+180;
	obs_phs_recov31		=	obs_phs_recov_base+180;
	obs_phs_recov30		=	obs_phs_recov_base+270;
	obs_phs_recov29		=	obs_phs_recov_base+270;
	obs_phs_recov28		=	obs_phs_recov_base+180;
	obs_phs_recov27		=	obs_phs_recov_base+180;
	obs_phs_recov26		=	obs_phs_recov_base+270;
	obs_phs_recov25		=	obs_phs_recov_base+ 90;

	obs_phs_recov24		=	obs_phs_recov_base+  0;
	obs_phs_recov23		=	obs_phs_recov_base+  0;
	obs_phs_recov22		=	obs_phs_recov_base+ 90;
	obs_phs_recov21		=	obs_phs_recov_base+ 90;
	obs_phs_recov20		=	obs_phs_recov_base+  0;
	obs_phs_recov19		=	obs_phs_recov_base+  0;
	obs_phs_recov18		=	obs_phs_recov_base+ 90;
	obs_phs_recov17		=	obs_phs_recov_base+270;

	obs_phs_recov16		=	obs_phs_recov32 +180;
	obs_phs_recov15		=	obs_phs_recov31 +180;
	obs_phs_recov14		=	obs_phs_recov30 +180;
	obs_phs_recov13		=	obs_phs_recov29 +180;
	obs_phs_recov12		=	obs_phs_recov28 +180;
	obs_phs_recov11		=	obs_phs_recov27 +180;
	obs_phs_recov10		=	obs_phs_recov26 +180;
	obs_phs_recov9		=	obs_phs_recov25 +180;

	obs_phs_recov8		=	obs_phs_recov24 +180;
	obs_phs_recov7		=	obs_phs_recov23+180;
	obs_phs_recov6		=	obs_phs_recov22+180;
	obs_phs_recov5		=	obs_phs_recov21+180;
	obs_phs_recov4		=	obs_phs_recov20+180;
	obs_phs_recov3		=	obs_phs_recov19+180;
	obs_phs_recov2		=	obs_phs_recov18+180;
	obs_phs_recov1		=	obs_phs_recov17+180;

	obs_atn            => xatn, help "set attenuator";

    include "pulse_solid";
    module_config = "solid_sample ";

begin
   initial_wait;
	relaxation_delay;

	obs_width_90,	(obs.gate,	obs.phs.obs_phs_prep,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	0[us] zstep 1/z_sweep;
	obs_width_90,	(obs.gate,	obs.phs.obs_phs_store,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);

	loop number_rfdr times
		tau1;
		obs_width_rfdr,	(obs.gate,	obs.phs.obs_phs_rfdr+  0,	obs.amp.obs_amp_rfdr,	obs.atn.obs_atn);
		tau1;
		tau1;
		obs_width_rfdr,	(obs.gate,	obs.phs.obs_phs_rfdr+ 90,	obs.amp.obs_amp_rfdr,	obs.atn.obs_atn);
		tau1;
		tau1;
		obs_width_rfdr,	(obs.gate,	obs.phs.obs_phs_rfdr+  0,	obs.amp.obs_amp_rfdr,	obs.atn.obs_atn);
		tau1;
		tau1;
		obs_width_rfdr,	(obs.gate,	obs.phs.obs_phs_rfdr+ 90,	obs.amp.obs_amp_rfdr,	obs.atn.obs_atn);
		tau1;

		tau1;
		obs_width_rfdr,	(obs.gate,	obs.phs.obs_phs_rfdr+ 90,	obs.amp.obs_amp_rfdr,	obs.atn.obs_atn);
		tau1;
		tau1;
		obs_width_rfdr,	(obs.gate,	obs.phs.obs_phs_rfdr+180,	obs.amp.obs_amp_rfdr,	obs.atn.obs_atn);
		tau1;
		tau1;
		obs_width_rfdr,	(obs.gate,	obs.phs.obs_phs_rfdr+ 90,	obs.amp.obs_amp_rfdr,	obs.atn.obs_atn);
		tau1;
		tau1;
		obs_width_rfdr,	(obs.gate,	obs.phs.obs_phs_rfdr+180,	obs.amp.obs_amp_rfdr,	obs.atn.obs_atn);
		tau1;

		tau1;
		obs_width_rfdr,	(obs.gate,	obs.phs.obs_phs_rfdr+180,	obs.amp.obs_amp_rfdr,	obs.atn.obs_atn);
		tau1;
		tau1;
		obs_width_rfdr,	(obs.gate,	obs.phs.obs_phs_rfdr+270,	obs.amp.obs_amp_rfdr,	obs.atn.obs_atn);
		tau1;
		tau1;
		obs_width_rfdr,	(obs.gate,	obs.phs.obs_phs_rfdr+180,	obs.amp.obs_amp_rfdr,	obs.atn.obs_atn);
		tau1;
		tau1;
		obs_width_rfdr,	(obs.gate,	obs.phs.obs_phs_rfdr+270,	obs.amp.obs_amp_rfdr,	obs.atn.obs_atn);
		tau1;

		tau1;
		obs_width_rfdr,	(obs.gate,	obs.phs.obs_phs_rfdr+270,	obs.amp.obs_amp_rfdr,	obs.atn.obs_atn);
		tau1;
		tau1;
		obs_width_rfdr,	(obs.gate,	obs.phs.obs_phs_rfdr+  0,	obs.amp.obs_amp_rfdr,	obs.atn.obs_atn);
		tau1;
		tau1;
		obs_width_rfdr,	(obs.gate,	obs.phs.obs_phs_rfdr+270,	obs.amp.obs_amp_rfdr,	obs.atn.obs_atn);
		tau1;
		tau1;
		obs_width_rfdr,	(obs.gate,	obs.phs.obs_phs_rfdr+  0,	obs.amp.obs_amp_rfdr,	obs.atn.obs_atn);
		tau1;

	end loop;

	loop number_baba times
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_exc1,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	tau;
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_exc2,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_exc3,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	tau;
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_exc4,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_exc5,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	tau;
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_exc6,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_exc7,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	tau;
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_exc8,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);

	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_exc9,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	tau;
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_exc10,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_exc11,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	tau;
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_exc12,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_exc13,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	tau;
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_exc14,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_exc15,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	tau;
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_exc16,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);

	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_exc17,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	tau;
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_exc18,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_exc19,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	tau;
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_exc20,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_exc21,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	tau;
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_exc22,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_exc23,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	tau;
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_exc24,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);

	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_exc25,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	tau;
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_exc26,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_exc27,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	tau;
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_exc28,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_exc29,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	tau;
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_exc30,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_exc31,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	tau;
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_exc32,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	end loop;

	0[us] ystep 1/y_sweep;

	loop number_baba times
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_recov1,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	tau;
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_recov2,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_recov3,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	tau;
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_recov4,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_recov5,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	tau;
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_recov6,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_recov7,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	tau;
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_recov8,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);

	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_recov9,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	tau;
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_recov10,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_recov11,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	tau;
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_recov12,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_recov13,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	tau;
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_recov14,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_recov15,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	tau;
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_recov16,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);

	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_recov17,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	tau;
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_recov18,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_recov19,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	tau;
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_recov20,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_recov21,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	tau;
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_recov22,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_recov23,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	tau;
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_recov24,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);

	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_recov25,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	tau;
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_recov26,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_recov27,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	tau;
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_recov28,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_recov29,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	tau;
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_recov30,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_recov31,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);
	tau;
	obs_width_baba,		(obs.gate,	obs.phs.obs_phs_recov32,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);

	end loop;

	z_filter;

	obs_width_90,	(obs.gate,	obs.phs.obs_phs_restore,	obs.amp.obs_amp_pulse,	obs.atn.obs_atn);

	acq (dead_time, delay, obs_phs_acq);
end pulse;