Spatiotemporal robust smoothing (Huber data term + anisotropic TV)
st_robust_smooth4d.RdRobust 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)