make_arbitrary_rf

make_arbitrary_rf#

pypulseqpp.make_arbitrary_rf()[source]#

Create an RF pulse with the given pulse shape.

Parameters:
  • signal (numpy.ndarray) – Arbitrary waveform.

  • flip_angle (float) – Flip angle in radians.

  • bandwidth (float, default=0) – Bandwidth in Hertz (Hz).

  • delay (float, default=0) – Delay in seconds (s) of accompanying slice select trapezoidal event.

  • dwell (float, default=0) – Temporal sampling step of waveform. If set to 0, will use system.rf_raster_time.

  • freq_offset (float, default=0) – Frequency offset in Hertz (Hz).

  • no_signal_scaling (bool, default=False) – If set to True no rescaling of the RF amplitude will happen. E.g. for adiabatic pulses.

  • max_grad (float, default=system.max_grad) – Maximum gradient strength of accompanying slice select trapezoidal event.

  • max_slew (float, default=system.max_slew) – Maximum slew rate of accompanying slice select trapezoidal event.

  • phase_offset (float, default=0) – Phase offset in Hertz (Hz).a

  • return_gz (bool, default=False) – Boolean flag to indicate if slice-selective gradient has to be returned.

  • slice_thickness (float, default=0) – Slice thickness (m) of accompanying slice select trapezoidal event. The slice thickness determines the area of the slice select event.

  • system (Opts, default=Opts()) – System limits.

  • time_bw_product (float, default=0) – Time-bandwidth product.

  • use (str, default='undefined') – Use of arbitrary radio-frequency pulse event. Must be one of ‘excitation’, ‘refocusing’, ‘inversion’, ‘saturation’, ‘preparation’, ‘other’, ‘undefined’.

  • freq_ppm (float, default=0) – PPM frequency offset.

  • phase_ppm (float, default=0) – PPM phase offset.

  • center (float, default=None) – RF center (s).

Returns:

  • rf (SimpleNamespace) – Radio-frequency pulse event with arbitrary pulse shape.

  • gz (SimpleNamespace, optional) – Slice select trapezoidal gradient event accompanying the arbitrary radio-frequency pulse event.

Raises:

ValueError – If invalid use parameter is passed. If signal with ndim > 1 is passed. If return_gz=True, and slice_thickness and bandwidth are not passed.

Notes

This is PyPulseq’s factory; the event it builds is returned with its fields in slots.