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
axis
of a multi-dimensional array of sizedims
.Note that the DTCWT operator is an overload of the
dtcwt
implementation of the DT-CWT transform. Refer to https://dtcwt.readthedocs.io for a detailed description of the input parameters.- Parameters
- dims
int
ortuple
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
dtcwt
library.The
dtcwt
library 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.
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
()
Examples using pylops.signalprocessing.DTCWT
#
Dual-Tree Complex Wavelet Transform