Varian pulse declarations are fundamentally different from Bruker's.
For example, consider this in Bruker'ese:
(p21 ph1 d21):f3 (p12:sp2 ph1):f2
What's interesting here?
- square pulse
p21
on channel f3
starts simultaneously with shaped pulse sp2
at power setting pl2
on channel f2
- delay
d21
starts immediately after square pulse p21
- the sequence continues until either
d2
or shaped pulse sp2
finish - whichever comes first
- notice that entry for
f3
precedes that for f2
- order of those entries actually does not matter
- entry for
f1
is not present as there is no pulse at channel 1
ph1
entry after p21
and pl2:sp2
instructs the instrument to use phase table 1 for phase cycling of both pulses (not so relevant for this discussion)
All of that will be quite different in the Varian programming environment.
Square one pulse statements
Here are the statements for the specification of single square RF
pulses from the Varian C
programming language library:
//it is important to note that phase variables are special in Varian
//those are so-called real time variables that belong directly to the console
//Varian real time variables are initialized using special function calls
pulse(width, phase); //pulse on observe channel of width and phase
//pre-pulse and after-pulse gating delays or rof1 and rof2
//are added implicitly
rgpulse(width, phase, rg1, rg2); //same but gating delays rg1 and rg2 are explicit
The following six are directly modeled after the two statements above
but apply to decoupler channels (basically your channel 2,3 and 4)
decpulse(width, phase);//first decoupler - a.k.a channel 2
decrgpulse(width, phase, rg1, rg2);
dec2pulse(width, phase);//second decoupler - channel 3
dec2rgpulse(width, phase, rg1, rg2);
dec3pulse(width, phase);//third decoupler - channel 4
dec3rgpulse(width, phase, rg1, rg2);
Shaped one pulse statements
Notice that statements above did not provide shaped pulses, there are separate commands for the shaped pulses, listed below:
shaped_pulse(pattern, width, phase, rg1, rg2);//pattern - is the extra variable
Pattern - is a C
programming language string containing basename of the file that has details of that particular shaped pulse - the waveform
. For example, if you want to use file gauss.RF
probably located in the directory ~/vnmrsys/shapelib/
, use "gauss"
for the pattern (double quotes are important - they delimit string constants in C
).
Likewise, there are statements for the shaped pulses on other channels - they directly follow the pattern of square one pulse statements: decshaped_pulse(...)
, dec2shaped_pulse(...)
, and dec3_shapedpulse(...)
. Function call signature (type and order of parameters) is same as those for the shaped_pulse(...)
function.
Simultaneous pulses
The pattern seen in single pulse statements translates onto simultaneous pulse statements.
Important notes about Varian's simultaneous pulse statements:
- you first have to choose on how many channels you want to pulse simultaneously in a rather special way: if you want to pulse on channels 2 and 3 - the correct choice will be three channels - because you can never omit the "lower" channels (observe channel or number 1 in this case).
- pulses are always co-centered
if you want to edge-align pulses, or insert delays into simultaneous pulse groups - you will have to use one of the simultaneous shaped pulse statements and explicitly code that stuff into the waveform .RF
files
gating delays rg1
and rg2
apply to the widest pulse within the group
- if you want to simultaneously apply square and shaped pulses - use one of the "shaped" statements and emulate the square pulse with a simple shaped pulse file (probably you have one called "square.RF")
- unlike in Bruker format - order of parameters matters in
C
function calls
- if you want to omit a pulse on one of the channels, use
""
empty string for the shape name and 0 (number zero) for the pulse width and a special real time variable zero
- for the phase
The relevant statements are below:
//square simultaneos pulses
simpulse(obswidth, decwidth, obsphase, decphase, rg1, rg2);
sim3pulse(obswidth, decwidth, dec2width, obsphase, decphase, dec2phase, rg1, rg2);
sim4pulse(<same as above but two more parameters>);
//shaped simultaneous pulses
simshaped_pulse(obsshape, decshape, obswidth, decwidth, obsphase, \
decphase, rg1, rg2);//backslash above is just a line wrap
//continue the pattern above for:
sim2shaped_pulse(...);
sim3shaped_pulse(...);
btw, this forum uses "karma" reputation to gradually allow certain things - including voting. Maybe barriers are a tad too high at the moment... I should probably attend this issue. Anyway at 15 points you can upvote :). faq page has more details. - Evgeny Fadeev (Feb 27 '10 at 09:09)