NFFT  3.4.1
Macros | Functions
radon.c File Reference

NFFT-based discrete Radon transform. More...

#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include <complex.h>
#include "nfft3mp.h"

Go to the source code of this file.

Macros

#define NFFT_PRECISION_DOUBLE
 
#define KERNEL(r)   (NFFT_K(1.0)-NFFT_M(fabs)((NFFT_R)(r))/((NFFT_R)S/2))
 define weights of kernel function for discrete Radon transform
 

Functions

static int polar_grid (int T, int S, NFFT_R *x, NFFT_R *w)
 generates the points x with weights w for the polar grid with T angles and R offsets
 
static int linogram_grid (int T, int S, NFFT_R *x, NFFT_R *w)
 generates the points x with weights w for the linogram grid with T slopes and R offsets
 
static int Radon_trafo (int(*gridfcn)(), int T, int S, NFFT_R *f, int NN, NFFT_R *Rf)
 computes the NFFT-based discrete Radon transform of f on the grid given by gridfcn() with T angles and R offsets
 
int main (int argc, char **argv)
 simple test program for the discrete Radon transform
 

Detailed Description

NFFT-based discrete Radon transform.

Computes the discrete Radon transform

\[ R_{\theta_t} f\left(\frac{s}{R}\right) = \sum_{r \in I_R} w_r \; \sum_{k \in I_N^2} f_{k} \mathrm{e}^{-2\pi\mathrm{I} k \; (\frac{r}{R}\theta_t)} \, \mathrm{e}^{2\pi\mathrm{i} r s / R} \qquad(t \in I_T, s \in I_R). \]

by taking the 2D-NFFT of $f_k$ ( $k \in I_N^2$) at the points $\frac{r}{R}\theta_t$ of the polar or linogram grid followed by 1D-iFFTs for every direction $t \in T$, where $w_r$ are the weights of the Dirichlet- or Fejer-kernel.

Author
Markus Fenn
Date
2005

Definition in file radon.c.