Deconvolution1D#
- class cuqi.testproblem.Deconvolution1D(dim=128, PSF='gauss', PSF_param=None, PSF_size=None, BC='periodic', phantom='sinc', phantom_param=None, noise_type='gaussian', noise_std=0.01, prior=None, use_legacy=False)#
Create a 1D periodic deconvolution test problem defined by the inverse problem
\[\mathbf{b} = \mathbf{A}\mathbf{x},\]where \(\mathbf{b}\) is a (noisy) convolved signal, \(\mathbf{x}\) is a sharp (clean) signal and \(\mathbf{A}\) is a convolution operator.
The convolution operator is defined by specifying a point spread function and boundary conditions and is computed via scipy.ndimage.convolve1D. By default, the matrix representation of the convolution operator is computed and stored.
The inputs are padded to fit the boundary conditions. https://docs.scipy.org/doc/scipy/reference/generated/scipy.ndimage.convolve1d.html
- Parameters:
dim (int, default 128) – size of the (dim,dim) deconvolution problem
PSF (string or ndarray, default 'Gauss') –
Determines type of the underlying point spread function (PSF).Depending if use_legacy is True or False, the following options are available:’Gauss’ - a 1D Gaussian blur function’Moffat’ - a 1D Moffat blur function (non-LEGACY only)’Defocus’ - an out-of-focus 1D blur function (non-LEGACY only)’sinc’ or ‘prolate’ - a sinc function (LEGACY only)’vonMises’ - a periodic version of the Gauss function (LEGACY only)ndarray - a custom PSF represented as a 1D ndarray.PSF_param (scalar, default depends on PSF) –
A parameter that determines the shape of the PSF;the larger the parameter, the larger the blur on the signal.Ignored if PSF is a ndarray.PSF_size (int, default equal to dim) –
The size of the PSF.Ignored if PSF is a ndarray.BC (string, default 'periodic') –
Boundary conditions for the convolution.’zero’ - zero boundary conditions’periodic’ - periodic boundary conditions’Mirror’ - Reflected around center of last pixel boundary conditions’Reflect’ - Reflected around edge of last pixel boundary conditions’Nearest’ - Replicates last element of boundaryphantom (string or ndarray, default 'sinc') –
The phantom that is sampled to produce the exact solution (signal).’Gauss’ - a Gaussian function’sinc’ - a sinc function’vonMises’ - a periodic version of the Gauss function’square’ - a “top hat” function’hat’ - a triangular hat function’bumps’ - two bumps’derivGauss’ - the first derivative of Gauss function’pc’ - Piece-wise constant phantom’skyscraper’ - Piece-wise constant phantom with multiple peaksndarray - a custom phantomphantom_param (scalar, default depends on phantom) –
A parameter that determines the horizontal scaling of thefunction; the larger the parameter the more horizontallycompressed. Does not apply to phantom = ‘bumps’, ‘pc’, ‘skyscraper’ or ndarray.noise_type (string, default 'gaussian') –
The type of noise”Gaussian” - Additive Gaussian white noise¨”scaledGaussian” - Gaussian noise with standard deviationscaled by magnitude of the data for eachpoint.noise_std (scalar, default 0.01) – Standard deviation of the noise
prior (cuqi.distribution.Distribution, Default Gaussian) – Distribution of the prior
use_legacy (bool, Default False) – If True, use the legacy matrix representation of the forward model. The legacy representation has different choices for the PSF. The data is scaled differently than the non-legacy representation.
- __init__(dim=128, PSF='gauss', PSF_param=None, PSF_size=None, BC='periodic', phantom='sinc', phantom_param=None, noise_type='gaussian', noise_std=0.01, prior=None, use_legacy=False)#
Methods
MAP
([disp, x0])Compute the Maximum A Posteriori (MAP) estimate of the posterior.
ML
([disp, x0])Compute the Maximum Likelihood (ML) estimate of the posterior.
UQ
([Ns, Nb, percent, exact, experimental])Run an Uncertainty Quantification (UQ) analysis on the Bayesian problem and provide a summary of the results.
__init__
([dim, PSF, PSF_param, PSF_size, ...])Method that returns the model, the data and additional information to be used in formulating the Bayesian problem.
sample_posterior
(Ns[, Nb, callback, ...])Sample the posterior.
sample_prior
(Ns[, callback])Sample the prior distribution.
set_data
(**kwargs)Set the data of the problem.
Attributes
Extract the observed data from likelihood
The likelihood function.
Extract the cuqi model from likelihood.
Create posterior distribution from likelihood and prior.
The prior distribution