bloch_siegert.m

From Spinach Documentation Wiki
Jump to: navigation, search

Applies Bloch-Siegert corrections to Cartesian control pulses. Takes control operators and their amplitude arrays and returns augmented arrays with the Bloch-Siegert response operator of each control channel appended as a virtual channel whose coefficient vector is the square of the corresponding control amplitude vector. The output arguments are ready for the shaped_pulse_xy.m function, which then propagates the system under the same slice generators that the GRAPE engines use when Bloch-Siegert corrections are enabled. The response operators themselves are not built here: they are taken from spin_system.control.resp_ops, which optimcon.m fills using bss_ops.m. The physical channels are left untouched and the appended channels are added after them, so the first half of each output array is the input.

Syntax

    [ctrl_opers,...
     ctrl_coefs]=bloch_siegert(spin_system,ctrl_opers,...
                                           ctrl_coefs)

Parameters

    spin_system - Spinach spin system object containing the
                  Bloch-Siegert settings added by optimcon()

     ctrl_opers - a cell array of control operators, one per
                  control channel

     ctrl_coefs - a cell array of control coefficient vectors
                  in rad/s, one vector per control channel

Outputs

     ctrl_opers - an augmented cell array of control opera-
                  tors, with the response operator of each
                  channel appended

     ctrl_coefs - an augmented cell array of coefficient vec-
                  tors, with the squared amplitude vector of
                  each channel appended

Notes

Note: the augmented arrays are only valid for the piecewise-constant propagation methods of shaped_pulse_xy; piecewise-linear methods would interpolate the squared coefficients, which does not correspond to the square of the interpolated control amplitude.

See also

bss_ops.m, shaped_pulse_xy.m, optimcon.m, Optimal control module

Version 2.13, authors: Aditya Dev, Ilya Kuprov