# Discrete versions of the Fourier Slice-Projection Theorem

I understand the continuous version of the Fourier Slice-Projection theorem, which says that given a (nice enough) function $f:\mathbb{R}^3\to\mathbb{C}$ the following operations give the same result:

1. Evaluate $f$ on a plane through the origin and perform a 2-d Fourier transform of the thus obtained 2-d function

2. Perform a 3-d Fourier transform of $f$ and project (integrate) it along the direction orthogonal to the plane used in (1).

My question concerns implementing this using discrete uniformly sampled data in a numerical application. It is easy to show that for the three planes aligned with the coordinate grid this works exactly the same for the discrete 3-d-Fourier transform, which was no problem to implement with the fft-algorithm (I am using Matlab). In this case projecting amounts to a sum over one of the array dimensions. The general case (arbitrary slice planes) for discrete data will necessarily involve either interpolation or something along the lines of a Mojette transform, which I hope is not necessary for my application. The application concerns a continuous 3-d-periodic $f$ sampled in a unit cell and its Fourier series representation, hence interpolation may be the right choice but I want to be sure there isn't some easier way.

I only want to consider slice planes giving periodic patterns of points that also generate the entire discrete lattice when stacked periodically (for example the plane spanned by the vectors (1,0,1) and (-1,0,1) for a cubic discrete lattice). In this setting it makes sense to slice an (NxNxN)-lattice, giving a plane with (NxN) data points located on a rectangular grid with side ratio sqrt(2). It also makes sense to project the data, this however sums a number of lattice points that depends on the position in the projection plane and also gives equally spaced data on the plane with Nx(2N-1) data points. I was hoping to find some version of the Fourier Slice theorem that applies to this specific slice plane of the discrete data. Efficiency of the computation is a minor issue. Is there something that can be suggested here?