slmsuite.holography.toolbox.phase.axicon

axicon(grid, f=(inf, inf), w=None)[source]

Returns an axicon lens, the phase farfield for a Bessel beam. A (elliptically)-cylindrical axicon blazes according to \(\vec{k}_g = w / \vec{f} / 2\) where \(w\) is the radius of the axicon. With a flat input amplitude over \([-w, w]\), this will produce a Bessel beam centered at \(z = \vec{f}\).

\[\phi(\vec{x}) = 2\pi \cdot \vec{k}_g \cdot |\vec{x}|\]
Parameters
  • grid ((array_like, array_like) OR SLM) – Meshgrids of normalized \(\frac{x}{\lambda}\) coordinates corresponding to SLM pixels, in (x_grid, y_grid) form. These are precalculated and stored in any SLM, so such a class can be passed instead of the grids directly.

  • f (float OR (float, float)) – Focal length (center of the axicon diamond) in normalized \(\frac{x}{\lambda}\) units. Scalars are interpreted as a non-cylindrical isotropic axicon. Defaults to infinity (no axicon).

  • w (float OR None) – See _determine_source_radius().

Returns

The phase for this function.

Return type

numpy.ndarray