shaped_pulse_af.m
Shaped pulse in amplitude-frequency coordinates using Fokker-Planck formalism (Eqn. 33 in http://dx.doi.org/10.1016/j.jmr.2016.07.005).
Syntax
[rho,traj,P]=shaped_pulse_af(spin_system,L0,Lx,Ly,rho,rf_frq_list,rf_amp_list,rf_dur_list,rf_phi,max_rank,method)
Arguments
L0 - drift Liouvillian that continues
running in the background
Lx - X projection of the RF operator
Ly - Y projection of the RF operator
rho - initial state vector or a stack
thereof
rf_frq_list - a vector of RF frequencies at each
time slice, Hz
rf_amp_list - a vector of RF amplitudes at each
time slice, rad/s
rf_dur_list - a vector of time slice durations,
in seconds
rf_phi - RF phase of the first pulse slice
max_rank - maximum rank of the Fokker-Planck
theory, increase until the answer
stops changing, 2 is a good start
method - propagation method, 'expv' for Krylov
propagation, 'expm' for exponential
propagation, 'evolution' for Spinach
evolution function
Outputs
rho - final state vector or a stack thereof
traj - system trajectory as a [1 x (nsteps+1)]
cell array, the first point is the ini-
tial condition
P - effective pulse propagator (expensive),
only available for the 'expm' method
Note: the pulse is assumed to be piecewise-constant and should be
supplied with sufficiently fine time discretisation to pro-
perly reproduce the waveform.
Note: make it dead certain that your freqiency has the correct
sign; wrong sign means that the pulse hits very far away
from your intended location. This is the principal source
of bugs when using this function.
ilya.kuprov@weizmann.ac.il
Examples
An example of a chirped inversion pulse pulse applied to a system with 31 J-coupled protons (examples/nmr_liquids/shaped_pulse_3.m):
Note that only 100 time slices are required in the frequency-amplitude representation: considerably fewer than would be needed in the Cartesian representation used by shaped_pulse_xy.m function.
Notes
Of the three propagation methods, 'expv' is recommended because it runs Krylov propagation that avoids explicit matrix exponentiation. The 'expm' option forces the rather inefficient sparse matrix exponentiation path and should only be used when the effective propagator is required. In very anomalous cases (long pulses, large state vector stacks, very large state spaces), the 'evolution' option might become necessary.
See also
shaped_pulse_xy.m, read_wave.m, vg_pulse.m, pulse_shape.m, chirp_pulse.m
Version 2.2, authors: Ilya Kuprov
