pylops.signalprocessing.Shift¶
-
pylops.signalprocessing.
Shift
(dims, shift, dir=0, nfft=None, sampling=1.0, real=False, engine='numpy', dtype='complex128', **kwargs_fftw)[source]¶ Shift operator
Apply fractional shift in the frequency domain along a specific direction
dir
of a multi-dimensional array of sizedim
.Parameters: - dims :
tuple
Number of samples for each dimension
- shift :
float
Fractional shift to apply in the same unit as
sampling
.- dir :
int
, optional Direction along which FFT is applied.
- nfft :
int
, optional Number of samples in Fourier Transform (same as input if
nfft=None
)- sampling :
float
, optional Sampling step \(\Delta t\).
- real :
bool
, optional Model to which fft is applied has real numbers (
True
) or not (False
). Used to enforce that the output of adjoint of a real model is real.- engine :
str
, optional Engine used for fft computation (
numpy
,scipy
, orfftw
). Choosenumpy
when working with CuPy arrays.- dtype :
str
, optional Type of elements in input array.
- **kwargs_fftw
Arbitrary keyword arguments for
pyfftw.FTTW
Raises: - ValueError
If
dims
is provided anddir
is bigger thanlen(dims)
- NotImplementedError
If
engine
is neithernumpy
,scipy
, norfftw
Notes
The Shift operator applies the forward Fourier transform, an element-wise complex scaling, and inverse fourier transform
\[\mathbf{y}= \mathbf{F}^{-1} \mathbf{S} \mathbf{F} \mathbf{x}\]Here \(\mathbf{S}\) is a diagonal operator that scales the Fourier transformed input by \(e^{-j2\pi f t_S}\), where \(t_S\) is the chosen
shift
.Attributes: - dims :