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.
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
rho - final state vector P - effective pulse propagator, only available for the 'expm' method
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.
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.
Version 2.2, authors: Ilya Kuprov