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) + 1in 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
Nas 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
shiftif the latter is given as a sequence.Nonemeans "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
axesin the casehalfcomplex=True
- recip_griduniform
- Returns:
- irecipuniform
RectGrid The inverse reciprocal grid.
- irecipuniform