dcmri.biexpconv#

dcmri.biexpconv(T1, T2, t)[source]#

Convolve two normalised exponentials analytically.

Parameters:
  • T1 (float) – the characteristic time of the first exponential function.

  • T2 (float) – the characteristic time of the second exponential function, in the same units as T1.

  • t (array_like, optional) – the time points where the values of f are defined, in the same units as T.

Returns:

The result of the convolution as a 1D array.

Return type:

numpy.ndarray

Notes

biexpconv returns the exact analytical result of the following convolution:

\[g(t) = \frac{e^{-t/A}}{A} \otimes \frac{e^{-t/B}}{B}\]

The formula is a biexponential with unit area:

\[g(t) = \frac{Ae^{-t/A}-Be^{-t/B}}{A-B}\]

In code this translates as:

g = biexpconv(A, B, t)

Example

Import package and create a vector of uniformly sampled time points t with spacing 5.0s:

>>> import dcmri as dc
>>> t = 5.0*np.arange(4)

Calculate the convolution of two normalised exponentials with time constants 10s and 15s:

>>> g = dc.biexpconv(10, 15, t)
array([-0.        ,  0.02200013,  0.02910754,  0.02894986])

Examples using dcmri.biexpconv#

A comparison of convolution functions

A comparison of convolution functions