reciprocal_grid¶
- odl.trafos.util.ft_utils.reciprocal_grid(grid, shift=True, axes=None, halfcomplex=False)[source]¶
Return the reciprocal of the given regular grid.
This function calculates the reciprocal (Fourier/frequency space) grid for a given regular grid defined by the nodes:
x[k] = x[0] + k * s,
where
k = (k[0], ..., k[d-1])
is ad
-dimensional index in the range0 <= k < N
(component-wise). The multi-indexN
is the shape of the input grid. This grid's reciprocal is then given by the nodes:xi[j] = xi[0] + j * sigma,
with the reciprocal grid stride
sigma = 2*pi / (s * N)
. The minimum frequencyxi[0]
can in principle be chosen freely, but usually it is chosen in a such a way that the reciprocal grid is centered around zero. For this, there are two possibilities:Make the grid point-symmetric around 0.
Make the grid "almost" point-symmetric around zero by shifting it to the left by half a reciprocal stride.
In the first case, the minimum frequency (per axis) is given as:
xi_1[0] = -pi/s + pi/(s*n) = -pi/s + sigma/2.
For the second case, it is:
xi_1[0] = -pi / s.
Note that the zero frequency is contained in case 1 for an odd number of points, while for an even size, the second option guarantees that 0 is contained.
If a real-to-complex (half-complex) transform is to be computed, the reciprocal grid has the shape
M[i] = floor(N[i]/2) + 1
in the last transform axisi
.- Parameters:
- griduniform
RectGrid
Original sampling grid,.
- shiftbool or sequence of bools, optional
If
True
, the grid is shifted by half a stride in the negative direction. With a sequence, this option is applied separately on each axis.- axesint or sequence of ints, optional
Dimensions in which to calculate the reciprocal. The sequence must have the same length as
shift
if the latter is given as a sequence.None
means all axes ingrid
.- halfcomplexbool, optional
If
True
, return the half of the grid with last coordinate less than zero. This is related to the fact that for real-valued functions, the other half is the mirrored complex conjugate of the given half and therefore needs not be stored.
- griduniform
- Returns:
- reciprocal_griduniform
RectGrid
The reciprocal grid.
- reciprocal_griduniform