Main Page | Modules | Data Structures | Directories | File List | Data Fields | Globals | Related Pages

linogram_fft_test.c File Reference

NFFT-based pseudo-polar FFT and inverse. More...

#include <math.h>
#include <stdlib.h>
#include "util.h"
#include "nfft3.h"

Functions

int linogram_grid (int T, int R, double *x, double *w)
 Generates the points x with weights w for the linogram grid with T slopes and R offsets.
int linogram_dft (fftw_complex *f_hat, int NN, fftw_complex *f, int T, int R, int m)
 discrete pseudo-polar FFT
int linogram_fft (fftw_complex *f_hat, int NN, fftw_complex *f, int T, int R, int m)
 NFFT-based pseudo-polar FFT.
int inverse_linogram_fft (fftw_complex *f, int T, int R, fftw_complex *f_hat, int NN, int max_i, int m)
 NFFT-based inverse pseudo-polar FFT.
int comparison_fft (FILE *fp, int N, int T, int R)
 Comparison of the FFTW, linogram FFT, and inverse linogram FFT.
int main (int argc, char **argv)
 test program for various parameters

Variables

double GLOBAL_elapsed_time


Detailed Description

NFFT-based pseudo-polar FFT and inverse.

Computes the NFFT-based pseudo-polar FFT and its inverse.

Author:
Markus Fenn
Date:
2006

Function Documentation

int inverse_linogram_fft fftw_complex *  f,
int  T,
int  R,
fftw_complex *  f_hat,
int  NN,
int  max_i,
int  m
 

NFFT-based inverse pseudo-polar FFT.

< index for nodes and freqencies

< plan for the nfft-2D

< plan for the inverse nfft

< knots and associated weights

< index for iterations

< number of knots

< oversampling factor sigma=2

< oversampling factor sigma=2

init two dimensional NFFT plan

init two dimensional infft plan

init nodes, given samples and weights

precompute psi, the entries of the matrix B

initialise damping factors

initialise some guess f_hat_0

solve the system

copy result

finalise the plans and free the variables

int linogram_dft fftw_complex *  f_hat,
int  NN,
fftw_complex *  f,
int  T,
int  R,
int  m
 

discrete pseudo-polar FFT

< index for nodes and freqencies

< plan for the nfft-2D

< knots and associated weights

< number of knots

< oversampling factor sigma=2

< oversampling factor sigma=2

init two dimensional NFFT plan

init nodes from linogram grid

init Fourier coefficients from given image

NFFT-2D

copy result

finalise the plans and free the variables

int linogram_fft fftw_complex *  f_hat,
int  NN,
fftw_complex *  f,
int  T,
int  R,
int  m
 

NFFT-based pseudo-polar FFT.

< index for nodes and freqencies

< plan for the nfft-2D

< knots and associated weights

< number of knots

< oversampling factor sigma=2

< oversampling factor sigma=2

init two dimensional NFFT plan

init nodes from linogram grid

precompute psi, the entries of the matrix B

init Fourier coefficients from given image

NFFT-2D

copy result

finalise the plans and free the variables

int linogram_grid int  T,
int  R,
double *  x,
double *  w
 

Generates the points x with weights w for the linogram grid with T slopes and R offsets.

return the number of knots

int main int  argc,
char **  argv
 

test program for various parameters

< linogram FFT size NxN

< number of directions/offsets

< number of knots of linogram grid

< knots and associated weights

< number of iterations

Hence, comparison of the FFTW, linogram FFT, and inverse linogram FFT

generate knots of linogram grid

load data

direct linogram FFT

Test of the linogram FFT with different m

fast linogram FFT

error of fast linogram FFT

Test of the inverse linogram FFT for different m in dependece of the iteration number

inverse linogram FFT

compute maximum error

free the variables


Generated on Wed May 10 20:39:39 2006 for NFFT by  doxygen 1.4.4