Revision history [back]
click to hide/show revision 1
initial version

posted Feb 28 '10 at 08:52

Evgeny%20Fadeev's gravatar image

Evgeny Fadeev
5771

Hello, do I understand you correctly - you are trying to translate Bruker shaped pulse statement to Varian? Varian pulse declarations are fundamentally different from Bruker's. For example, consider this: (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` - note that shaped pulse is executed simultaneously with the square pulse - 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` All of that will be quite different in the Varian programming environment.
click to hide/show revision 2
No.1 Revision

posted Feb 28 '10 at 09:11

Evgeny%20Fadeev's gravatar image

Evgeny Fadeev
5771

Hello, do I understand you correctly - you are trying to translate Bruker shaped pulse statement to Varian?

Varian pulse declarations are fundamentally different from Bruker's.

For example, consider this:

(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
  • note that shaped pulse is executed simultaneously with the square pulse
  • 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.

Here are the statements for the specification of 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
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);
decrgpulse(width, phase, rg1, rg2);
dec2pulse(width, phase);
dec2rgpulse(width, phase, rg1, rg2);
dec3pulse(width, phase);
dec3rgpulse(width, phase, rg1, rg2);
click to hide/show revision 3
No.2 Revision

posted Feb 28 '10 at 09:12

Evgeny%20Fadeev's gravatar image

Evgeny Fadeev
5771

Hello, do I understand you correctly - you are trying to translate Bruker shaped pulse statement to Varian?

Varian pulse declarations are fundamentally different from Bruker's.

For example, consider this:

(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
  • note that shaped pulse is executed starts simultaneously with the square pulse
  • 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.

Here are the statements for the specification of 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
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);
decrgpulse(width, phase, rg1, rg2);
dec2pulse(width, phase);
dec2rgpulse(width, phase, rg1, rg2);
dec3pulse(width, phase);
dec3rgpulse(width, phase, rg1, rg2);
click to hide/show revision 4
No.3 Revision

posted Feb 28 '10 at 09:13

Evgeny%20Fadeev's gravatar image

Evgeny Fadeev
5771

Hello, do I understand you correctly - you are trying to translate Bruker shaped pulse statement to Varian?

Varian pulse declarations are fundamentally different from Bruker's.

For example, consider this:

(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
  • note that shaped pulse starts simultaneously with the square pulse
  • 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.

Here are the statements for the specification of 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
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);
decrgpulse(width, phase, rg1, rg2);
dec2pulse(width, phase);
dec2rgpulse(width, phase, rg1, rg2);
dec3pulse(width, phase);
dec3rgpulse(width, phase, rg1, rg2);
click to hide/show revision 5
No.4 Revision

posted Feb 28 '10 at 09:14

Evgeny%20Fadeev's gravatar image

Evgeny Fadeev
5771

Hello, do I understand you correctly - you are trying to translate Bruker shaped pulse statement to Varian?

Varian pulse declarations are fundamentally different from Bruker's.

For example, consider this:

(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.

Here are the statements for the specification of 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
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);
decrgpulse(width, phase, rg1, rg2);
dec2pulse(width, phase);
dec2rgpulse(width, phase, rg1, rg2);
dec3pulse(width, phase);
dec3rgpulse(width, phase, rg1, rg2);

//notice that nowhere above we have used shaped pulses
click to hide/show revision 6
No.5 Revision

posted Feb 28 '10 at 09:15

Evgeny%20Fadeev's gravatar image

Evgeny Fadeev
5771

Hello, do I understand you correctly - you are trying to translate Bruker shaped pulse statement to Varian?

Varian pulse declarations are fundamentally different from Bruker's.

For example, consider this:

(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.

Here are the statements for the specification of 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
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 

The following six are directly modeled after the two statements above //but but apply to decoupler channels (basically your channel 2,3 and 4) 4)

decpulse(width, phase);
decrgpulse(width, phase, rg1, rg2);
dec2pulse(width, phase);
dec2rgpulse(width, phase, rg1, rg2);
dec3pulse(width, phase);
dec3rgpulse(width, phase, rg1, rg2);

//notice that 

Notice that:

  • nowhere above we have we've used shaped pulses pulses
  • statements were one-pulse only
click to hide/show revision 7
No.6 Revision

posted Feb 28 '10 at 09:24

Evgeny%20Fadeev's gravatar image

Evgeny Fadeev
5771

Hello, do I understand you correctly - you are trying to translate Bruker shaped pulse statement to Varian?

Varian pulse declarations are fundamentally different from Bruker's.

For example, consider this:

(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.

Varian one pulse statements

Here are the statements for the specification of single 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
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);
decrgpulse(width, phase, rg1, rg2);
dec2pulse(width, phase);
dec2rgpulse(width, phase, rg1, rg2);
dec3pulse(width, phase);
dec3rgpulse(width, phase, rg1, rg2);

Notice that:

  • nowhere that statements above we've used do not provide shaped pulses
  • statements were one-pulse only
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. 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).

click to hide/show revision 8
No.7 Revision

posted Feb 28 '10 at 09:29

Evgeny%20Fadeev's gravatar image

Evgeny Fadeev
5771

Hello, do I understand you correctly - you are trying to translate Bruker shaped pulse statement to Varian?

Varian pulse declarations are fundamentally different from Bruker's.

For example, consider this:

(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.

Varian

Square one pulse statements

Here are the statements for the specification of single 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
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);
decrgpulse(width, phase, rg1, rg2);
dec2pulse(width, phase);
dec2rgpulse(width, phase, rg1, rg2);
dec3pulse(width, phase);
dec3rgpulse(width, phase, rg1, rg2);

Shaped one pulse statements

Notice that statements above do 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. 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(<parameters same as in shaped_pulse>), dec2shaped_pulse(...), and dec3_shapedpulse(...).

click to hide/show revision 9
No.8 Revision

posted Feb 28 '10 at 09:38

Evgeny%20Fadeev's gravatar image

Evgeny Fadeev
5771

Hello, do I understand you correctly - you are trying to translate Bruker shaped pulse statement to Varian?

Varian pulse declarations are fundamentally different from Bruker's.

For example, consider this:

(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 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
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);
decrgpulse(width, phase, rg1, rg2);
dec2pulse(width, phase);
dec2rgpulse(width, phase, rg1, rg2);
dec3pulse(width, phase);
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. 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(<parameters same as in shaped_pulse>), dec2shaped_pulse(...), and dec3_shapedpulse(...).

Simultaneous pulses

The pattern shown above translates onto Varian simultaneous pulse statements.

One important thing to note is that you will first have to choose on how many channels you want to apply simultaneous pulses, and secondly it is impossible to omit entries for the "lower" channels if you need to pulse on say channel3 (decoupler 2 in Varian nomenclature).

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);
//continue the pattern above for:
sim2shaped_pulse(...);
sim3shaped_pulse(...);
click to hide/show revision 10
No.9 Revision

posted Feb 28 '10 at 09:46

Evgeny%20Fadeev's gravatar image

Evgeny Fadeev
5771

Hello, do I understand you correctly - you are trying to translate Bruker shaped pulse statement to Varian?

Varian pulse declarations are fundamentally different from Bruker's.

For example, consider this:

(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 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
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);
decrgpulse(width, phase, rg1, rg2);
dec2pulse(width, phase);
dec2rgpulse(width, phase, rg1, rg2);
dec3pulse(width, phase);
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. 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(<parameters same as in shaped_pulse>), dec2shaped_pulse(...), and dec3_shapedpulse(...).

Simultaneous pulses

The pattern shown above translates onto Varian simultaneous pulse statements.

One important thing to note is that Important notes about simultaneous pulse statements:

  • you will first have to choose on how many channels you want to apply simultaneous pulses, and secondly it is impossible 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 entries for the "lower" channels (observe channel or number 1 in this case).
  • pulses are always co-centered
  • gating delays rg1 and rg2 apply to the widest pulse within the group
  • if you need to pulse on say channel3 (decoupler 2 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 Varian nomenclature).

    Bruker format - order of parameters matters in C function calls

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);
//continue the pattern above for:
sim2shaped_pulse(...);
sim3shaped_pulse(...);
click to hide/show revision 11
No.10 Revision

posted Feb 28 '10 at 09:47

Evgeny%20Fadeev's gravatar image

Evgeny Fadeev
5771

Hello, do I understand you correctly - you are trying to translate Bruker shaped pulse statement to Varian?

Varian pulse declarations are fundamentally different from Bruker's.

For example, consider this:

(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 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
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);
decrgpulse(width, phase, rg1, rg2);
dec2pulse(width, phase);
dec2rgpulse(width, phase, rg1, rg2);
dec3pulse(width, phase);
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. 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(<parameters same as in shaped_pulse>), dec2shaped_pulse(...), and dec3_shapedpulse(...).

Simultaneous pulses

The pattern shown above translates onto Varian simultaneous pulse statements.

Important notes about 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
  • 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

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);
rg2);//backslash above is just a line wrap
//continue the pattern above for:
sim2shaped_pulse(...);
sim3shaped_pulse(...);
click to hide/show revision 12
No.11 Revision

posted Feb 28 '10 at 09:48

Evgeny%20Fadeev's gravatar image

Evgeny Fadeev
5771

Hello, do I understand you correctly - you are trying to translate Bruker shaped pulse statement to Varian?

Varian pulse declarations are fundamentally different from Bruker's.

For example, consider this:

(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 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
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);
decrgpulse(width, phase, rg1, rg2);
dec2pulse(width, phase);
dec2rgpulse(width, phase, rg1, rg2);
dec3pulse(width, phase);
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. 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(<parameters same as in shaped_pulse>), dec2shaped_pulse(...), and dec3_shapedpulse(...).

Simultaneous pulses

The pattern shown above seen in single pulse statements translates onto Varian 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
  • 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

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(...);
click to hide/show revision 13
No.12 Revision

posted Feb 28 '10 at 09:51

Evgeny%20Fadeev's gravatar image

Evgeny Fadeev
5771

Hello, do I understand you correctly - you are trying to translate Bruker shaped pulse statement to Varian?

Varian pulse declarations are fundamentally different from Bruker's.

For example, consider this:

(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 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
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);
decrgpulse(width, phase, rg1, rg2);
dec2pulse(width, phase);
dec2rgpulse(width, phase, rg1, rg2);
dec3pulse(width, phase);
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. 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(<parameters same as in shaped_pulse>), dec2shaped_pulse(...), and dec3_shapedpulse(...).

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
  • 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(...);
click to hide/show revision 14
No.13 Revision

posted Feb 28 '10 at 13:52

Evgeny%20Fadeev's gravatar image

Evgeny Fadeev
5771

Hello, do I understand you correctly - you are trying to translate Bruker shaped pulse statement to Varian?

Varian pulse declarations are fundamentally different from Bruker's.

For example, consider this: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 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
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);
decrgpulse(width, phase, rg1, rg2);
dec2pulse(width, phase);
dec2rgpulse(width, phase, rg1, rg2);
dec3pulse(width, phase);
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. 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(<parameters same as in shaped_pulse>), dec2shaped_pulse(...), and dec3_shapedpulse(...).

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
  • 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(...);
click to hide/show revision 15
No.14 Revision

posted Feb 28 '10 at 13:59

Evgeny%20Fadeev's gravatar image

Evgeny Fadeev
5771

Hello, do I understand you correctly - you are trying to translate Bruker shaped pulse statement to Varian?

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 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
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);
phase);//first decoupler - a.k.a channel 2
decrgpulse(width, phase, rg1, rg2);
dec2pulse(width, phase);
phase);//second decoupler - channel 3
dec2rgpulse(width, phase, rg1, rg2);
dec3pulse(width, phase);
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. 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(<parameters same as in shaped_pulse>), dec2shaped_pulse(...), and dec3_shapedpulse(...).

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 shaped pulse 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(...);
click to hide/show revision 16
No.15 Revision

posted Feb 28 '10 at 13:59

Evgeny%20Fadeev's gravatar image

Evgeny Fadeev
5771

Hello, do I understand you correctly - you are trying to translate Bruker shaped pulse statement to Varian?

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
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. 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(<parameters same as in shaped_pulse>), dec2shaped_pulse(...), and dec3_shapedpulse(...).

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 shaped pulse 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(...);
click to hide/show revision 17
No.16 Revision

posted Mar 01 '10 at 10:38

Evgeny%20Fadeev's gravatar image

Evgeny Fadeev
5771

Hello, do I understand you correctly - you are trying to translate Bruker shaped pulse statement to Varian?

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. 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(<parameters same as in shaped_pulse>), dec2shaped_pulse(...), and dec3_shapedpulse(...).

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 shaped pulse 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(...);
click to hide/show revision 18
No.17 Revision

posted Mar 01 '10 at 10:41

Evgeny%20Fadeev's gravatar image

Evgeny Fadeev
5771

Hello, do I understand you correctly - you are trying to translate Bruker shaped pulse statement to Varian?

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. 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(<parameters same as in shaped_pulse>), dec2shaped_pulse(...), and dec3_shapedpulse(...).

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 shaped pulse 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(...);
click to hide/show revision 19
No.18 Revision

posted Mar 01 '10 at 10:44

Evgeny%20Fadeev's gravatar image

Evgeny Fadeev
5771

Hello, do I understand you correctly - you are trying to translate Bruker shaped pulse statement to Varian?

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(<parameters decshaped_pulse(...), dec2shaped_pulse(...), and dec3_shapedpulse(...). Function call signature (type and order of parameters) is same as in shaped_pulse>), dec2shaped_pulse(...), and dec3_shapedpulse(...).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(...);
click to hide/show revision 20
No.19 Revision

posted Mar 02 '10 at 08:15

Evgeny%20Fadeev's gravatar image

Evgeny Fadeev
5771

Hello, do I understand you correctly - you are trying to translate Bruker shaped pulse statement to Varian?

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(...);

powered by CNPROG