Difference between revisions of "Shaped pulse xy.m"
(→Outputs) |
|||
| Line 4: | Line 4: | ||
==Syntax== | ==Syntax== | ||
| − | [rho,P]=shaped_pulse_xy(spin_system,drift,controls,... | + | [rho,traj,P]=shaped_pulse_xy(spin_system,drift,controls,... |
| − | + | amplitudes,slice_durs,rho,method) | |
==Arguments== | ==Arguments== | ||
| Line 32: | Line 32: | ||
rho - state vector for the final state, or a stack thereof | rho - state vector for the final state, or a stack thereof | ||
| − | + | ||
| − | P - pulse propagator (expensive) | + | traj - system trajectory as a [1 x (nsteps+1)] cell array, |
| + | the first point is the initial condition | ||
| + | |||
| + | P - effective pulse propagator (expensive) | ||
==Examples== | ==Examples== | ||
| Line 47: | Line 50: | ||
| − | ''Version 2. | + | ''Version 2.4, authors: [[Ilya Kuprov]]'' |
Revision as of 15:41, 1 August 2019
Shaped pulse function using Cartesian coordinates. Applies a user-specified pulse shape on user-specified operators while the rest of the drift Liouvillian continues to affect the spin system. The pulse is assumed to be piecewise-constant and should be supplied with sufficiently fine time discretization to properly reproduce the waveform.
Contents
Syntax
[rho,traj,P]=shaped_pulse_xy(spin_system,drift,controls,...
amplitudes,slice_durs,rho,method)
Arguments
drift - the drift Liouvillian, the part of the Liouvillian that
should continue running in the background. This should
include the pulse transmitter offset, if any.
controls - a cell array of control operators corresponding to each
channel, this may include operators for spatial degrees
of freedom, such as gradients and diffusion.
amplitudes - a cell array of control amplitude vectors in angular
frequency units.
slice_durs - a vector containing the duration of each pulse slice,
seconds.
rho - state vector of the initial state, or a stack thereof.
method - propagation method, 'expv' for Krylov propagation,
'expm' for exponential propagation, 'evolution' for
Spinach evolution function
Outputs
rho - state vector for the final state, or a stack thereof
traj - system trajectory as a [1 x (nsteps+1)] cell array,
the first point is the initial condition
P - effective pulse propagator (expensive)
Examples
An example of a Veshtort-Griffin shaped excitation pulse applied to a system with 31 J-coupled protons (examples/nmr_liquids/shaped_pulse_3.m):
Notes
Of the three propagation methods, 'expv' is recommended because it runs Krylov propagation that avoids explicit matrix exponentiation. The 'expm' option forces Matlab's very inefficient matrix exponentiation path and should only be used for debugging pourposes. In very anomalous cases (long pulses, large state vector stacks, very large state spaces), the 'evolution' option might become necessary.
See also
shaped_pulse_af.m, read_wave.m, vg_pulse.m, pulse_shape.m, chirp_pulse_af.m, chirp_pulse_xy.m
Version 2.4, authors: Ilya Kuprov
