Module sleplet.noise

Methods to handle noise in Fourier or wavelet space.

Functions

def compute_sigma_noise(signal: numpy.ndarray[typing.Any, numpy.dtype[numpy.complex128 | numpy.float64]],
snr_in: float,
*,
denominator: int | None = None) ‑> float

Compute the standard deviation of the noise.

Args

signal
The noised signal.
snr_in
The parameter controlling the signal-to-noise.
denominator
Coefficients to use in computing the noise, defaults to all.

Returns

The standard deviation of the noise.

def compute_slepian_mesh_sigma_j(mesh_slepian: MeshSlepian,
signal: numpy.ndarray[typing.Any, numpy.dtype[numpy.complex128 | numpy.float64]],
psi_j: numpy.ndarray[typing.Any, numpy.dtype[numpy.float64]],
snr_in: float) ‑> numpy.ndarray[typing.Any, numpy.dtype[numpy.float64]]

Compute \sigma_{j} for wavelets used in denoising the signal.

Args

mesh_slepian
The Slepian mesh object containing the eigensolutions.
signal
The noised signal.
psi_j
The Slepian wavelet coefficients.
snr_in
The parameter controlling the signal-to-noise ratio.

Returns

The standard deviation of the noise.

def compute_snr(signal: numpy.ndarray[typing.Any, numpy.dtype[numpy.complex128 | numpy.float64]],
noise: numpy.ndarray[typing.Any, numpy.dtype[numpy.complex128 | numpy.float64]],
signal_type: str) ‑> float

Compute the signal to noise ratio.

Args

signal
The unnoised signal.
noise
The noised signal.
signal_type
Specifier to improve logging.

Returns

The signal-to-noise value of the noised signal.

def harmonic_hard_thresholding(L: int,
wav_coeffs: numpy.ndarray[typing.Any, numpy.dtype[numpy.complex128]],
sigma_j: numpy.ndarray[typing.Any, numpy.dtype[numpy.float64]],
n_sigma: int) ‑> numpy.ndarray[typing.Any, numpy.dtype[numpy.complex128]]

Perform thresholding in harmonic space.

Args

L
The spherical harmonic bandlimit.
wav_coeffs
The harmonic wavelet coefficients.
sigma_j
The wavelet standard deviation \sigma_{j}.
n_sigma
The number of \sigma_{j} to threshold.

Returns

The thresholded wavelet coefficients.

def slepian_function_hard_thresholding(L: int,
coefficients: numpy.ndarray[typing.Any, numpy.dtype[numpy.complex128 | numpy.float64]],
sigma: float,
n_sigma: int,
slepian: SlepianFunctions) ‑> numpy.ndarray[typing.Any, numpy.dtype[numpy.complex128]]

Perform thresholding in Slepian space.

Args

L
The spherical harmonic bandlimit.
coefficients
The Slepian coefficients.
sigma
The standard deviation of the noise \sigma.
n_sigma
The number of \sigma to threshold.
slepian
The given Slepian object.

Returns

The thresholded Slepian coefficients.

def slepian_mesh_hard_thresholding(mesh_slepian: MeshSlepian,
wav_coeffs: numpy.ndarray[typing.Any, numpy.dtype[numpy.complex128 | numpy.float64]],
sigma_j: numpy.ndarray[typing.Any, numpy.dtype[numpy.float64]],
n_sigma: int) ‑> numpy.ndarray[typing.Any, numpy.dtype[numpy.complex128 | numpy.float64]]

Perform thresholding in Slepian space of the mesh.

Args

mesh_slepian
The Slepian mesh object containing the eigensolutions.
wav_coeffs
The Slepian wavelet coefficients of the mesh.
sigma_j
The wavelet standard deviation \sigma_{j}.
n_sigma
The number of \sigma to threshold.

Returns

The thresholded wavelet coefficients of the mesh.

def slepian_wavelet_hard_thresholding(L: int,
wav_coeffs: numpy.ndarray[typing.Any, numpy.dtype[numpy.complex128 | numpy.float64]],
sigma_j: numpy.ndarray[typing.Any, numpy.dtype[numpy.float64]],
n_sigma: int,
slepian: SlepianFunctions) ‑> numpy.ndarray[typing.Any, numpy.dtype[numpy.complex128 | numpy.float64]]

Perform thresholding in Slepian wavelet space.

Args

L
The spherical harmonic bandlimit.
wav_coeffs
The Slepian wavelet coefficients
sigma_j
The wavelet standard deviation \sigma_{j}.
n_sigma
The number of \sigma_{j} to threshold.
slepian
The given Slepian object.

Returns

The hard thresholded Slepian wavelet coefficients.