realspace_grid¶
- odl.trafos.util.ft_utils.realspace_grid(recip_grid, x0, axes=None, halfcomplex=False, halfcx_parity='even')[source]¶
Return the real space grid from the given reciprocal grid.
Given a reciprocal grid:
xi[j] = xi[0] + j * sigma,
with a multi-index
j = (j[0], ..., j[d-1])
in the range0 <= j < M
, this function calculates the original grid:x[k] = x[0] + k * s
by using a provided
x[0]
and calculating the strides
.If the reciprocal grid is interpreted as coming from a usual complex-to-complex FFT, it is
N == M
, and the stride is:s = 2*pi / (sigma * N)
For a reciprocal grid from a real-to-complex (half-complex) FFT, it is
M[i] = floor(N[i]/2) + 1
in the last transform axisi
. To resolve the ambiguity regarding the parity ofN[i]
, the it must be specified if the output shape should be even or odd, resulting in:odd : N[i] = 2 * M[i] - 1 even: N[i] = 2 * M[i] - 2
The output stride is calculated with this
N
as above in this case.- Parameters:
- recip_griduniform
RectGrid
Sampling grid in reciprocal space.
- x0
array-like
Desired minimum point of the real space grid.
- axesint or sequence of ints, optional
Dimensions in which to calculate the real space grid. The sequence must have the same length as
shift
if the latter is given as a sequence.None
means "all axes".- halfcomplexbool, optional
If
True
, interpret the given grid as the reciprocal as used in a half-complex FFT (see above). Otherwise, the grid is regarded as being used in a complex-to-complex transform.- halfcx_parity{'even', 'odd'}
Use this parity for the shape of the returned grid in the last axis of
axes
in the casehalfcomplex=True
- recip_griduniform
- Returns:
- irecipuniform
RectGrid
The inverse reciprocal grid.
- irecipuniform