FourierTransformInverse
- class odl.trafos.fourier.fourier.FourierTransformInverse(*args, **kwargs)[source]
Bases:
FourierTransformBaseInverse of the discretized Fourier transform between L^p spaces.
This operator is the exact inverse of the
FourierTransform, and not a discretization of the Fourier integral with “+” sign in the complex exponent. For the latter, use thesignparameter of the forward transform.See Also
FourierTransform DiscreteFourierTransformInverse
- __init__(range, domain=None, impl=None, **kwargs)[source]
Parameters
- range
DiscretizedSpace Range of the inverse Fourier transform. If the
DiscretizedSpace.exponentofdomainandrangeare equal to 2.0, this operator has an adjoint which is equal to its inverse.- domain
DiscretizedSpace, optional Domain of the inverse Fourier transform. If not given, the domain is determined from
rangeand the other parameters. The exponent is chosen to be the conjugatep / (p - 1), which reads as ‘inf’ for p=1 and 1 for p=’inf’.- impl{‘numpy’, ‘pyfftw’}, optional
Backend for the FFT implementation. The ‘pyfftw’ backend is faster but requires the
pyfftwpackage.Noneselects the fastest available backend.- axesint or sequence of ints, optional
Dimensions along which to take the transform. Default: all axes
- sign{‘-’, ‘+’}, optional
Sign of the complex exponent. Default:
'+'- halfcomplexbool, optional
If
True, calculate only the negative frequency part along the last axis for real input. IfFalse, calculate the full complex FFT. For complexdomain, it has no effect. Default:True- shiftbool or sequence of bools, optional
If
True, the reciprocal grid is shifted by half a stride in the negative direction. With a boolean sequence, this option is applied separately to each axis. If a sequence is provided, it must have the same length asaxesif supplied. Note that this must be set toTruein the halved axis in half-complex transforms. Default:True
Other Parameters
- tmp_r
DiscretizedSpaceElementornumpy.ndarray, optional Temporary for calculations in the real space (range of this transform). It is shared with the inverse.
Variants using this: C2R, R2C (forward), R2HC (forward)
- tmp_f
DiscretizedSpaceElementornumpy.ndarray, optional Temporary for calculations in the frequency (reciprocal) space. It is shared with the inverse.
Variants using this: C2R, HC2R, R2C (forward)
Notes
The transform variants are:
C2C: complex-to-complex. The default variant, one-to-one and unitary.
C2R: complex-to-real. This variants adjoint and inverse may suffer from information loss since the result is cast to real.
HC2R: halfcomplex-to-real. This variant interprets input as a signal on a half-space of frequencies. It is guaranteed to be one-to-one (invertible).
The
Operator.rangeof this operator always has theComplexNumbersasLinearSpace.field, i.e. if the field ofdomainis theRealNumbers, this operator’s adjoint is defined by identifying real and imaginary parts with the components of a real product space element. See the mathematical background documentation for details.
- range