setFuncsShrink

Set functions required in soft-shrinkage (minShrink.m).

Contents

Syntax

seti = setFuncsShrink(seti)

Description

seti = setFuncsShrink(seti) sets functions in structure array seti, that are required in thresholded, nonlinear Landweber scheme based on the (extended) soft-shrinkage operator, see minShrink.html. Therefore this function is called in setRecon.m, see setRecon.html.

Input Arguments

Output Arguments

For the fields of the structrual array seti see the section "More About".

More About

Notation:

The following formulas are implemented:

The case with wavelets is analog.

The details are described in Ch. 6 in [1].

The function to minimize is the Tikhonov functional seti.MT, that is (in the case of no wavelets):

$$\mathrm{min}_q \frac{1}{P}
\|\mathcal{F}(q)-F_\mathrm{meas}^\delta\|_{\mathrm{dis},P}^P + \alpha
\frac{1}{Q} \|q\|_{\mathrm{spa},Q}^Q.$$

The first summand is saved as seti.M1 and the second one as seti.M2.

References

See Also

Code: function: setFuncsShrink

function seti = setFuncsShrink(seti)
% Note: sum of f parts and MT is the same result

% Definition of parts of function to minimize (f = minf)
% (parts for reconstruction process)
seti = setminfParts(seti);

% Definition of Tikhonov functional
seti = setTikParts(seti);

end

Code: subfunction: setminfParts

Definition of parts of function to minimize (f = minf)

function seti = setminfParts(seti)
P = seti.pNorm;
Q = seti.qNorm;

seti.vd = -seti.FmeasDelta; % F_meas^\delta
seti.fd = @(FFq) (1/P)*normws(FFq+seti.vd,seti)^P; % FFq is FFqMeas

seti.vs = 0;
seti.fs = @(q) seti.alpha*(1/Q)*(normroi(real(q+seti.vs),seti)^Q + normroi(imag(q+seti.vs),seti)^Q);

Wavelets

seti.vsw = 0;
seti.fsw = @(q) seti.alpha*(1/Q)*(normroi(real(seti.wW(q+seti.vsw)),seti)^Q + normroi(imag(seti.wW(q+seti.vsw)),seti)^Q);
    % The routine |seti.wW weights| the wavelet coefficients.
    % Note that |seti.wavWght| is the weight of the wavelet coefficients and is
    % inside |seti.wW| (small |w| is weight, big |W| is transformation).
clear P Q
end

Code: subfunction: setTikParts

Definition of Tikhonov functional

function seti = setTikParts(seti)
% Parts to evalute the Tikhonov functional

% Tikhonov functional MT = M1 + M2
% 1) MT = fd + fs  (case of no wavelets)
% 2) MT = fd + fsw (case of wavelets)

seti.M1 = seti.fd;
if seti.useWavelet == 1
    seti.M2 = seti.fsw;
else
    seti.M2 = seti.fs;
end
seti.MT = @(FFq,q) seti.M1(FFq) + seti.M2(q); % function to minimize (Tikhonov functional)
end