deepmr.bloch.RFPulse#
- class deepmr.bloch.RFPulse(device, nlocs=None, alpha=0.0, phi=0.0, B1=1.0, **props)[source]#
Operator representing a RF pulse.
- Parameters:
device (str) – Computational device (e.g.,
cpu
orcuda:n
, withn=0,1,2...
).nlocs (int) – Number of spatial locations for slice profile simulation.
alpha (torch.Tensor, optional) – Pulse flip angle in
[deg]
of shape(nmodes,)
. The default is0.0 [deg]
.phi (torch.Tensor, optional) – Pulse phase in
[deg]
of shape(nmodes,)
. The default is0.0 [deg]
.B1 (torch.Tensor, optional) – Flip angle scaling due to B1+ inhomogeneities of shape
(nmodes,)
. The default is1.0
.name (str) – Name of the operator.
rf_envelope (torch.Tensor) – Pulse time envelope.
duration (float) – Pulse duration in
[ms]
.b1rms (float) – Pulse root-mean-squared B1 in
[uT / deg]
, when pulse is scaled such asflip angle = 1.0 [deg]
.freq_offset (float) – Pulse frequency offset in
[Hz]
.
Methods
__init__
(device[, nlocs, alpha, phi, B1])apply
(states[, alpha, phi])Apply RF pulse (rotation + saturation).
prepare_rotation
(alpha, phi)Prepare the matrix describing rotation due to RF pulse.
prepare_saturation
(alpha)Prepare the matrix describing saturation due to RF pulse.