pylops.signalprocessing.DTCWT#
- class pylops.signalprocessing.DTCWT(dims, biort='near_sym_a', qshift='qshift_a', level=3, include_scale=False, axis=-1, dtype='float64', name='C')[source]#
Dual-Tree Complex Wavelet Transform
Perform 1D Dual-Tree Complex Wavelet Transform along an
axisof a multi-dimensional array of sizedims.Note that the DTCWT operator is an overload of the
dtcwtimplementation of the DT-CWT transform. Refer to https://dtcwt.readthedocs.io for a detailed description of the input parameters.- Parameters
- dims
intortuple Number of samples for each dimension.
- birot
str, optional Level 1 wavelets to use. See
dtcwt.coeffs.birot. Default is “near_sym_a”.- qshift
str, optional Level >= 2 wavelets to use. See
dtcwt.coeffs.qshift. Default is “qshift_a”- level
int, optional Number of levels of wavelet decomposition. Default is 3.
- include_scale
bool, optional Include scales in pyramid. See
dtcwt.Pyramid. Default is False.- axis
int, optional Axis on which the transform is performed.
- dtype
DTypeLike, optional Type of elements in input array.
- name
str, optional Name of operator (to be used by
pylops.utils.describe.describe)
- dims
Notes
The DTCWT operator applies the dual-tree complex wavelet transform in forward mode and the dual-tree complex inverse wavelet transform in adjoint mode from the
dtcwtlibrary.The
dtcwtlibrary uses a Pyramid object to represent the signal in the transformed domain, which is composed of:lowpass (coarsest scale lowpass signal);
highpasses (complex subband coefficients for corresponding scales);
scales (lowpass signal for corresponding scales finest to coarsest).
To make the dtcwt forward() and inverse() functions compatible with PyLops, in forward model the Pyramid object is flattened out and all coefficients (high-pass and low pass coefficients) are appended into one array using the _coeff_to_array method.
In adjoint mode, the input array is transformed back into a Pyramid object using the _array_to_coeff method and then the inverse transform is performed.
- Attributes
- otherdims
int Product of dimensions other than dimension at
axisindex.- dims_swapped
tuple Shape of the model array after swapping the dimension at
axisindex to the front.- dimsd_swapped
tuple Shape of the data array after swapping the dimension at
axisindex to the front.- dims
tuple Shape of the array after the adjoint, but before flattening.
For example,
x_reshaped = (Op.H * y.ravel()).reshape(Op.dims).- dimsd
tuple Shape of the array after the forward, but before flattening.
For example,
y_reshaped = (Op * x.ravel()).reshape(Op.dimsd).- shape
tuple Operator shape.
- otherdims
Methods
__init__(dims[, biort, qshift, level, ...])adjoint()apply_columns(cols)Apply subset of columns of operator
cond([uselobpcg])Condition number of linear operator.
conj()Complex conjugate operator
div(y[, niter, densesolver])Solve the linear problem \(\mathbf{y}=\mathbf{A}\mathbf{x}\).
dot(x)Matrix-matrix or matrix-vector multiplication.
eigs([neigs, symmetric, niter, uselobpcg])Most significant eigenvalues of linear operator.
get_pyramid(x)Return Pyramid object from flat real-valued array
matmat(X)Matrix-matrix multiplication.
matvec(x)Matrix-vector multiplication.
reset_count()Reset counters
rmatmat(X)Matrix-matrix multiplication.
rmatvec(x)Adjoint matrix-vector multiplication.
todense([backend])Return dense matrix.
toimag([forw, adj])Imag operator
toreal([forw, adj])Real operator
tosparse()Return sparse matrix.
trace([neval, method, backend])Trace of linear operator.
transpose()