# 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). The pulse is assumed to be piecewise-constant and should be supplied with sufficiently fine time discretization to properly reproduce the waveform.

## Syntax

    rho=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

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

P           - effective pulse propagator, only
available for the 'expm' method


## 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 whenthe effective propagator is required. In very anomalous cases (long pulses, large state vector stacks, very large state spaces), the 'evolution' option might become necessary.