make_pins_pulse#
- pypulseqpp.make_pins_pulse()[source]#
Design a PINS pulse exciting a slice every
slice_separationalong z.An SLR envelope for
slice_thicknessis played as hard subpulses with a z blip of area1 / slice_separationbetween each, so the profile repeats everyslice_separationand the power does not depend on the number of slices (Norris et al., Magn Reson Med 66:1234, 2011). The envelope hastime_bw_product * slice_separation / slice_thicknesssubpulses, rounded to an even count, and is scaled toflip_angleby area. The RF centre is the pulse’s midpoint for a linear-phasefilter_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
usetag.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_separationdoes not exceedslice_thickness, or the envelope would have fewer than eight subpulses.