MultibandExcitation#
- class pypulseqpp.sequences.MultibandExcitation[source]#
Bases:
RfModuleNon-spatially-selective RF excitation with off-resonance sidebands.
Sideband weights are specified as power relative to the central band, not amplitude. A target B1 RMS and TR can instead determine the weights.
- Parameters:
system (pypulseqpp.Opts) – System limits.
flip_angle_deg (float) – On-resonance flip angle (degrees).
duration_s (float) – Pulse duration (s).
band_offset_hz (float) – Sideband offset from the on-resonance band (Hz).
n_bands (int, default=3) – Bands counting the on-resonance one: two for a single sideband, three for a symmetric pair.
sideband_power (float, default=1.0) – Power of each sideband relative to the on-resonance band. Ignored when
b1rms_utis given.b1rms_ut (float, default=None) – Target root-mean-square B1 over the repetition (uT), from which the sideband power is solved. Needs
tr.tr (float, default=None) – The repetition the RMS is taken over (s).
time_bw_product (float, default=4.0) – Time-bandwidth product of the underlying envelope.
use (str, default='saturation') – Pulseq RF-use tag, used by trajectory integration.
- Attributes:
rf (RfEvent) – The modulated pulse.
band_offsets_hz (numpy.ndarray) – Band frequency offsets (Hz), including the on-resonance band.
band_power_fraction (numpy.ndarray) – Share of the total
|B1|^2each band carries.sideband_power (float, default=1.0) – Power of each sideband relative to the on-resonance band, whether it was given or solved.
b1rms_ut (float, default=None) – Root-mean-square B1 achieved over
tr, when one was given.peak_ut (float) – Peak B1 (uT), the quantity limited by the transmit chain.
- Raises:
ValueError – If a size is out of range,
b1rms_utis given withouttr, or the on-resonance band alone already exceeds the requestedb1rms_ut.
Examples
>>> import pypulseqpp.sequences as design >>> import pypulseqpp as pp >>> system = pp.Opts() >>> dual = design.MultibandExcitation( ... system, 7.0, duration_s=2e-3, band_offset_hz=7000.0, n_bands=3, ... b1rms_ut=2.0, tr=30e-3, ... ) >>> dual.band_offsets_hz.tolist() [-7000.0, 0.0, 7000.0] >>> round(dual.b1rms_ut, 6) 2.0
>>> single = design.MultibandExcitation( ... system, 7.0, duration_s=2e-3, band_offset_hz=7000.0, n_bands=2, ... b1rms_ut=2.0, tr=30e-3, ... ) >>> round(single.b1rms_ut, 6) 2.0
>>> single.sideband_power == 2 * dual.sideband_power True
Three bands in frequency and no spatial selectivity:
Methods
Build the module's block layout; implemented by the subclass. |
|
Publish events from the caller's locals and register keyword aliases. |
|
Publish named events without requiring prior block registration. |
|
Simulate this module's pulse across off-resonance. |
Attributes