Calculates the steady-state solutions of the Bloch equations with field modulation.

[t,My] = blochsteady(...);
[t,Mx,My,Mz] = blochsteady(...);

See also the user guide on how to use blochsteady.


blochsteady calculates the steady-state solution of the Bloch equations for a spin-1/2 in the presence of field modulation. This is a general solver. It correctly treats all passage and saturation regimes.


The function returns the three time-dependent components of the magnetization.

The time t spans one modulation period. For example, for a 100 kHz modulation frequency, the period is 10 μs.

If no outputs are requested, blochsteady plots the result.

There are several inputs. Unlike other EasySpin functions, these are not grouped in spin system and experimental structure (although this will likely change in a future release).

Inputs: Spin system parameters

The first few input parameters contain information from the spin system necessary for the calculation.

g is the g value of the S=1/2 electron spin.
T1 is the longitudinal relaxation time of the spin, in microseconds.
T2 is the transverse relaxation time of the spin, in microseconds.
Inputs: Experimental parameters

The next few input parameters provide experimental settings.

deltaB0 is the static field offset, in mT. This is the difference between the applied magnetic field and the resonance field of the spin.
B1 is the amplitude of the oscillating microwave magnetic field, in mT.
ModAmp is the peak-to-peak amplitude of the modulation field, in mT.
ModFreq is the field modulation frequency, in kHz.
Input: Calculation options

The structure Opt collects calculation settings. Opt need not be specified, in which case default values for all fields are used. The field names and their possible values are as follows.

Number of points in the output.
Maximum Fourier order. If this is not given, blochsteady automatically sets it high enough such that the output is accurate.
Method for constructing the time-domain signal. Opt.Method = 'td' indicates time-domain evolution, which is straightforward, but slow. Opt.Method = 'fft' indicates Fourier transform, which is faster and therefore the default.
Determines how much information blochsteady prints to the command window. If Opt.Verbosity=0, pepper is silent. 1 logs relevant information, 2 gives more details.

Here is a simple example.

g = 2;    % g factor
T1 = 10;  % longitudinal relaxation time, us
T2 = 2;   % transverse relaxation time, us

deltaB0 = -0.05;    % field offset, mT
B1 = 0.002;         % microwave field amplitude, mT
ModAmp = 0.3;       % peak-to-peak field modulation amplitude, mT
ModFreq = 50;       % field modulation frequency, kHz

[t,My] = blochsteady(g,T1,T2,deltaB0,B1,ModAmp,ModFreq);


blochsteady sets up a linear system of equations in the Fourier coefficients of the magnetization components. blochsteady automatically determines the maximum Fourier coefficient necessary to provide a converged solution.

See also