Adaptive-additive algorithm

From Infogalactic: the planetary knowledge core
Jump to: navigation, search

In the studies of Fourier optics, sound synthesis, stellar interferometry, optical tweezers, and diffractive optical elements (DOEs) it is often important to know the spatial frequency phase of an observed wave source. In order to reconstruct this phase the Adaptive-Additive Algorithm (or AA algorithm), which derives from a group of adaptive (input-output) algorithms, can be used. The AA algorithm is an iterative algorithm that utilizes the Fourier Transform to calculate an unknown part of a propagating wave, normally the spatial frequency phase (k space). This can be done when given the phase’s known counterparts, usually an observed amplitude (position space) and an assumed starting amplitude (k space). To find the correct phase the algorithm uses error conversion, or the error between the desired and the theoretical intensities. The AA algorithm is currently being implemented by Dr. Wendell Hill III, Alex Robel, V. Kotlyar Soifer, and David G. Grier.

The algorithm

History

The adaptive-additive algorithm was originally created to reconstruct the spatial frequency phase of light intensity in the study of stellar interferometry. Since then, the AA algorithm has been adapted to work in the fields of Fourier Optics by Soifer and Dr. Hill, soft matter and optical tweezers by Dr. Grier, and sound synthesis by Robel.

Pseudo-code algorithm

1. Define input amplitude and random phase

2. Forward Fourier Transform

3. Separate transformed amplitude and phase

4. Compare transformed amplitude/intensity to desired output amplitude/intensity

5. Check convergence conditions

6. Mix transformed amplitude with desired output amplitude and combine with transformed phase

7. Inverse Fourier Transform

8. Separate new amplitude and new phase

9. Combine new phase with original input amplitude

10. Loop back to Forward Fourier Transform

Example

For the problem of reconstructing the spatial frequency phase (k-space) for a desired intensity in the image plane (x-space). Assume the amplitude and the starting phase of the wave in k-space is A_0 and \phi_n^{k} respectively. Fourier transform the wave in k-space to x space.

Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): A_0e^{i\phi_n^{k}} \xrightarrow{FFT} A_n^fe^{i\phi_n^{f}}


Then compare the transformed intensity I_n^f with the desired intensity I_0^f, where


I_n^f = \left(A_n^f\right)^2,

\varepsilon = \sqrt{\left(I_n^f\right)^2 - \left(I_0\right)^2}.

Check \varepsilon against the convergence requirements. If the requirements are not met then mix the transformed amplitude A_n^f with desired amplitude A^f.

\bar{A}^f_n = \left[a A^f + (1-a) A_n^f\right],

where a is mixing ratio and

A^f = \sqrt{I_0}.

Note that a is a percentage, defined on the interval 0 ≤ a ≤ 1.

Combine mixed amplitude with the x-space phase and inverse Fourier transform.

Failed to parse (Missing <code>texvc</code> executable. Please see math/README to configure.): \bar{A}^{f}e^{i\phi_n^f} \xrightarrow{iFFT} \bar{A}_n^ke^{i\phi_n^k}.


Separate \bar{A}_n^k and \phi^k_n and combine A_0 with \phi^k_n. Increase loop by one  n \to n + 1 and repeat.

Limits

See also

References

  • Lua error in package.lua at line 80: module 'strict' not found..
  • Lua error in package.lua at line 80: module 'strict' not found..
  • Lua error in package.lua at line 80: module 'strict' not found..
  • Lua error in package.lua at line 80: module 'strict' not found.
  • Lua error in package.lua at line 80: module 'strict' not found.

External links