NFFT Logo 3.2.3
Functions
polar_fft_test
Polar FFT

Functions

static int polar_grid (int T, int R, double *x, double *w)
 Generates the points $x_{t,j}$ with weights $w_{t,j}$ for the polar grid with $T$ angles and $R$ offsets.
static int polar_dft (fftw_complex *f_hat, int NN, fftw_complex *f, int T, int R, int m)
 discrete polar FFT
static int polar_fft (fftw_complex *f_hat, int NN, fftw_complex *f, int T, int R, int m)
 NFFT-based polar FFT.
static int inverse_polar_fft (fftw_complex *f, int T, int R, fftw_complex *f_hat, int NN, int max_i, int m)
 inverse NFFT-based polar FFT
int main (int argc, char **argv)
 test program for various parameters

Detailed Description


Function Documentation

static int polar_grid ( int  T,
int  R,
double *  x,
double *  w 
)
static

Generates the points $x_{t,j}$ with weights $w_{t,j}$ for the polar grid with $T$ angles and $R$ offsets.

The nodes of the polar grid lie on concentric circles around the origin. They are given for $(j,t)^{\top}\in I_R\times I_T$ by a signed radius $r_j := \frac{j}{R} \in [-\frac{1}{2},\frac{1}{2})$ and an angle $\theta_t := \frac{\pi t}{T} \in [-\frac{\pi}{2},\frac{\pi}{2})$ as

\[ x_{t,j} := r_j\left(\cos\theta_t, \sin\theta_t\right)^{\top}\,. \]

The total number of nodes is $M=TR$, whereas the origin is included multiple times.

Weights are introduced to compensate for local sampling density variations. For every point in the sampling set, we associate a small surrounding area. In case of the polar grid, we choose small ring segments. The area of such a ring segment around $x_{t,j}$ ( $j \ne 0$) is

\[ w_{t,j} = \frac{\pi}{2TR^2}\left(\left(|j|+\frac{1}{2}\right)^2- \left(|j|-\frac{1}{2}\right)^2\right) = \frac{\pi |j| }{TR^2}\, . \]

The area of the small circle of radius $\frac{1}{2R}$ around the origin is $\frac{\pi}{4R^2}$. Divided by the multiplicity of the origin in the sampling set, we get $w_{t,0} := \frac{\pi}{4TR^2}$. Thus, the sum of all weights is $\frac{\pi}{4}(1+\frac{1}{R^2})$ and we divide by this value for normalization.

Definition at line 78 of file polar_fft_test.c.

References PI.

Referenced by inverse_polar_fft(), main(), polar_dft(), and polar_fft().


Generated on Tue Apr 30 2013 by Doxygen 1.8.1