Documentation for AngularSpectrumMethod.

ASM(u, λ, Δx, Δy, z; expand=true)

return diffracted field by the angular spectrum method (ASM). Evanescent waves are not eliminated but attenuated as $\exp(-2{\pi}wz)$. Without attenuation, the total energy $\iint|u|\mathrm{d}x\mathrm{d}y$ is conserved.


  • u: input field.
  • λ: wavelength.
  • Δx: sampling interval the in x-axis.
  • Δy: sampling interval the in y-axis.
  • z: diffraction distance.
  • expand=true: if true (default), perform 4× expansion and zero padding for aliasing suppression.

The x-axis is the horizontal direction, and the y-axis is the vertical.

TiltedASM(u, λ, Δx, Δy, T; expand=true, weight=false)

return tilted diffraction field for a rotation matrix $T$ by the tilted ASM (see Ref. 1, 2). If weight=true, a diagonal weighting matrix is used as the Jacobian determinant (default false). In this case, the energy conservation improves, but the computational cost is high (see Ref. 3).


Rotations.jl is helpful in generating rotation matrices.

  1. Kyoji Matsushima, Hagen Schimmel, and Frank Wyrowski, "Fast calculation method for optical diffraction on tilted planes by use of the angular spectrum of plane waves," J. Opt. Soc. Am. A 20, 1755-1762 (2003)
  2. Kyoji Matsushima, "Formulation of the rotational transformation of wave fields and their application to digital holography," Appl. Opt. 47, D110-D116 (2008)
  3. James G. Pipe and Padmanabhan Menon, "Sampling density compensation in MRI: Rationale and an iterative numerical solution," Magn. Reson. Med. 41, 179-186 (1999)