Linear Operators¶
We provide a collection of linear operators with efficient JAX based implementations that are relevant in standard signal/image processing problems. We also provide a bunch of utilities to combine and convert linear operators.
This module is inspired by pylops
although the implementation approach
is different.
A linear operator \(T : X \to Y\) connects a model space \(X\) to a data space \(Y\).
A linear operator satisfies following laws:
Thus, for a general linear combination:
We are concerned with linear operators \(T : \mathbb{F}^n \to \mathbb{F}^m\) where \(\mathbb{F}\) is either the field of real numbers or complex numbers. \(X = \mathbb{F}^n\) is the model space and \(Y = \mathbb{F}^m\) is the data space.
Such a linear operator can be represented by a two dimensional matrix \(A\).
The forward operation is given by:
The corresponding adjoint operation is given by:
We represent a linear operator by a pair of functions times
and trans
.
The times
function implements the forward operation while the trans
function implements the adjoint operation.
An inverse problem consists of computing \(x\) given \(y\) and \(A\).
Data types¶
Represents a finite linear operator \(T : A -> B\) where \(A\) and \(B\) are finite vector spaces. |
Basic operators¶
|
Returns an identity linear operator from A to B |
|
Converts a two-dimensional matrix to a linear operator |
|
Returns a linear operator which can be represented by a diagonal matrix |
|
Returns a linear operator which maps everything to 0 vector in data space |
|
Returns an operator which flips the order of entries in input upside down |
|
Returns an operator which computes the sum of a vector |
|
Adds zeros before and after a vector. |
|
An operator which constructs a symmetric vector by pre-pending the input in reversed order |
|
An operator which computes y = x[I] over an index set I |
Signal processing operators¶
Returns an operator which represents the DFT orthonormal basis |
|
Returns an operator for a two-ortho basis dictionary consisting of Dirac basis and Fourier basis |
Random compressive sensing operators¶
|
An operator which represents a Gaussian sensix matrix (with normalized columns) |
|
An operator which represents a Rademacher sensing matrix |
|
An operator representing a random orthonormal basis |
|
An operator whose rows are orthonormal (sampled from a random orthonormal basis) |
Convenience operators¶
These operators are technically not linear on \(\mathbb{F}^n \to \mathbb{F}^m\)
|
Returns the real parts of a vector of complex numbers |
Operator algebra¶
|
Returns the negative of a linear operator \(T = -A\) |
|
Returns the linear operator \(T = \alpha A\) for the operator \(A\) |
|
Returns the sum of two linear operators \(T = A + B\) |
|
Returns a linear operator \(T = A - B\) |
|
Returns the composite linear operator \(T = AB\) such that \(T(x)= A(B(x))\) |
|
Returns the transpose of a given operator \(T = A^T\) |
|
Returns the Hermitian transpose of a given operator \(T = A^H\) |
|
Returns the linear operator \(T = [A \, B]\) |
|
Returns the linear operator \(T = A^p\) |
Operator parts¶
|
Returns the i-th column of the operator T |
|
Returns the i-th column of the operator T |
Properties of a linear operator¶
These are still experimental and not efficient.
Computes the upper frame bound for a linear operator |