BlochSiegertPreparation#
- class pypulseqpp.sequences.BlochSiegertPreparation[source]#
Bases:
OffResonanceSaturationOff-resonance Fermi pulse for Bloch-Siegert B1 mapping.
By default, no spoiler is played, preserving transverse phase between excitation and readout. Calibration constants describe phase per squared RF amplitude.
- Parameters:
system (Opts) – System limits.
freq_offset_hz (float, default=4000.0) – Offset from water (Hz); flip its sign for the second acquisition.
duration_s (float, default=0.008) – Pulse duration (s).
peak_b1_hz (float, default=500.0) – Plateau amplitude, in Pulseq units.
flat_fraction (float, default=0.8) – Fraction of the duration held at
peak_b1_hz, in(0, 1).transition_fraction (float, default=0.02) – Width of each shoulder, as a fraction of the duration.
dwell_s (float, default=1e-05) – RF raster (s).
spoiling_cycles (float, default=0.0) – Cycles of dephasing the closing spoiler winds across
voxel_size_m. Zero, the default here, omits the spoiler, for the reason above.n_pulses (int, default=1) – Pulses in the train.
voxel_size_m (float, default=0.001) – Length the dephasing is counted over (m).
labels (Sequence[str], default=None) – Counters emitted on the first pulse’s block.
- Attributes:
rf_prep (RfEvent) – The Fermi pulse.
gx_spoil, gy_spoil, gz_spoil (GradEvent) – The closing spoiler, when there is one.
prep_labels (LabelEvent | list[LabelEvent]) – One per name in
labels.kbs (float) – Phase shift per unit squared Pulseq amplitude (rad).
kbs_per_gauss2 (float) – The same constant in rad/G^2.
- Raises:
ValueError – If
freq_offset_hzis zero, a duration or amplitude is not positive, or the envelope fractions are out of range. Ifn_pulsesis below one, or a spoiling argument is out of range.
References
Sacolick et al., B1 mapping by Bloch-Siegert shift, Magn Reson Med 2010;63:1315-1322,
10.1002/mrm.22357.Examples
>>> import pypulseqpp.sequences as design >>> import pypulseqpp as pp >>> pulse = design.BlochSiegertPreparation(pp.Opts()) >>> len(pulse.blocks), round(pulse.kbs_per_gauss2, 1) (1, 86.6)
The pulse is placed far enough off resonance to produce a phase shift with a small flip angle; the residual dip at its offset is the saturation that remains at that frequency offset:
Methods
Build the module's block layout; implemented by the subclass. |
|
Publish events from the caller's locals and register keyword aliases. |
|
Publish named events without requiring prior block registration. |
|
Simulate this module's pulse across off-resonance. |
Attributes