Calculates pulse shape and amplitude, frequency and phase modulation functions for a series of pulse types.

[t,IQ] = pulse(...)
[t,IQ,modulation] = pulse(...)

This function calculates pulse shapes for predefined types of shaped pulses. The corresponding excitation profile can be computed with the function exciteprofile.

The output contains the time axis data in t (time in microseconds). IQ contains the pulse shape data with the in-phase component in the real part and the quadrature component in the imaginary part.

The third (optional) output argument contains the structure modulation with the calculated modulation functions for the pulse:

If you don't request any output, pulse plots the calculated pulse shape, modulation functions and excitation profiles.

The input arguments to pulse are Par, a structure containing pulse parameter definitions, and Opt, an optional structure containing options for the calculation.

Par is a structure containing all parameters necessary to specify the pulse shape. The available fields are listed below.

Pulse length, in microseconds.
Time step for the definition of the waveform, in microseconds. If not given, it is automatically determined based on the Nyquist sampling criterion and the input pulse parameters.
Pulse flip angle, in radians. If absent, Par.Flip = pi is used as default.

Flip is used to calculate the pulse amplitude. For amplitude-modulated pulses, it is calculated via the integral of the amplitude modulation function. For frequency-modulated pulses, the procedure described in Jeschke, G., Pribitzer, S., Doll, A. Coherence Transfer by Passage Pulses in Electron Paramagnetic Resonance Spectroscopy. J. Phys. Chem. B 119, 13570–13582 (2015) (DOI: 10.1021/acs.jpcb.5b02964) is used.

Pulse amplitude, in MHz. If Par.Flip is given, Par.Amplitude is ignored.
Critical adiabaticity for the calculation of pulse amplitudes for frequency-swept pulses. If Par.Qcrit is given, Par.Amplitude and Par.Flip are ignored.

The pulse amplitude is calculated from the critical adiabaticity as described in Jeschke, G., Pribitzer, S., Doll, A. Coherence Transfer by Passage Pulses in Electron Paramagnetic Resonance Spectroscopy. J. Phys. Chem. B 119, 13570–13582 (2015) (DOI: 10.1021/acs.jpcb.5b02964).

Pulse frequency, in MHz (default = 0). For frequency-swept pulses the start and end frequencies are required.
Par.Frequency = -10;  % constant frequency offset
Par.Frequency = [-50 50];  % up-sweep
Par.Frequency = [50 20];  % down-sweep
Overall pulse phase, in radians, e.g. 0 for +x, pi/2 for +y, etc. If not given, it defaults to 0.
Pulse shape name in a string structured as 'AM/FM' (or just 'AM'), where AM refers to the amplitude modulation function and FM to the frequency modulation function.

The available amplitude modulation functions are 'rectangular', 'gaussian', 'sinc', 'halfsin', 'quartersin', 'sech', 'WURST', 'GaussianCascade', 'FourierSeries'. Different AM functions can be multiplied by concatenating the keywords as 'AM1*AM2/FM'. The default is 'rectangular'.

The available options for frequency modulation are 'none', 'linear', 'tanh', 'uniformQ'. If only an AM keyword is given, the FM function is set to 'none'.

Here are a few examples:
Par.Type = 'sech/tanh';     % hyperbolic-secant pulse
Par.Type = 'WURST/linear';  % linear chirp pulse with WURST amplitude envelope
Par.Type = 'gaussian';      % constant-frequency gaussian-amplitude pulse

Additional parameters are required to fully specify the various AM and FM functions, see below.

Pulse shape parameters

Depending on the AM function, additional fields need to be specified:

For the definition of the FM functions, in all cases the frequency sweep range needs to be defined in Par.Frequency with start and end frequencies. Also, depending on the FM function, the following additional fields are required:

I, Q or IQ
I and Q data describing an arbitrary pulse shape not included in the predefined options listed below. If only one component is defined, the other is set to zero. The time axis is reconstructed based on Par.tp and the length of the I and Q or IQ vectors. All other input parameters (Par.TimeStep, Par.Flip, Par.Amplitude, Par.Qcrit, Par.Frequency, Par.Phase, Par.Type) are ignored.

With this input, pulse can be used to apply bandwidth compensation to user-defined pulse shapes.

For frequency-swept pulses, pulse can compensate for the resonator bandwidth to achieve offset-independent adiabaticity. In this case, the following additional parameters have to be included in the Par structure:

Microwave frequency (LO), in GHz.
This gives the frequency response of the resonator, in the form Par.FrequencyResponse = [Frequency; TransferFunction] with the (possibly experimental) resonator transfer function in TransferFunction and the corresponding frequency axis in Frequency (in GHz). A complex transfer function input in Par.FrequencyResponse is used directly in the bandwidth compensation. A real transfer function input is assumed to correspond to the magnitude response, and the associated phase response is estimated (see details below).

If FrequencyResponse is given, the alternative input fields ResonatorFrequency and ResonatorQL are ignored.

ResonatorFrequency and ResonatorQL
Resonator center frequency in GHz and loaded Q-factor for the calculation of an ideal transfer function modeling the resonator as a RLC series circuit. Example:
Par.ResonatorFreq = 34.9;  % resonator center frequency, GHz
Par.ResonatorQL = 100;     % loaded Q-factor of resonator

If FrequencyResponse is given, it takes precendence over ResonatorFrequency and ResonatorQL.

The parameters in the Opt structure define different settings for the calculation. The available fields are given below.

Oversampling factor for the automatic determination of the time step (default = 10).
Theoretical background

The pulse amplitude, frequency and phase modulation functions are calculated using the following equations. The origin of the time variable t is at the center of the pulse and runs from -tp/2 to +tp/2.

Amplitude modulation functions:

Frequency and phase modulation functions (BW is the difference between end and start frequencies):

The time axis for the calculation of the modulation functions is centered at zero. The normalized amplitude modulation functions given above are multiplied by Par.Amplitude.

The final pulse shape is calculated as:


where the different terms are the amplitude modulation, the phase modulation, the center frequency and the phase offset defined in Par.Phase.

Compensation for the resonator bandwidth by adaptation of the chirp rates in frequency-swept pulses is implemented as described in Doll, A., Pribitzer, S., Tschaggelar, R., Jeschke, G., Adiabatic and fast passage ultra-wideband inversion in pulsed EPR, J. Magn. Reson. 230, 27-39 (2013), DOI: 10.1016/j.jmr.2013.01.002 and Pribitzer, S., Doll, A., Jeschke, G., SPIDYAN, a MATLAB library for simulating pulse EPR experiments with arbitrary waveform excitation. J. Magn. Reson. 263, 45-54 (2016) (DOI: 10.1016/j.jmr.2015.12.014). For pulses with uniform adiabaticity (sech/tanh and any pulse with a frequency modulation function set to 'uniformQ') both the frequency and the amplitude modulation functions defined above are adjusted to compensate for the resonator profile. For all other pulses, the amplitude modulation function is preserved and only the frequency modulation function is adapted to the provided resonator profile. The phase modulation function is obtained by integration and the phase is set to zero at the center of the pulse.

See also

exciteprofile, rfmixer, transmitter, resonator, evolve, saffron