Skip to contents

Robust fMRI denoising that downweights outlier frames/voxels (Huber M-estimation) while preserving edges via anisotropic space-time TV. Solved by outer IRLS loops (to update Huber data weights) with an inner Chambolle-Pock primal-dual solver.

Usage

st_robust_smooth4d(
  vec,
  lambda_s = 0.8,
  lambda_t = 0.25,
  delta = 1.5,
  outer_loops = 3L,
  iters = 25L,
  mask = NULL,
  motion_params = NULL,
  sigma_m = 0.5
)

Arguments

vec

4D fMRI (array or neuroim2::NeuroVec)

lambda_s

spatial TV weight

lambda_t

temporal TV weight

delta

Huber threshold (in signal units) for the data term; smaller => more robust

outer_loops

number of outer IRLS updates (2-5 typical)

iters

number of inner primal-dual iterations per outer loop (20-40 typical)

mask

3D mask (outside voxels passed through unchanged)

motion_params

optional T x 6 (or 3) realignment params to reduce temporal smoothing during high motion

sigma_m

motion weighting scale (same units as framewise displacement proxy)

Value

4D array or NeuroVec