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 size dims.

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
dimsint or tuple

Number of samples for each dimension.

birotstr, optional

Level 1 wavelets to use. See dtcwt.coeffs.birot. Default is “near_sym_a”.

qshiftstr, optional

Level >= 2 wavelets to use. See dtcwt.coeffs.qshift. Default is “qshift_a”

levelint, optional

Number of levels of wavelet decomposition. Default is 3.

include_scalebool, optional

Include scales in pyramid. See dtcwt.Pyramid. Default is False.

axisint, optional

Axis on which the transform is performed.

dtypeDTypeLike, optional

Type of elements in input array.

namestr, optional

Name of operator (to be used by pylops.utils.describe.describe)

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

Dual-Tree Complex Wavelet Transform