Skip to content

makeSincPulse

Generates a slice-selective sinc pulse and optionally its corresponding slice selection and refocusing gradients. It allows for specifying various parameters to control the pulse's characteristics, including flip angle, duration, frequency and phase offsets, and gradient limits.

Syntax

function [rf, gz, gzr, delay] = makeSincPulse(flip,varargin)

Calling Pattern

mr.makeSincPulse(...)
mr.makeSincPulse('ParameterName', value, ...)

Parameters

This function accepts both positional parameters and name-value pairs.

Required Parameters

Parameter Name Value Type Description Example Units
flip double Desired flip angle of the RF pulse. pi/2 radians

Name-Value Pair Arguments

Parameter Name (string) Value Type Default Description Example
system struct [] System limits struct (e.g., from mr.opts()). If empty, uses default system parameters. mr.opts()
duration double 0 Duration of the sinc pulse. (Units: seconds) 0.004
freqOffset double 0 Frequency offset of the RF pulse. (Units: Hz) 100
phaseOffset double 0 Phase offset of the RF pulse. (Units: radians) pi/4
freqPPM double 0 Frequency offset specified in parts per million (PPM) relative to the Larmor frequency. (Units: ppm) -3.3
phasePPM double 0 Phase offset specified in parts per million (PPM). (Units: ppm) 0
timeBwProduct double 4 Time-bandwidth product of the sinc pulse. 6
apodization double 0 Apodization factor (0 for rectangular window, 1 for Hamming window). 0.5
centerpos double 0.5 Relative position of the pulse center within its duration (0-1). 0.7
maxGrad double 0 Maximum gradient amplitude. (Units: Hz/m) 100e6
maxSlew double 0 Maximum gradient slew rate. (Units: Hz/m/s) 100e6
sliceThickness double 0 Slice thickness for slice-selective excitation. (Units: meters) 0.005
delay double 0 Additional delay after the pulse. (Units: seconds) 0.001
dwell double 0 RF pulse dwell time (if 0, uses system.rfRasterTime). (Units: seconds) 1e-6
use char 'u' Specifies the pulse use ('u' for excitation, 'r' for refocusing). Valid values: ['u', 'r'] 'excitation'

Returns

Output Value Type Description
rf struct Structure containing the RF pulse waveform.
gz struct Structure containing the slice-selection gradient waveform (optional).
gzr struct Structure containing the slice-refocusing gradient waveform (optional).
delay double Delay added after the pulse (seconds).

Examples

% Standard excitation pulse with slice selection
[rf, gz] = mr.makeSincPulse(alpha*pi/180, 'Duration', 3e-3, ...
    'SliceThickness', sliceThickness, 'apodization', 0.42, 'timeBwProduct', 4, ...
    'use', 'excitation');

% 90-degree pulse for spin echo
[rf, gz] = mr.makeSincPulse(pi/2, 'system', lims, 'Duration', 3e-3, ...
    'SliceThickness', thickness, 'apodization', 0.5, 'timeBwProduct', 4, ...
    'use', 'excitation');

% Refocusing pulse with custom parameters
[rf180, gz180] = mr.makeSincPulse(pi, 'system', sys, 'Duration', 5e-3, ...
    'SliceThickness', sliceThickness, 'apodization', 0.5, 'timeBwProduct', 4, ...
    'use', 'refocusing');

See Also

mr.opts, sinc