/tomo/dfi

To get this branch, use:
bzr branch http://darksoft.org/webbzr/tomo/dfi

« back to all changes in this revision

Viewing changes to README

  • Committer: Suren A. Chilingaryan
  • Date: 2013-03-22 00:21:41 UTC
  • Revision ID: csa@dside.dyndns.org-20130322002141-40r2i2pfmza3lpfc
Initial release

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
DFI
 
2
===
 
3
This all is based on Fourier slice theorem: 1D FFT of projection taken at
 
4
some angle equals the central radial slice at the same angle of the 2D FFT
 
5
of the original object.
 
6
 
 
7
The center of rotation is considered to be in the center of axis. Then we
 
8
padding both ends with zeroes (the background color have to be zero). And
 
9
exchanging left and right halves.
 
10
 - For DFT, we assume that signal is cyclic and we sample values from 0
 
11
 to N. But we actually have them from -N/2 to N/2 (because the center of
 
12
 rotation is in the center of axis). Therefore, we need to move first half
 
13
 of array after second half.
 
14
 
 
15
The main problem is interpolation in Fourier space.
 
16
 
 
17
FFT properties
 
18
--------------
 
19
 - Operation on real data gives Hermetian (self-adjoint) matrix in Fourier space.
 
20
 A Hermitian matrix (or self-adjoint matrix) is a square matrix with complex 
 
21
 entries that is equal to its own conjugate transpose (A*). That is, the element 
 
22
 in the i-th row and j-th column is equal to the complex conjugate of the element 
 
23
 in the j-th row and i-th column (i.e. with sign of imaginary part changed).
 
24
 - cuFFT have implemented Cooley-Tukey algorith for radixes 2,3,5,7. The best 
 
25
 performance still with large powers of two, but we should check balance 
 
26
 between large padding and usage of sub-optimal radixes. Accroding to cuFFT
 
27
 documentation, the cuFFT performance is constrained by following restrictions
 
28
 in the order of decreasing importance:
 
29
  * Restrict the size along each dimension to use fewer distinct prime factors.
 
30
  * Radix2 part should be multiple of 256
 
31
  * Restrict the x dimension of single-precision transforms to be strictly a 
 
32
  power of two either between 2 and 8192 for Fermi-class GPUs or between 2 
 
33
  and 2048 for earlier architectures.
 
34
  * Use Native compatibility mode for in-place complex-to-real or 
 
35
  real-to-complex transforms.
 
36
 - 2D FFT is series of independent 1D FFT transforms on rows and columns
 
37
 
 
38
  
 
 
b'\\ No newline at end of file'