pylops.signalprocessing.FFTND¶
-
class
pylops.signalprocessing.
FFTND
(dims, dirs=(0, 1, 2), nffts=(None, None, None), sampling=(1.0, 1.0, 1.0), dtype='complex128')[source]¶ N-dimensional Fast-Fourier Transform.
Apply n-dimensional Fast-Fourier Transform (FFT) to any n axes of a multi-dimensional array depending on the choice of
dirs
. Note that the FFTND operator is a simple overload to the numpynumpy.fft.fftn
in forward mode and to the numpynumpy.fft.ifftn
in adjoint mode, however scaling is taken into account differently to guarantee that the operator is passing the dot-test.Parameters: - dims :
tuple
Number of samples for each dimension
- dirs :
tuple
, optional Directions along which FFTND is applied
- nffts :
tuple
, optional Number of samples in Fourier Transform for each direction (same as input if
nffts=(None, None, None, ..., None)
)- sampling :
tuple
, optional Sampling steps in each direction
- dtype :
str
, optional Type of elements in input array
Raises: - ValueError
If
dims
,dirs
,nffts
, orsampling
have less than three elements and if the dimension ofdirs
,nffts
, andsampling
is not the same
Notes
The FFTND operator applies the n-dimensional forward Fourier transform to a multi-dimensional array. Without loss of generality we consider here a three-dimensional signal \(d(z, y, x)\). The FFTND in forward mode is:
\[D(k_z, k_y, k_x) = \mathscr{F} (d) = \int \int d(z,y,x) e^{-j2\pi k_zz} e^{-j2\pi k_yy} e^{-j2\pi k_xx} dz dy dx\]Similarly, the three-dimensional inverse Fourier transform is applied to the Fourier spectrum \(D(k_z, k_y, k_x)\) in adjoint mode:
\[d(z, y, x) = \mathscr{F}^{-1} (D) = \int \int D(k_z, k_y, k_x) e^{j2\pi k_zz} e^{j2\pi k_yy} e^{j2\pi k_xx} dk_z dk_y dk_x\]Both operators are effectively discretized and solved by a fast iterative algorithm known as Fast Fourier Transform.
Attributes: Methods
__init__
(dims[, dirs, nffts, sampling, dtype])Initialize this LinearOperator. adjoint
()Hermitian adjoint. apply_columns
(cols)Apply subset of columns of operator cond
([uselobpcg])Condition number of linear operator. conj
()Complex conjugate operator div
(y[, niter])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. matmat
(X)Matrix-matrix multiplication. matvec
(x)Matrix-vector multiplication. rmatmat
(X)Adjoint matrix-matrix multiplication. rmatvec
(x)Adjoint matrix-vector multiplication. todense
()Return dense matrix. tosparse
()Return sparse matrix. transpose
()Transpose this linear operator. - dims :