make_pins_pulse

make_pins_pulse#

pypulseqpp.make_pins_pulse()[source]#

Design a PINS pulse exciting a slice every slice_separation along z.

An SLR envelope for slice_thickness is played as hard subpulses with a z blip of area 1 / slice_separation between each, so the profile repeats every slice_separation and the power does not depend on the number of slices (Norris et al., Magn Reson Med 66:1234, 2011). The envelope has time_bw_product * slice_separation / slice_thickness subpulses, rounded to an even count, and is scaled to flip_angle by area. The RF centre is the pulse’s midpoint for a linear-phase filter_type ('ls', 'pm', 'ms') and the largest subpulse’s centre otherwise.

Parameters:
  • flip_angle (float) – Nominal flip angle (rad).

  • slice_thickness (float) – Thickness of each slice (m).

  • slice_separation (float) – Distance between slice centres (m); must exceed slice_thickness.

  • time_bw_product (float, default=4.0) – Time-bandwidth product of the envelope.

  • pulse_type ({'st', 'ex', 'se', 'inv', 'sat'}, default='st') – Small-tip, excitation, spin-echo, inversion or saturation envelope.

  • filter_type ({'ls', 'pm', 'min', 'max', 'ms'}, default='ls') – FIR design method of the envelope.

  • passband_ripple (float, default=0.01) – Ripple allowed in the passband.

  • stopband_ripple (float, default=0.01) – Ripple allowed in the stopband.

  • max_b1 (float, default=1.8e-05) – Peak B1, in T; each subpulse is the shortest, on the gradient raster, that stays within it.

  • delay (float, default=0.0) – Delay before the pulse (s).

  • freq_offset (float, default=0.0) – Frequency offset (Hz).

  • phase_offset (float, default=0.0) – Phase offset (rad).

  • max_grad (float, default=0.0) – Gradient limit for the blips and the rephaser, in place of the system’s.

  • max_slew (float, default=0.0) – Slew limit for the blips and the rephaser, in place of the system’s.

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

  • use (str, default='excitation') – Pulseq use tag.

  • freq_ppm (float, default=0.0) – Field-strength-relative frequency offset.

  • phase_ppm (float, default=0.0) – Field-strength-relative phase offset.

Returns:

  • rf (SimpleNamespace) – The subpulse train.

  • gz (SimpleNamespace) – The blip train, an extended trapezoid with the same delay as rf.

  • gzr (SimpleNamespace) – Rephaser of minus the blip area after the RF centre.

Raises:

ValueError – If slice_separation does not exceed slice_thickness, or the envelope would have fewer than eight subpulses.