spyrit.core.prep.UnsplitRescaleEstim

class spyrit.core.prep.UnsplitRescaleEstim(meas_op, **pinv_kwargs)[source]

Bases: RescaleEstim

Unsplit and rescale measurements as

\[m = \frac{y_+ - y_-}{\alpha},\]

where \(y_-\) and \(y_+\) are the raw measurements and \(\alpha\) represents a gain/intensity that needs to be estimated from \(y_-\) and \(y_+\).

Args:

meas_op (spyrit.core.meas.LinearSplit): Measurement operator used to get the measurements \(y\). It should be a split measurement operator.

estim_mode (str, optional): Method to estimate the gain. Can be either “mean” or “pinv”. Defaults to “pinv”.

**pinv_kwargs: Additional keyword arguments to pass to the pseudo-inverse computation. Only used if estim_mode is “pinv”.

Attributes:

self.alpha (torch.tensor): Estimated gain/intensity.

self.meas_op (spyrit.core.meas.LinearSplit): Measurement operator used to simulate the measurements.

self.estim_mode (str): Method to estimate the gain value.

self.pinv_kwargs (dict): Additional keyword arguments to pass to the pseudo-inverse initialization. Only used if estim_mode is “pinv”.

self.pinv (spyrit.core.inverse.PseudoInverse): Pseudo-inverse operator. Exists only if estim_mode is “pinv”.

Methods

estim_alpha(y)

Estimate the gain from the raw measurements.

forward(y)

Unsplit and rescale raw measurements

mean_estim(y)

(Not tested yet) Estimate the gain from the mean of the raw measurements.

pinv_estim(y)

Estimate gain from pseudo-inverse.

sigma(y)

Estimate the variance of raw split measurements as