make_hadamard_pulse

make_hadamard_pulse#

pypulseqpp.make_hadamard_pulse()[source]#

Design a slab pulse whose sub-bands are signed by row row of a Hadamard matrix.

Acquiring every row of an order x order Hadamard matrix and combining the images resolves the slab into order sub-slices (Souza et al., J Comput Assist Tomogr 12:1026, 1988). The SLR design is exact for flip_angle, so the pulse plays at its designed amplitude.

Parameters not listed below are as in make_slr_pulse().

Parameters:
  • order (int) – Sub-slices, a power of two.

  • row (int) – Encoding, in [0, order); row 0 is the plain slab. Sub-slices are counted from the most negative position under a positive gradient.

  • slice_thickness (float, default=0.0) – Whole slab, in m; required when return_gz.

Returns:

The pulse; under return_gz, (rf, gz, gzr): the pulse, its selection gradient and its rephaser.

Return type:

RfEvent or tuple

Raises:

ValueError – If order is not a power of two, row is out of range, or the time-bandwidth product does not fit the pulse’s samples.