oia_pulse.m
Frequency-swept inversion pulse with offset-independent adiabaticity (Tannus and Garwood, JMR A 120, 133 (1996)). The user supplies an amplitude modulation function; the frequency sweep that makes the adiabaticity factor the same for every offset inside the sweep bandwidth is obtained by integrating the square of that amplitude function.
Syntax
[Cx,Cy,durs,ints,amps,phis,frqs]=...
oia_pulse(npts,dur,bwidth,am_fun)
Parameters
npts - number of discretization points in
the waveform
dur - pulse duration, seconds
bwidth - sweep bandwidth around zero frequ-
ency, Hz
am_fun - amplitude modulation function handle,
F1(tau) in Table 1 of the paper, that
accepts a row vector of normalised ti-
mes in the [-1,1] interval and returns
a row vector of non-negative floating-
point amplitudes that are positive at
all interior points, the scale of which
does not matter because the envelope is
normalised to unit peak internally
Outputs
Cx - real part of the waveform, calibrated to
the same adiabaticity factor as the
inversion pulse in chirp_pulse.m, rad/s
Cy - imag part of the waveform, calibrated to
the same adiabaticity factor as the
inversion pulse in chirp_pulse.m, rad/s
durs - slice durations for piecewise-constant
approximation, seconds
ints - interval durations for piecewise-linear
approximation, seconds
amps - waveform amplitudes, rad/s
phis - waveform phases, radians
frqs - waveform frequencies, Hz
Examples
The example below (see examples/shaped_pulses/shaped_pulse_oia.m) builds the six amplitude functions from Table 1 of the paper for a 50 kHz sweep in 2 ms, and computes the inversion profiles of a single proton:
[Cx,Cy,durs]=oia_pulse(1000,2e-3,50e3,@(tau)sech(asech(0.01)*tau.^8));
rho=shaped_pulse_xy(spin_system,2*pi*offset*Lz,{Lx,Ly},{Cx,Cy},durs,rho0,'expv-pwc');
Notes
The amplitude functions in Table 1 of the paper, written with the 1% edge truncation used there, are
Lorentz @(tau)1./(1+99*tau.^2)
HS @(tau)sech(asech(0.01)*tau)
Gauss @(tau)exp(-log(100)*tau.^2)
Hanning @(tau)(1+cos(pi*tau))/2
HSn @(tau)sech(asech(0.01)*tau.^n)
Sin^n @(tau)1-abs(sin(pi*tau/2)).^n
and the hand drawn pulse in Figure 3 of the paper is any smooth function that is positive inside the pulse and may vanish only at its two ends.
The frequency sweep runs from -bwidth/2 to +bwidth/2; for a chirp pulse, which has a constant amplitude function, the output of this function coincides with chirp_pulse.m.
See also
bruker_write.m, cartesian2polar.m, grad_pulse.m, grad_sandw.m, pmlg5.m, polar2cartesian.m, pulse_shape.m, read_wave.m, restrans.m, rseq_compiler.m, rsequence.m, sawtooth.m, sech_pulse.m, shaped_pulse_af.m, shaped_pulse_xy.m, spinal.m, triwave.m, vg_pulse.m, wave_basis.m, chirp_pulse.m, Kernel_functions
Version 2.11, authors: Ilya Kuprov