本文整理汇总了C++中rgpulse函数的典型用法代码示例。如果您正苦于以下问题:C++ rgpulse函数的具体用法?C++ rgpulse怎么用?C++ rgpulse使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了rgpulse函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: pulsesequence
//.........这里部分代码省略.........
{ tau2 += ( 1.0 / (2.0*sw2) ); if(tau2 < 0.2e-6) tau2 = 0.0; }
tau2 = tau2/2.0;
/* Calculate modifications to phases for States-TPPI acquisition */
if( ix == 1) d2_init = d2;
t1_counter = (int) ( (d2-d2_init)*sw1 + 0.5 );
if(t1_counter % 2)
{ tsadd(t1,2,4); tsadd(t11,2,4); }
if(ni > 1)
kappa = (double)(t1_counter*(del2)) / ( (double) (ni-1) );
else kappa = 0.0;
/* BEGIN PULSE SEQUENCE */
status(A);
decoffset(dof-140*dfrq);
obspower(tpwr);
decpower(pwClvl);
dec2power(pwNlvl);
decpwrf(rf0);
obsoffset(tof);
txphase(zero);
delay(1.0e-5);
if (satmode[A] == 'y')
{
obspower(satpwr);
txphase(zero);
rgpulse(d1,zero,20.0e-6,20.0e-6);
obspower(tpwr); /* Set power for hard pulses */
}
else
{
obspower(tpwr); /* Set power for hard pulses */
delay(d1);
}
decrgpulse(pwC, zero, 0.0, 0.0); /*destroy C13 magnetization*/
zgradpulse(gzlvl1, 0.5e-3);
delay(gstab);
decrgpulse(pwC, one, 0.0, 0.0);
zgradpulse(0.7*gzlvl1, 0.5e-3);
delay(1.1*gstab);
if(dm3[B] == 'y') /*optional 2H decoupling on */
{
dec3unblank();
dec3rgpulse(1/dmf3, one, 0.0, 0.0);
dec3unblank();
setstatus(DEC3ch, TRUE, 'w', FALSE, dmf3);
}
rgpulse(pw, zero, 0.0, 0.0); /* 1H pulse excitation */
zgradpulse(gzlvl3, gt3);
decphase(zero);
delay(0.5*del - gt3);
simpulse(2.0*pw, 2.0*pwC, zero, zero, 0.0, 0.0);
zgradpulse(gzlvl3, gt3);
txphase(one);
示例2: pulsesequence
pulsesequence() {
// Define Variables and Objects and Get Parameter Values
double aXxyxy8 = getval("aXxyxy8");
double aYxyxy8 = getval("aYxyxy8");
double pwXxyxy8 = getval("pwXxyxy8");
double pwYxyxy8 = getval("pwYxyxy8");
double nXYxy8 = getval("nXYxy8");
int counter = nXYxy8;
initval(nXYxy8,v8);
double fXYxy8 = getval("fXYxy8");
double onYxyxy8 = getval("onYxyxy8");
double srate = getval("srate");
DSEQ dec = getdseq("H");
strncpy(dec.t.ch,"dec",3);
putCmd("chHtppm='dec'\n");
strncpy(dec.s.ch,"dec",3);
putCmd("chHspinal='dec'\n");
DSEQ mix = getdseq("Hmix");
strncpy(mix.t.ch,"dec",3);
putCmd("chHmixtppm='dec'\n");
strncpy(dec.s.ch,"dec",3);
putCmd("chHmixspinal='dec'\n");
//--------------------------------------
// Copy Current Parameters to Processed
//-------------------------------------
putCmd("groupcopy('current','processed','acquisition')");
// Dutycycle Protection
DUTY d = init_dutycycle();
d.dutyon = getval("pwX90") + nXYxy8*(pwXxyxy8 + pwYxyxy8);
d.dutyoff = d1 + 4.0e-6;
d.c1 = d.c1 + (!strcmp(dec.seq,"tppm"));
d.c1 = d.c1 + ((!strcmp(dec.seq,"tppm")) && (dec.t.a > 0.0));
d.t1 = getval("rd") + getval("ad") + at;
d.c2 = d.c2 + (!strcmp(dec.seq,"spinal"));
d.c2 = d.c2 + ((!strcmp(dec.seq,"spinal")) && (dec.s.a > 0.0));
d.t2 = getval("rd") + getval("ad") + at;
d.c3 = d.c3 + (!strcmp(mix.seq,"tppm"));
d.c3 = d.c3 + ((!strcmp(mix.seq,"tppm")) && (mix.t.a > 0.0));
d.t3 = nXYxy8*(1.0/srate - pwXxyxy8 - pwYxyxy8);
d.c4 = d.c4 + (!strcmp(mix.seq,"spinal"));
d.c4 = d.c4 + ((!strcmp(mix.seq,"spinal")) && (mix.s.a > 0.0));
d.t4 = nXYxy8*(1.0/srate - pwXxyxy8 - pwYxyxy8);
d = update_dutycycle(d);
abort_dutycycle(d,10.0);
// Set Phase Tables
settable(phX90,4,table1);
settable(phXYxy8,8,table2);
settable(phXxyxy8,4,table3);
settable(phYxyxy8,4,table4);
settable(phRec,4,table5);
settable(ph1Rec,4,table6);
settable(ph2Rec,4,table7);
settable(ph3Rec,4,table8);
int tix = counter%8;
if ((tix == 1) || (tix == 7)) ttadd(phRec,ph1Rec,4);
if ((tix == 2) || (tix == 6)) ttadd(phRec,ph2Rec,4);
if ((tix == 3) || (tix == 5)) ttadd(phRec,ph3Rec,4);
setreceiver(phRec);
// Begin Sequence
txphase(phX90); decphase(zero);
obspwrf(getval("aX90"));
obsunblank(); decunblank(); _unblank34();
delay(d1);
sp1on(); delay(2.0e-6); sp1off(); delay(2.0e-6);
// X Direct Polarization
rgpulse(getval("pwX90"),phX90,0.0,0.0);
// xy8XY Period
if (counter > 0) {
_dseqon(mix);
delay(pwXxyxy8/2.0);
obspwrf(aXxyxy8); dec2pwrf(aYxyxy8);
sub(v1,v1,v1);
if (counter >= 1) {
loop(v8,v9);
getelem(phXYxy8,v1,v4);
incr(v1);
getelem(phXxyxy8,ct,v2);
getelem(phYxyxy8,ct,v3);
add(v4,v2,v2);
add(v4,v3,v3);
txphase(v2); dec2phase(v3);
delay((1.0 - fXYxy8)/srate - pwYxyxy8/2.0 - pwXxyxy8/2.0);
if (onYxyxy8 == 2)
//.........这里部分代码省略.........
示例3: pulsesequence
pulsesequence()
{
double slpwrR = getval("slpwrR"),
slpwR = getval("slpwR"),
mixR = getval("mixR"),
gzlvlz = getval("gzlvlz"),
gtz = getval("gtz"),
zfphinc = getval("zfphinc");
char slpatR[MAXSTR];
int phase1 = (int)(getval("phase")+0.5);
/* LOAD AND INITIALIZE PARAMETERS */
getstr("slpatR",slpatR);
if (strcmp(slpatR,"cw") &&
strcmp(slpatR,"troesy") &&
strcmp(slpatR,"dante"))
abort_message("SpinLock pattern %s not supported!.\n", slpatR);
sub(ct,ssctr,v7);
settable(t1,4,ph1); getelem(t1,v7,v1);
settable(t2,8,ph2); getelem(t2,v7,v2);
settable(t3,8,ph3);
settable(t8,4,ph8); getelem(t8,v7,v8);
settable(t6,8,ph6); getelem(t6,v7,v6);
assign(v1,oph);
if (getflag("zfilt"))
getelem(t3,v7,oph);
add(v2,one,v3);
add(v2,two,v4);
add(v2,three,v5);
if (phase1 == 2)
{incr(v1); incr(v6);} /* hypercomplex method */
/*
mod2(id2,v13);
dbl(v13,v13);
*/
initval(2.0*(double)(((int)(d2*getval("sw1")+0.5)%2)),v13);
add(v1,v13,v1);
add(v6,v13,v6);
add(oph,v13,oph);
/* The following is for flipback pulse */
zfphinc=zfphinc+180;
if (zfphinc < 0) zfphinc=zfphinc+360;
initval(zfphinc,v10);
/* BEGIN ACTUAL PULSE SEQUENCE */
status(A);
obspower(tpwr);
delay(5.0e-5);
if (getflag("sspul"))
steadystate();
if (satmode[0] == 'y')
{
if ((d1-satdly) > 0.02)
delay(d1-satdly);
else
delay(0.02);
satpulse(satdly,v6,rof1,rof1);
}
else
delay(d1);
if (getflag("wet"))
wet4(zero,one);
decpower(dpwr);
status(B);
rgpulse(pw, v1, rof1, rof1);
if (d2 > 0.0)
delay(d2 - POWER_DELAY - (2*pw/PI) - rof1);
else
delay(d2);
obspower(slpwrR);
if (mixR > 0.0)
{
if (dps_flag)
{
if (!strcmp(slpatR,"troesy"))
rgpulse(mixR,v2,0.0,0.0);
else
rgpulse(mixR,v3,0.0,0.0);
}
else
SpinLock(slpatR,mixR,slpwR,v2,v3,v4,v5, v9);
}
if ((getflag("zfilt")) && (getflag("PFGflg")))
{
//.........这里部分代码省略.........
示例4: pulsesequence
pulsesequence()
{
double gzlvl1,qlvl,grise,gstab,gt1,ss,phase;
int icosel,iphase;
ss = getval("ss");
grise=getval("grise");
gstab=getval("gstab");
gt1=getval("gt1");
gzlvl1=getval("gzlvl1");
qlvl=getval("qlvl");
phase=getval("phase");
iphase = (int) (phase + 0.5);
/* DETERMINE STEADY-STATE MODE */
if (ss < 0) ss = (-1) * ss;
else
if ((ss > 0) && (ix == 1)) ss = ss;
else
ss = 0;
initval(ss, ssctr);
initval(ss, ssval);
assign(oph,v2);
assign(oph,v1);
if (iphase == 2)
incr(v1);
/* HYPERCOMPLEX MODE */
initval(2.0*(double)(((int)(d2*getval("sw1")+0.5)%2)),v6);
if ((iphase==1) || (iphase==2))
{add(v1,v6,v1); add(oph,v6,oph);}
status(A);
rcvroff();
delay(d1);
if (getflag("wet")) wet4(zero,one);
rlpower(tpwr,TODEV);
rgpulse(pw,v1,rof1,rof2);
status(B);
if (d2 > rof1 + 4.0*pw/3.1416)
delay(d2 - rof1 - 4.0*pw/3.1416);
status(C);
rgpulse(pw,v2,rof1,rof2);
delay(gt1+2.0*grise+24.4e-6);
rgpulse(2.0*pw,v2,rof1,rof2);
icosel=-1;
rgradient('z',gzlvl1*(double)icosel);
delay(gt1+grise);
rgradient('z',0.0);
txphase(oph);
delay(grise);
rgpulse(pw,v2,rof1,rof2);
rgradient('z',gzlvl1*qlvl);
delay(gt1+grise);
rgradient('z',0.0);
delay(grise);
rcvron();
delay(gstab);
status(D);
}
示例5: pulsesequence
pulsesequence()
{
char rcvrsflag[MAXSTR],
mrmode[MAXSTR];
double compH, Hdpwr, pw90,
pwx = getval("pwx"),
pwxlvl = getval("pwxlvl");
getstr("rcvrs",rcvrsflag);
getstr("mrmode",mrmode);
Hdpwr = 0.0; compH = 1.0; /* initialize the parameters */
if (strcmp(rcvrsflag,"yy"))
printf("rcvrs parameter should be set to 'yy'\n");
/* check decoupling modes */
if ((dm[A] == 'y') || (dm[B] == 'y') || (dm[C] == 'y') || (dm[D] == 'y') || (homo[0] == 'y'))
{
printf("dm should be set to 'nnnn' and homo should set to 'n'");
psg_abort(1);
}
if(mrmode[A] == 'd') /* make the decoupling waveform */
{
Hdpwr = getval("Hdpwr");
compH = getval("compH");
pw90 = getval("pw90");
if(FIRST_FID)
H1dec = pbox_mix("pansyW16", "WALTZ16", Hdpwr, pw90*compH, tpwr);
}
else if(mrmode[A] != 's')
mrmode[A] = 'p'; /* default is 'p' */
status(A);
delay(1.0e-4);
decpower(pwxlvl);
obspower(tpwr);
delay(d1);
status(B);
if(mrmode[A] != 'p') /* sequential acquisition */
{
rgpulse(pw, oph, rof1, rof2);
setactivercvrs("yn");
startacq(alfa);
acquire(np,1.0/sw);
endacq();
delay(1.0e-6);
if(mrmode[A] == 'd')
{
obsunblank();
pbox_xmtron(&H1dec);
}
delay(d2);
decrgpulse(pwx, oph, rof1, rof2);
status(C);
setactivercvrs("ny");
startacq(alfa);
acquire(np,1.0/sw);
endacq();
if(mrmode[A] == 'd')
{
pbox_xmtroff();
obsblank();
}
}
else
{
delay(d2);
simpulse(pw, pwx, oph, oph, rof1, rof2);
status(C);
}
}
示例6: pulsesequence
pulsesequence()
{
char sspul[MAXSTR];
double pwClvl=getval("pwClvl");
/* LOAD VARIABLES AND CHECK CONDITIONS */
getstr("sspul", sspul);
/* STEADY-STATE PHASECYCLING */
/* This section determines if the phase calculations trigger off of (SS - SSCTR)
or off of CT */
ifzero(ssctr);
hlv(ct, v4);
mod4(ct, v3);
elsenz(ssctr);
sub(ssval, ssctr, v12); /* v12 = 0,...,ss-1 */
hlv(v12, v4);
mod4(v12, v3);
endif(ssctr);
/* CALCULATE PHASECYCLE */
/* The phasecycle first performs a 4-step cycle on the third pulse in order
to select for DQC. Second, the 2-step QIS cycle is added in. Third, a
2-step cycle for axial peak suppression is performed on the second pulse.
Fourth, a 2-step cycle for axial peak suppression is performed on the
first pulse. If P-type peaks only are being selected, the 2-step cycle
for P-type peak selection is performed on the first pulse immediately
after the 4-step cycle on the third pulse. */
hlv(v4, v4);
if (phase1 == 0)
{
assign(v4, v6);
hlv(v4, v4);
mod2(v6, v6); /* v6 = P-type peak selection in w1 */
}
hlv(v4, v2);
mod4(v4, v4); /* v4 = quadrature image suppression */
hlv(v2, v1);
mod2(v1, v1);
dbl(v1, v1);
mod2(v2, v2);
dbl(v2, v2);
dbl(v3, v5);
add(v3, v5, v5);
add(v1, v5, v5);
add(v2, v5, v5);
add(v4, v5, v5);
add(v4, v1, v1);
add(v4, v2, v2);
add(v4, v3, v3);
if (phase1 == 0)
{
add(v6, v1, v1);
add(v6, v5, v5);
}
if (phase1 == 2)
incr(v1);
if (phase1 == 3)
add(id2, v1, v1); /* adds TPPI increment to the phase of the
* first pulse */
assign(v5, oph);
/* FOR HYPERCOMPLEX, USE STATES-TPPI TO MOVE AXIALS TO EDGE */
if ((phase1==2)||(phase1==1))
{
initval(2.0*(double)(d2_index%2),v9); /* moves axials */
add(v1,v9,v1); add(oph,v9,oph);
}
/* BEGIN ACTUAL PULSE SEQUENCE CODE */
status(A);
if (sspul[0] == 'y')
{
obspower(pwClvl-12);
rgpulse(200*pw, one, 10.0e-6, 0.0e-6);
rgpulse(200*pw, zero, 0.0e-6, 1.0e-6);
obspower(pwClvl);
}
delay(d1);
status(B);
rgpulse(pw, v1, rof1, 1.0e-6);
if (d2>0.0)
delay(d2 - rof1 - 1.0e-6 -(4*pw)/3.1416);
rgpulse(pw, v2, rof1, 0.0);
rgpulse(pw, v3, 1.0e-6, rof2);
add(v3,one,v8);
delay(d3);
rgpulse(2.0*pw,v8,rof1,rof1);
delay(d3);
status(C);
}
示例7: pulsesequence
//.........这里部分代码省略.........
if(tau2 < 0.2e-6) tau2 = 0.0;
}
tau2 = tau2/2.0;
/* Calculate modifications to phases for States-TPPI acquisition */
if( ix == 1) d2_init = d2 ;
t1_counter = (int) ( (d2-d2_init)*sw1 + 0.5 );
if(t1_counter % 2) {
tsadd(t3,2,4);
tsadd(t10,2,4);
}
if( ix == 1) d3_init = d3 ;
t2_counter = (int) ( (d3-d3_init)*sw2 + 0.5 );
if(t2_counter % 2) {
tsadd(t8,2,4);
tsadd(t10,2,4);
}
/* BEGIN ACTUAL PULSE SEQUENCE */
status(A);
decoffset(dofcacb); /* initially pulse at 43 ppm */
decpower(dhpwr); /* Set Dec1 power for hard 13C pulses */
dec2power(dhpwr2); /* Set Dec2 power for 15N hard pulses */
/* Presaturation Period */
if (fsat[A] == 'y')
{
obspower(tsatpwr); /* Set transmitter power for 1H presaturation */
delay(2.0e-5);
rgpulse(d1,zero,rof1,rof1);
obspower(tpwr); /* Set transmitter power for hard 1H pulses */
delay(2.0e-5);
if(fscuba[A] == 'y')
{
delay(2.2e-2);
rgpulse(pw,zero,2.0e-6,0.0);
rgpulse(2*pw,one,2.0e-6,0.0);
rgpulse(pw,zero,2.0e-6,0.0);
delay(2.2e-2);
}
}
else
obspower(tpwr); /* Set transmitter power for hard 1H pulses */
delay(d1);
txphase(zero);
delay(1.0e-5);
/* Begin Pulses */
status(B);
rcvroff();
delay(20.0e-6);
/* ensure that magnetization originates on H and not 13C */
decrgpulse(pwca90a,zero,0.0,0.0);
delay(0.2e-6);
zgradpulse(gzlvl6,gt6);
delay(gstab);
示例8: pulsesequence
//.........这里部分代码省略.........
if (t2_counter % 2)
{
tsadd(t5, 2, 4);
tsadd(t11, 2, 4);
}
/* BEGIN PULSE SEQUENCE */
status(A);
if (dm3[B] == 'y')
lk_sample();
if ((ni / sw1 - d2) > 0)
delay(ni / sw1 - d2); /*decreases as t1 increases for const.heating */
if ((ni2 / sw2 - d3) > 0)
delay(ni2 / sw2 - d3); /*decreases as t2 increases for const.heating */
delay(d1);
if (dm3[B] == 'y')
{
lk_hold();
lk_sampling_off();
} /*freezes z0 correction, stops lock pulsing */
rcvroff();
obspower(tpwr);
decpower(pwClvl);
dec2power(pwNlvl);
decpwrf(rf0);
obsoffset(tof);
txphase(t3);
delay(1.0e-5);
decrgpulse(pwC, zero, 0.0, 0.0); /*destroy C13 magnetization */
zgradpulse(gzlvl0, 0.5e-3);
delay(1.0e-4);
decrgpulse(pwC, one, 0.0, 0.0);
zgradpulse(0.7 * gzlvl0, 0.5e-3);
delay(5.0e-4);
if (dm3[B] == 'y') /* begins optional 2H decoupling */
{
dec3rgpulse(1 / dmf3, one, 10.0e-6, 2.0e-6);
dec3unblank();
dec3phase(zero);
delay(2.0e-6);
setstatus(DEC3ch, TRUE, 'w', FALSE, dmf3);
}
rgpulse(pw, t3, 0.0, 0.0); /* 1H pulse excitation */
zgradpulse(gzlvl0, gt0); /* 2.0*GRADIENT_DELAY */
decphase(zero);
delay(taua + tau1 - gt0 - 2.0 * GRADIENT_DELAY - 2.0 * pwC);
decrgpulse(2.0 * pwC, zero, 0.0, 0.0);
txphase(zero);
delay(tau1);
rgpulse(2.0 * pw, zero, 0.0, 0.0);
zgradpulse(gzlvl0, gt0);
txphase(one);
decphase(t5);
delay(taua - gt0);
rgpulse(pw, one, 0.0, 0.0);
zgradpulse(gzlvl3, gt3);
delay(2.0e-4);
decrgpulse(pwC, t5, 0.0, 0.0);
delay(tau2);
示例9: pulsesequence
//.........这里部分代码省略.........
if(tau1 < 0.4e-6) tau1 = 0.4e-6;
tau1 = tau1/2.0;
/* Calculate modifications to phases for States-TPPI acquisition */
if( ix == 1) d2_init = d2 ;
t1_counter = (int) ( (d2-d2_init)*sw1 + 0.5 );
if(t1_counter % 2) {
tsadd(t1,2,4);
tsadd(t9,2,4);
}
if( ix == 1) d3_init = d3 ;
t2_counter = (int) ( (d3-d3_init)*sw2 + 0.5 );
if(t2_counter % 2) {
tsadd(t2,2,4);
tsadd(t9,2,4);
}
/* BEGIN ACTUAL PULSE SEQUENCE */
status(A);
obspower(tsatpwr); /* Set transmitter power for 1H presaturation */
decpower(dhpwr); /* Set Dec1 power for hard 13C pulses */
dec2power(dhpwr2); /* Set Dec2 power for hard 15N pulses */
dec3power(dpwr3); /* Set Dec3 power for 2H pulses */
/* Presaturation Period */
if (fsat[0] == 'y')
{
delay(2.0e-5);
rgpulse(d1,zero,2.0e-6,2.0e-6); /* presat */
obspower(tpwr); /* Set transmitter power for hard 1H pulses */
delay(2.0e-5);
if(fscuba[0] == 'y')
{
delay(2.2e-2);
rgpulse(pw,zero,2.0e-6,0.0);
rgpulse(2*pw,one,2.0e-6,0.0);
rgpulse(pw,zero,2.0e-6,0.0);
delay(2.2e-2);
}
}
else
{
delay(d1);
}
obspower(tpwr); /* Set transmitter power for hard 1H pulses */
txphase(zero);
dec2phase(zero);
decphase(zero);
delay(1.0e-5);
/* Begin Pulses */
status(B);
rcvroff();
lk_hold();
delay(20.0e-6);
/* first ensure that magnetization does infact start on H and not C */
示例10: pulsesequence
//.........这里部分代码省略.........
if( pwN > 100.0e-6 )
{
printf("dont fry the probe, pwN too high ! ");
psg_abort(1);
}
if (gzlvlr > 500 || gzlvlr < -500)
{
text_error(" RDt1-gzlvlr must be -500 to 500 (0.5G/cm) \n");
psg_abort(1);
}
/* BEGIN ACTUAL PULSE SEQUENCE */
status(A);
obspower(tpwr);
obsstepsize(0.5);
decpower(pwClvl);
decstepsize(0.5);
obsoffset(tof);
dec2power(pwNlvl);
dec2stepsize(0.5);
decoffset(dof_80); /* Preset the carbon frequency for the C1' carbons */
txphase(zero);
decphase(zero);
dec2phase(zero);
delay(d1);
rcvroff();
dec2rgpulse(pwN, zero, 0.0, 0.0); /*destroy N15 and C13 magnetization*/
decrgpulse(pwC, zero, 0.0, 0.0);
zgradpulse(gzlvl0, 0.5e-3);
delay(1.0e-4);
dec2rgpulse(pwN, one, 0.0, 0.0);
decrgpulse(pwC, one, 0.0, 0.0);
zgradpulse(0.7*gzlvl0, 0.5e-3);
delay(5.0e-4);
delay(lambda);
simpulse(2*pw, 2*pwC, zero, zero, 0.0, 0.0);
dec2phase(t5);
delay(lambda - SAPS_DELAY);
simpulse(pw, pwC, zero, t5, 0.0, 0.0); /* 2x, -2x*/
dec2phase(zero);
txphase(one);
zgradpulse(gzlvl5,gt5);
delay(lambda - SAPS_DELAY - gt5);
simpulse(2*pw, 2*pwC, one, zero, 0.0, 0.0);
zgradpulse(gzlvl5,gt5);
delay(lambda - 2*SAPS_DELAY - gt5 - 2*POWER_DELAY);
decpwrf(4095.0);
txphase(zero);
示例11: pulsesequence
pulsesequence() {
// Define Variables and Objects and Get Parameter Values
CP hx = getcp("HX",0.0,0.0,0,1);
strncpy(hx.fr,"dec",3);
strncpy(hx.to,"obs",3);
putCmd("frHX='dec'\n");
putCmd("toHX='obs'\n");
MPSEQ c7 = getpostc7("c7X",0,0.0,0.0,0,1);
MPSEQ c7ref = getpostc7("c7X",c7.iSuper,c7.phAccum,c7.phInt,1,1);
strncpy(c7.ch,"obs",3);
putCmd("chXc7='obs'\n");
DSEQ dec = getdseq("H");
strncpy(dec.t.ch,"dec",3);
putCmd("chHtppm='dec'\n");
strncpy(dec.s.ch,"dec",3);
putCmd("chHspinal='dec'\n");
// Set Constant-time Period for d2.
if (d2_index == 0) d2_init = getval("d2");
double d2_ = (ni - 1)/sw1 + d2_init;
putCmd("d2acqret = %f\n",roundoff(d2_,12.5e-9));
putCmd("d2dwret = %f\n",roundoff(1.0/sw1,12.5e-9));
//--------------------------------------
// Copy Current Parameters to Processed
//-------------------------------------
putCmd("groupcopy('current','processed','acquisition')");
// Dutycycle Protection
DUTY d = init_dutycycle();
d.dutyon = getval("pwH90") + getval("tHX") + 2.0* getval("pwX90") + c7.t + c7ref.t;
d.dutyoff = d1 + 4.0e-6 + 2.0*getval("tZF");
d.c1 = d.c1 + (!strcmp(dec.seq,"tppm"));
d.c1 = d.c1 + ((!strcmp(dec.seq,"tppm")) && (dec.t.a > 0.0));
d.t1 = d2_ + getval("rd") + getval("ad") + at;
d.c2 = d.c2 + (!strcmp(dec.seq,"spinal"));
d.c2 = d.c2 + ((!strcmp(dec.seq,"spinal")) && (dec.s.a > 0.0));
d.t2 = d2_ + getval("rd") + getval("ad") + at;
d = update_dutycycle(d);
abort_dutycycle(d,10.0);
// Set Phase Tables
settable(phH90,4,table1);
settable(phXhx,4,table2);
settable(phHhx,4,table3);
settable(phXmix1,4,table4);
settable(phXmix2,4,table5);
settable(phRec,4,table6);
// Add STATES-TPPI (STATES + "FAD")
double obsstep = 360.0/(PSD*8192);
if (phase1 == 2)
initval((45.0/obsstep),v1);
else
initval(0.0,v1);
initval((d2*c7.of[0]*360.0/obsstep),v2);
obsstepsize(obsstep);
setreceiver(phRec);
// Begin Sequence
txphase(phXhx); decphase(phH90);
obspwrf(getval("aXhx")); decpwrf(getval("aH90"));
obsunblank(); decunblank(); _unblank34();
delay(d1);
sp1on(); delay(2.0e-6); sp1off(); delay(2.0e-6);
// H to X Cross Polarization
decrgpulse(getval("pwH90"),phH90,0.0,0.0);
decphase(phHhx);
_cp_(hx,phHhx,phXhx);
obspwrf(getval("aX90"));
// Mixing with C7 Recoupling-Period One
rgpulse(getval("pwX90"),phXmix1,0.0,0.0);
obspwrf(getval("aXc7"));
decoff();
xmtrphase(v1); txphase(phXmix1);
delay(getval("tZF"));
decpwrf(getval("aHmix"));
decunblank();
decon();
_mpseq(c7, phXmix1);
decoff();
// F1 Indirect Period For X
xmtrphase(v2); txphase(phXmix2);
//.........这里部分代码省略.........
示例12: pulsesequence
//.........这里部分代码省略.........
}
/* Correct inverted signals for NH2 only spectra */
if ((NH2only[A]=='y') && (T1[A]=='n') && (T1rho[A]=='n') && (T2[A]=='n'))
{
tsadd(t3,2,4);
}
/* BEGIN PULSE SEQUENCE */
status(A);
obspower(tpwr);
decpower(pwClvl);
decpwrf(rfC);
dec2power(pwNlvl);
dec2offset(dof2a);
txphase(zero);
decphase(zero);
dec2phase(zero);
delay(d1);
/* xxxxxxxxxxxxxxxxx CONSTANT SAMPLE HEATING FROM N15 RF xxxxxxxxxxxxxxxxx */
if (T1rho[A]=='y')
{ dec2power(slNlvl);
dec2rgpulse(relaxTmax-relaxT, zero, 0.0, 0.0);
dec2power(pwNlvl);
}
if (T2[A]=='y')
{ ncyc = 8.0*100.0*(relaxTmax - relaxT);
if (BPpwrlimits > 0.5)
{
dec2power(pwNlvl-3.0); /* reduce for probe protection */
pwN=pwN*compN*1.4;
}
if (ncyc > 0)
{ initval(ncyc,v1);
loop(v1,v2);
delay(0.625e-3 - pwN);
dec2rgpulse(2*pwN, zero, 0.0, 0.0);
delay(0.625e-3 - pwN);
endloop(v2);
}
if (BPpwrlimits > 0.5)
{
dec2power(pwNlvl); /* restore normal value */
pwN=getval("pwN");
}
}
/* xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx */
rcvroff();
if (TROSY[A]=='n') dec2rgpulse(pwN, zero, 0.0, 0.0);
decrgpulse(pwC, zero, 0.0, 0.0); /*destroy N15 and C13 magnetization*/
zgradpulse(gzlvl0, 0.5e-3);
delay(1.0e-4);
if (TROSY[A]=='n') dec2rgpulse(pwN, one, 0.0, 0.0);
decrgpulse(pwC, one, 0.0, 0.0);
示例13: pulsesequence
//.........这里部分代码省略.........
assign(v3,oph);
add(oph,v2,oph);
sub(oph,v1,oph);
mod4(oph,oph);
assign(oph,v5);
add(one,v5,v5);
mod2(ct,v7);
dbl(v7,v7);
hlv(v6,v6);
mod2(v6,v6);
dbl(v6,v6);
add(v7,v5,v5); /* the purge pulse is 90 deg. off the receiver phase */
add(v6,v5,v5); /* it is phase alternated every increment */
mod4(v5,v5); /* and also every 64 increments */
}
else
{
assign(ct,v4);
assign(oph,v4); /*v4 used only for normal s2pul- type sequence */
}
add(v3,two,v9);
if (ni > 1.0)
{ abort_message("DgcsteSL is a 2D, not a 3D dosy sequence: please set ni to 0 or 1");
}
/* equilibrium period */
status(A);
obspower(tpwr);
if (sspul[A] == 'y')
{
zgradpulse(gzlvlhs,hsgt);
rgpulse(pw,zero,rof1,rof1);
zgradpulse(gzlvlhs,hsgt);
}
if (satmode[0] == 'y')
{
if (d1 - satdly > 0)
delay(d1 - satdly);
else delay(0.02);
obspower(satpwr);
txphase(v1);
rgpulse(satdly,zero,rof1,rof1);
obspower(tpwr);
delay(1.0e-5);
}
else
{ delay(d1); }
obspower(tpwr);
status(B);
/* first part of bppdel sequence */
if(delflag[0] == 'y')
{ rgpulse(pw, v1, rof1, 0.0); /* first 90, v1 */
if (lkgate_flg[0] == 'y') lk_hold(); /* turn lock sampling off */
if (alt_grd[0] == 'y')
{ ifzero(v10);
zgradpulse(gzlvl1,gt1);
elsenz(v10);
zgradpulse(-1.0*gzlvl1,gt1);
endif(v10);
}
示例14: pulsesequence
//.........这里部分代码省略.........
t1_counter = (int) ( (d2-d2_init)*sw1 + 0.5);
if (t1_counter %2) /* STATES-TPPI */
{
tsadd(t1,2,4);
tsadd(t7,2,4);
}
/* set up so that get (-90,180) phase corrects in F1 if f1180 flag is y */
tau1 = d2;
if (f1180[A] == 'y') tau1 += ( 1.0/(2.0*sw1));
tau1 = tau1/2.0;
/* selective H20 one-lobe sinc pulse */
tpwrs = tpwr - 20.0*log10(pwHs/(compH*pw*1.69)); /*needs 1.69 times more*/
tpwrs = (int) (tpwrs); /*power than a square pulse */
if (tpwrsf_d<4095.0) tpwrs=tpwrs+6.0; /* allow for fine power control via tpwrsf_d */
/* BEGIN ACTUAL PULSE SEQUENCE */
status(A);
obspower(satpwr); /* Set power for presaturation */
decpower(pwClvl); /* Set decoupler1 power to pwClvl */
decpwrf(rf90onco);
dec2power(pwNlvl); /* Set decoupler2 power to pwNlvl */
/* Presaturation Period */
if (satmode[0] == 'y')
{
rgpulse(d1,zero,rof1,rof1);
obspower(tpwr); /* Set power for hard pulses */
}
else
{
obspower(tpwr); /* Set power for hard pulses */
delay(d1);
}
status(B);
rcvroff();
/* eliminate all magnetization originating on 13C */
decpwrf(rf90onco);
decrgpulse(pw90onco,zero,0.0,0.0);
zgradpulse(gzlvl0,gt0);
delay(gstab);
/* shaped pulse for water flip-back */
obspower(tpwrs); obspwrf(tpwrsf_d);
shaped_pulse("H2Osinc_d",pwHs,one,rof1,0.0);
delay(2.0e-6);
obspower(tpwr); obspwrf(4095.0);
/* shaped pulse */
/* transfer from HN to N by INEPT */
rgpulse(pw,zero,rof1,0.0); /* 90 for 1H */
zgradpulse(gzlvl0*1.3,gt0);
delay(gstab);
示例15: pulsesequence
//.........这里部分代码省略.........
/* Calculate modifications to phases for States-TPPI acquisition */
if( ix == 1 ) d2_init = d2;
t1_counter = (int) ( (d2-d2_init)*sw1 + 0.5 );
if( t1_counter %2 ) {
tsadd(t1,2,4);
tsadd(t4,2,4);
tsadd(t6,2,4);
}
/* BEGIN ACTUAL PULSE SEQUENCE */
status(A);
obsoffset(tof);
decoffset(dof+(50*dfrq)); /* 160 ppm for DEC */
dec2offset(dof2-(45*dfrq2)); /* Middle of imino-N15 = 155 ppm */
obspower(tpwr);
obspwrf(4095.0);
decpower(pwClvl);
dec2power(pwNlvl);
txphase(two);
decphase(zero);
dec2phase(zero);
delay(d1);
rcvroff();
delay(20.0e-6);
rgpulse(pw,two,0.0,0.0);
txphase(zero);
zgradpulse(gzlvl5, gt5);
delay(taua - gt5 - 2.0*GRADIENT_DELAY); /* delay < 1/4J(XH) */
sim3pulse(2*pw,0.0,2*pwN,zero,zero,zero,0.0,0.0);
txphase(one);
zgradpulse(gzlvl5, gt5);
delay(taua - gt5 - 2.0*GRADIENT_DELAY);
if (phase1 == 1)
sim3pulse(pw,0.0,pwN,one,zero,t1,0.0,0.0);
if (phase1 == 2)
sim3pulse(pw,0.0,pwN,one,zero,t4,0.0,0.0);
txphase(zero);
decphase(zero);
if (C13refoc[A] == 'y')
{
if (tau1>0.001)
{
zgradpulse(gzlvlr,(0.8*tau1/2.0 - 2.0*GRADIENT_DELAY ));
delay(0.2*tau1/2.0 );
}
else
delay(tau1/2.0);
decrgpulse(pwC,zero,0.0,0.0);
decrgpulse(2.0*pwC,one,2.0e-6,0.0);
decrgpulse(pwC,zero,2.0e-6,0.0);
if (tau1>0.001)