DFS WURST QCPMG pulse program for topSpin2.1 operating system
Contributor: Christian Bonhomme
; dfs_wurst_qcpmg.cb ; written by Stefan Steuernagel, modified by ivan ; pulse program for quadrupolar CPMG sequence ; samples continuously, including ALL pulses and ringdown delays ; may be used with digmod digital ; important: only runs via SGU in channel 1 ; for dfs, see pages 169-182 of AVANCE solids user manual ;parameters: ;d1 : recycle delay ;d3 : = time to allow pulse ringdown 10 to 100 us ;d4 : short delay between DFS sweep and read out pulse ;d6 : = duration of echo ;pl1: =120 dB, not used ;sp1: power level for DFS sweep ;sp2: power level for WURST pulse ;spnam1 : dfs, set by AU program zg_dfs ;aunm : zg_dfs, AU program to calculate DFS sweep duration p2 ; then start acquisition with the command xaua ;p1 : WURST (Wideband, Uniform Rate, and Smooth Truncation) pulse duration ;p2 : DFS sweep duration ;p25: dummy pulse, used for calculations only ;l22 : # of echos to be acquired ;cnst1 : (in kHz) Startfrequency of DFS sweep ;cnst2 : (in kHz) Endfrequency of DFS sweep ;cnst3 : (in ns) timing resolution of DFS sweep, down to 25 ns ;cnst31: non zero spinning frequency even for static sample ;cnst0 : to define DFS sweep as fraction or multiples of rotor period ;setTD : ensure TD exceeds this number ;spiksep : spikelet separation in Hz ;d25 : used for showing setTD in ased ;d26 : used for showing spikesep in ased ;ns : 8*n ;$COMMENT=quadrupolar CPMG sequence, samples continuously, pulses blanked out, requires DRU ;$CLASS=Solids ;$DIM=1D ;$TYPE=half integer quadrupoles ;SUBTYPE=simple 1D ;$OWNER=ivan #include <Avancesolids.incl> define delay echod "echod=((d6+2u-p1)/2)" define delay setTD "setTD=(l22*(d3+p1+d3+1u+d6+1u)+d3+2u)/dw" "d25=setTD" define delay spikesep "spikesep=(1/(d3+p1+d3+1u+d6+1u))" "d26=spikesep" "p25=(1u*cnst1/(cnst3+cnst2))+1u" "p2=1s/(cnst31*cnst0)" ;cnst11 : to adjust t=0 for acquisition, if digmod = baseopt "acqt0=1u*cnst11" 1 ze ;clear data 2 d1 ;relaxation delay (p2:sp1 ph0):f1 ;DFS shape pulse d4 STARTADC ;(1u sync 1u adc ph31 syrec) RESETPHASE ;(1u ph30:r):f1 1u RG_OFF ;setrtp1^5 (p1:sp2 ph1):f1 ;WURST shape pulse echod 3 d3 (p1:sp2 ph2):f1 ;WURST shape pulse d3 1u DWL_CLK_ON ;setrtp1|0 start acquisition d6 RG_ON ;setrtp1|5 1u RG_OFF ;setrtp1^5 lo to 3 times l22 ;next echo d3 1u RG_OFF ;setrtp1^5 1u DWL_CLK_OFF ;setrtp1^0 stop acquisition rcyc=2 ;next scan 10m wr #0 ;save data exit ph0= 0 ph1= 0 0 1 1 2 2 3 3 ph2= 1 3 2 0 3 1 0 2 ph30= 0 ph31= 0 0 1 1 2 2 3 3