make_spsp_pulse

make_spsp_pulse#

pulserver.blocks.make_spsp_pulse(system, flip_angle, slice_thickness, spectral_band_edges='water', freq_offset=None, spatial_time_bw_product=4.0, spatial_ripples=(0.01, 0.01), spatial_filter_type='ls', spectral_ripples=(0.02, 0.005), spectral_filter_type='min', use='excitation', verbose=False, plot=False)[source]#

Design a spectral-spatial RF pulse.

This function designs a pulse for simultaneous spatial and spectral selectivity, such as used in MR imaging or spectroscopy sequences. The function returns the gradient and RF waveforms necessary to create the specified spectral-spatial pulse.

Parameters:
  • system (Opts) – System limits.

  • flip_angle (float | Iterable[float]) – Flip angle specification for each spectral band, in [deg]. For water selective pulses (spectral_band_edges="water"), if the user provides a scalar, we assume that the flip angle refers to water and fat flip angle is 0.0 [deg].

  • slice_thickness (float) – Thickness of the slice in [mm].

  • spectral_band_edges (Iterable[float] | str, optional) – Frequency band edge specification in [Hz]. Can also be a string (e.g., "water"), in which case a water-selective pulse is designed and the spectral band is set according to the B0 value.

  • freq_offset (float | None, optional) – Frequency offset in Hertz (Hz).

  • use (str, optional) – Use of radio-frequency pulse. Must be one of "excitation" (default), "refocusing" or "inversion".

  • spatial_time_bw_product (float) – Time-bandwidth product for the spatial dimension.

  • spatial_ripples (Iterable[float]) – Spatial passband and stopband ripples, in the form (pass_ripple, stop_ripple).

  • spatial_filter_type (str, optional) – Type of filter for the spatial dimension: "ms", "ls" (default), "pm", "min", "max".

  • spectral_ripples (Iterable[float]) – Spectral passband and stopband ripples.

  • spectral_filter_type (str, optional) – Type of filter for the spectral dimension: "min" (default), "max", "lin".

  • verbose (bool, optional) – If True, print debug messages. Default is False.

  • plot (bool)

Returns:

rf_block – Dictionary with the following keys:

  • rfSimpleNamespace

    Radio-frequency block pulse event.

  • gzSimpleNamespace

    Slice (or slab) selection event, including (hopefully!) the rephasing lobe.

Return type:

dict

Raises:

ValueError – If invalid use parameter was passed. Must be one of "excitation", "refocusing" or "inversion".