dipolarkernel
¶
Computes the dipolar kernel matrix that transforms a distance distribution to a time-domain dipolar signal.
Syntax¶
K = dipolarkernel(t,r)
K = dipolarkernel(t,r,lambda)
K = dipolarkernel(t,r,pathinfo)
K = dipolarkernel(t,r,lambda,B)
K = dipolarkernel(t,r,pathinfo,B)
K = dipolarkernel(___,'Property',Value)
- Parameters
t
- Time axis vector (N-element array), in microsecondsr
- Distance axis vector (M-element array), in nanometerslambda
- Modulation depth (scalar)pathinfo
- Modulation depths, refocusing times, and harmonics (px2 or px3 array) for multiple dipolar pathwaysB
- Background, either vector of values (N-element array) or function handle
- Returns
K
- Dipolar kernel matrix (NxM array)
Description¶
K = dipolarkernel(t,r)
Computes the elementary kernel matrix K
for the time axis t
(in microseconds) and distance axis r
(in nanometers).The dipolar kernel is normalized by , such that it returns a dipolar signal with amplitude 1 at time zero for a normalized distance distribution (i.e.
trapz(r,P)==1
).
K = dipolarkernel(t,r,lambda)
If the modulation depth lambda
(a number between 0 and 1) is specified, then it is included into the kernel matrix.
K = dipolarkernel(t,r,lambda,B)
If the background B
and modulation depth lambda
are specified, then both are included into the kernel matrix. B
can be either an array with the pre-calculated background decay (over t
), or a function handle with a background model.
K = dipolarkernel(t,r,pathinfo)
K = dipolarkernel(t,r,pathinfo,B)
For a multi-pathway DEER signal (e.g, 4-pulse DEER with 2+1 contribution; 5-pulse DEER with 4-pulse DEER residual signal, and more complicated experiments), pathinfo
is a 2D array that contains a list of modulation depths (amplitudes), refocusing times (in microseconds), and optional harmonics for all modulated pathway signals.
Each row of pathinfo
contains two values: one modulation depth and one refocusing time. For a pathway with unmodulated signal, set the refocusing time to NaN
.
Optionally, the harmonic (1 = fundamental, 2 = first overtone, etc.) can be given as a third value in each row. This can be useful for modeling RIDME signals. If not given, the harmonic is 1 for all pathways.
In these cases, the background model must be specified as a function handle accepting the time-axis t
and pathway amplitude lambda
as inputs, i.e. B = @(t,lambda) bg_model(t,param,lambda)
.
- Example 1:
- To specify the standard model for 4-pulse DEER with an unmodulated offset and a single dipolar pathway that refocuses at time 0, use
lambda = 0.4; % modulation depth main signal
pathinfo = [1-lambda NaN; lambda 0];
% alternative input
pathinfo(1,:) = [1-lambda NaN]; % unmodulated part, gives offset
pathinfo(2,:) = [lambda 0]; % main modulation, refocusing at time zero
K = dipolarkernel(t,r,pathinfo);
The shorthand input syntax dipolarkernel(t,r,lambda)
is equivalent to this input.
- Example 2:
- To specify a more complete 4-pulse DEER model that includes the 2+1 contribution, use
Lambda0 = 0.5; % unmodulated part
lambda = 0.4; % modulation depth main signal
lambda21 = 0.1; % modulation depth 2+1 contribution
tau2 = 4; % refocusing time of 2+1 contribution
pathinfo(1,:) = [Lambda0 NaN]; % unmodulated part, gives offset
pathinfo(2,:) = [lambda4 0]; % main modulation, refocusing at time zero
pathinfo(2,:) = [lambda21 tau2]; % 2+1 modulation, refocusing at time tau2
K = dipolarkernel(t,r,pathinfo);
Additional Settings¶
Additional settings can be specified via name-value pairs. All property names are case insensitive and the property-value pairs can be passed in any order after the required input arguments have been passed.
K = dipolarkernel(___,'Property1',Value1,'Property2',Value2,___)
'ExcitationBandwidth'
- Excitation bandwidth of the pulses in MHz.Use this to include limited excitation bandwidth of the experimental pulses. If not specified, infinite excitation bandwidth is assumed.
Default: [empty]
Example:
K = dipolarkernel(___,'ExcitationBandwidth',50) % 50 MHz excitation bandwidth
'OvertoneCoeffs'
- RIDME overtone coefficients1D array containing the overtone coefficients for RIDME experiments. If passed, the dipolar kernel overtones are calculated based on the passed coefficients.
Default: [empty]
Example:
K = dipolarkernel(___,'OvertoneCoeffs',[0.4 0.2 0.4]) % fundamental, 1st, and 2nd overtone
'g'
- Electron g-valueSpecifies the two g-values of the electron spin centers used to compute the dipolar frequencies from the given distance axis.
Default: free-electron g value
Example:
K = dipolarkernel(___,'g',[2.01 2.1])
'Method'
- Kernel matrix calculation methodSpecifies the method the kernel matrix is computed numerically.
'fresnel'
- Uses Fresnel integrals. This method is fast and accurate.'integral'
- Uses MATLAB’sintegral()
function. This method is accurate, but slow.'grid'
- Uses orientation averaging over a grid of orientations, using the number of orientations given innKnots
. This method is slow, and it converges very slowly with the number of orientations.
Default:
'fresnel'
Example:
K = dipolarkernel(___,'Method','integral')
'nKnots'
- Number of orientations for orientation averagingIf the kernel is computed using
'grid'
, this options specifies the number of orientations betweenand
used for orientation averaging.
Default:
5001
Example:
K = dipolarkernel(___,'Method','grid','nKnots',1e4)
'Renormalize'
- Re-normalization of multi-pathway dipolar kernelsIf the kernel is computed for a multi-pathway model via the
pathinfo
variable, the kernel does not necessarily satisfyV(0) == 1
. This option enables(true
) or disables(false
) a re-normalization to ensure that equality is satisfied.Default:
true
Example:
K = dipolarkernel(___,'Renormalize',false)