REM *********************************************************************** REM * * REM * DANTE - GMB 2001 * REM * * REM * DANTE is only a test of the selectivity of a DANTE pulse train * REM * applied to a region of frequencies around the peak of interest. The * REM * pulse sequence is: * REM * * REM * d0 - selpulse(90 or 180) - acquire (x) * REM * * REM * The selective pulse is the DANTE pulse train, and can be either a * REM * 90 or a 180 pulse. The decoupler is used for excitation to have * REM * better control over the resolution of the pulses in the train. Use * REM * this pulse sequence to determine the appropriate parameters of a * REM * DANTE pulse train when planning to include it as part of a larger * REM * pulse sequence. * REM * * REM *********************************************************************** REM Read in dante initial conditions... re "c:\eft\h1\dante.ini" showwin cls print "DANTE pulse train test" print print "This program is designed to run a number of acquisition" print "blocks of NS scans each in which a certain spin will be" print "selectively irradiated using a DANTE pulse train. The offset" print "will be varied by a certain ammount between blocks, so that" print "the selectivity (excitation bandwidth) of the DANTE pulse" print "can be estimated." input "Enter number of experiments:",b cls print "DANTE pulse train test" print print "Slect the frequency range that the DANTE pulse train will" print "sweep. The peak of intereset should be located at the center" print "of the range before starting, and the step of the increment" print "will be calculate according to the number of experiments." input "Enter the frequency range (Hz):",c GETCFG "Z0CAL" l c=c/(90.02*b*l) GETSHIM "Z0" z SETSHIM "Z0" z+c*b/2 cls print "DANTE pulse train test" print print "The relaxation delay needs to be set in the range 1 to 5" print "times the expected T1 for the sample. 2.0 sec is a good" print "general purpose value." input "Enter a relaxation delay (S):",d0 if d0=0 then d0=2 cls print "DANTE pulse train test" print print "Observe and decoupler pulsewidth settings." print define p0 h90 "C:\eft\h1\pulses.txt" 'observe 90 if p0=0 then input "Enter observe 90 degree pulse ",p0 if p0>0 then print "Observe 90 degree pulse is ",p0,"us" define p5 h90lp50 "C:\eft\h1\pulses.txt" 'decoupler 90 at 50 dB if p5=0 then input "Enter decoupler 90 degree pulse ",p5 if p5>0 then print "Decoupler 90 degree pulse is ",p5,"us" print print "The DANTE selective pulse train can be either a 90 or" print "a 180 degree pulse. Slect which pulse to use." input "Enter (0) for a 90 or (1) for a 180:",t cls print "DANTE pulse train test" print print "The pulse train requires a delay between pulses in the" print "train smaller than 1/sw, were SW is the spectral window" print "in which the sample has signals. If the delay value is bigger" print "you may get excitation of other peaks in your spectrum" print "However, make this spectral width as small as possible to" print "achieve greater selectivity." input "Enter the DANTE spectral width (Hz): ",v if v=0 then v=s d2=2e6/v cls print "DANTE pulse train test" print print "The selectivity of the DANTE pulse train can be specified by" print "entering the number of pulses in the train (0) or the desired" print "excitation bandwitdh in Hz (1). Pick one." input "Enter pulses (0) or bandwidth (1):", d3 if d3=0 then goto 100 input "Excitation bandwith (Hz):", d3 REM calculate the number of pulses according to the spectral width and REM excitation bandwidth... d3=1e6/(d3*d2) goto 200 REM if we go with number of pulses is a lot easier... 100 input "Number of pulses in the pulse train:",d3 200 p6=p5/d3 if t=1 then p6=2*p6 cls print "DANTE pulse train test" print print "Enter a file name for the data. The default file my_dante" print "can be used by responding with an . Any file" print "with the same name will be overwritten without warning." input "Enter output file name (data\my_dante):",f$ if f$="" then f$="data\my_dante" cls print "DANTE pulse train test - Final parameter settings" print print "Filename:",f$ print "Number of experiments:",b print "Frequency step per experiment:",c*90.02*l print "Excitation bandwidth (Hz):",1e6/(d3*d2) print "Number of pulses in the train:",d3 print "DANTE maximum offset (Hz):",v input " to run DANTE pulse train test...",g$ cls print "Running DANTE pulse train test..." print print "The spectrometer is set to do",b,"experiments of",n,"scans..." print print "Current offset:",c*90.02*l*b/2,"Hz..." print REM write the 2D file header... WH2D f$ b 0 0 rem will use 3*dw/16 delay before turning receiver on e=3*d/16 rem will use dw/16 delay before turning digitizer on f=d/16 REM Correct the DANTE train delay d2=d2-p6 REM Halve the delay... d2=d2/2 a$ = "0213" PROGRAM "clear" PROGRAM 0 d0 S RX a$ REM Begin DANTE pulse train... PROGRAM + d2 uS PROGRAM + p6 uS DEC FX PX a$ PROGRAM + d2 uS REM End DANTE pulse train... PROGRAM + e uS PROGRAM + f uS RX PROGRAM + 1.0 uS ADC RX PROGRAM + a S RX PROGRAM "coadd" a$ PROGRAM + 1.0 uS PROGRAM "loop" 1 3 d3 'number of pulses in the train... FOR i=1 to b ZERO START d4=c*90.02*l*(b/2 - i) WF f$ i d4 if i=1 then wr "c:\eft\data\pnmr.fid" SETSHIM "Z0" z+c*(b/2 - i) cls print "Running DANTE pulse train test..." print print "DANTE experiment",i,"of",b,"completed..." print print "Current offset:",c*90.02*l*(b/2 - i),"Hz..." print NEXT SLEEP 1 CLS print "DANTE pulse train test finished." print print "Results stored in file:",f$ print print "To process, switch to complex arrayed mode (AR), read in" print "the file (GA), do a baseline correction (BC), and apply a" print "Fourier transform (FT). Then you can display the results" print "of the experiment as a stacked plot (SP)." input " to exit the pulse program...",g$ REM Restore the field to whatever it was before starting... SETSHIM "Z0" z END