L2L2SolverModulo
- class colibri.recovery.solvers.modulo.L2L2SolverModulo(y, acquisition_model)[source]
Bases:
Solver
Solver for the Modulo acquisition model.
It describes the closed-form solution of the optimization problem.
\[\min_{\mathbf{x}} \frac{1}{2}|| \mathcal{M}_{t}( \Delta \mathbf{y} ) - \Delta \mathbf{x} ||_2^2 + \rho||\mathbf{x} - \tilde{\mathbf{x}}||_2^2\]where \(\mathbf{x}\) is the tensor to be recovered, \(\mathbf{y}\) is the input tensor, and \(\mathcal{M}_{t}\) is the modulo operator with threshold \(t\).
The solution of the optimization problem is given by:
\[\hat{\mathbf{x}}_{mn+n} = \mathcal{D}^{-1} \Bigg( \frac{ \mathcal{D}( \Delta^{\top} \mathcal{M}_{t}(\Delta \mathbf{y} ) + (\rho/2)\tilde{\mathbf{x}} )_{mn+n} } { 2(2 + \rho/4 - \cos(\pi m /M) - \cos(\pi n /N) ) } \Bigg)\]where \(\mathcal{D}\) is the 2D Discrete Cosine Transform, \(\Delta\) is the discrete gradient operator. When the parameter \(\rho\) is set to zero, the problem can be interpreted as the discretization of the Poisson’s equation with Neumann boundary conditions.
- Parameters:
y (torch.Tensor) – Input tensor with shape (B, L, M, N)
acquisition_model (Modulo) – Acquisition model