Skip to content

fft

fft

FFT-based convolution for uniform time grids.

This module provides FFT-based convolution operations that are efficient for large datasets with uniform time sampling. GPU-compatible using the array module pattern.

Includes batch operations optimized for processing many voxels simultaneously (e.g., convolving a single AIF with many IRFs).

References
- scipy.signal.fftconvolve documentation
- Sourbron & Buckley (2013). Classic models for dynamic contrast-enhanced MRI.
  NMR in Biomedicine, 26(8), 1004-1027.

convolve_aif

convolve_aif(aif, impulse_response, dt=1.0)

Convolve AIF with impulse response function(s) using FFT.

Computes the tissue concentration C(t) from the convolution of the arterial input function (AIF) with the impulse response function (IRF):

C(t) = AIF(t) * IRF(t) * dt

Handles both single-voxel and batch cases via broadcasting: a 1-D AIF is automatically broadcast against a 2-D IRF matrix.

PARAMETER DESCRIPTION
aif

Arterial input function, shape (n_timepoints,) or (n_timepoints, 1) or (n_timepoints, n_voxels).

TYPE: NDArray

impulse_response

Impulse response function, shape (n_timepoints,) or (n_timepoints, n_voxels).

TYPE: NDArray

dt

Time step in seconds. Default is 1.0.

TYPE: float DEFAULT: 1.0

RETURNS DESCRIPTION
NDArray

Convolution result. Shape matches the broadcast of aif and impulse_response along the time axis.

Notes

Uses FFT-based convolution which is O(n log n) and highly parallelizable on GPU. The result is truncated to the same length as the input (causal convolution).