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
dirof 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). Choosenumpywhen working with CuPy arrays.- dtype :
str, optional Type of elements in input array.
- **kwargs_fftw
Arbitrary keyword arguments for
pyfftw.FTTW
Raises: - ValueError
If
dimsis provided anddiris bigger thanlen(dims)- NotImplementedError
If
engineis 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 :