FrequencySelectiveExcitation

FrequencySelectiveExcitation#

class pypulseqpp.sequences.FrequencySelectiveExcitation[source]#

Bases: RfModule

SLR excitation of a spectral band without spatial selection.

Duration is time_bw_product / bandwidth_hz, rounded up to the RF raster. Absolute-Hz and field-relative ppm offsets are additive.

Parameters:
  • system (pypulseqpp.Opts) – System limits.

  • flip_angle_deg (float) – Nominal flip angle (degrees).

  • bandwidth_hz (float) – Spectral passband (Hz).

  • freq_offset_ppm (float, default=0.0) – Centre of the band, relative to water (ppm). Water itself by default.

  • freq_offset_hz (float, default=0.0) – Centre of the band as a frequency offset (Hz), added to the offset freq_offset_ppm specifies.

  • time_bw_product (float, default=4.0) – Time-bandwidth product. Higher is a squarer band and a longer pulse.

  • pulse_type ({'st', 'ex', 'se', 'inv', 'sat'}, default='st') – SLR design family.

  • use (str, default='excitation') – Pulseq RF-use tag, used by trajectory integration.

  • passband_ripple (float, default=0.01) – Ripple allowed in each band of the spectral profile.

  • stopband_ripple (float, default=0.01) – Ripple allowed in each band of the spectral profile.

Attributes:
  • rf (RfEvent) – The pulse.

  • duration_s (float) – Its length (s), which the passband fixed.

  • bandwidth_hz (float) – The passband asked for.

Raises:

ValueError – If bandwidth_hz or time_bw_product is not positive.

Examples

>>> import pypulseqpp.sequences as design
>>> import pypulseqpp as pp
>>> water = design.FrequencySelectiveExcitation(pp.Opts(), 90.0, bandwidth_hz=200.0)
>>> len(water.blocks), round(water.duration_s * 1e3, 3)
(1, 20.0)
>>> narrow = design.FrequencySelectiveExcitation(pp.Opts(), 90.0, bandwidth_hz=100.0)
>>> narrow.duration_s == 2 * water.duration_s
True

The envelope and the band it tips. Magnetization outside the passband stays longitudinal:

../_images/pypulseqpp-sequences-FrequencySelectiveExcitation-1_00.svg

(svg)#

../_images/pypulseqpp-sequences-FrequencySelectiveExcitation-1_01.svg

(svg)#

Methods

init_module

Build the module's block layout; implemented by the subclass.

publish

Publish events from the caller's locals and register keyword aliases.

register

Publish named events without requiring prior block registration.

sim_rf

Simulate this module's pulse across off-resonance.

Attributes

blocks

Return block tuples in play order, retaining the original event objects.

duration

Duration of the module in seconds.

seq

Sequence holding the module's construction-time block layout.