Optical Propagation Methods

Here are some useful optical propagation methods.

OpticalPropagation.angularspectrumFunction
angularspectrum(Uin, d, λ, lx, ly)

calculate the propagation light field based on the angular spectrum.

Arguments

  • Uin::AbstractArray{<:Number,2}: Complex array of input complex amplitude.
  • d::Real: Distance to propagate in metres.
  • λ::Real: Wavelength of light to propagate.
  • lx::Real: The physical size of the input data along the x-axis.
  • ly::Real: The physical size of the input data along the y-axis.

Returns

  • ::Array{<:Number,2}: Complex amplitude data after propagation.
source
angularspectrum(Uin::MonoLightField2D, d::Unitful.Length) -> MonoLightField2D

calculate the propagation light field for MonoLightField2D based on the angular spectrum.

source
angularspectrum(d)

represent an angularspectrum propagation functor with the specified distance.

source
OpticalPropagation.fresnel1Function
fresnel1(Uin, d, λ, lx, ly)

calculate the propagation light field based on the Fresnel diffraction with single Fourier transform.

Arguments

  • Uin::AbstractArray{<:Number,2}: Complex array of input complex amplitude.
  • d::Real: Distance to propagate in metres.
  • λ::Real: Wavelength of light to propagate.
  • lx::Real: The physical size of the input data along the x-axis.
  • ly::Real: The physical size of the input data along the y-axis.

Returns

(Uout, (lxo, lyo))
  • Uout::Array{<:Number,2}: Complex amplitude data after propagation.
  • lxo::Real: The physical size of the diffraction data along the x-axis.
  • lyo::Real: The physical size of the diffraction data along the y-axis.
source
fresnel1(Uin::MonoLightField2D, d::Unitful.Length) -> MonoLightField2D

calculate the propagation light field for MonoLightField2D based on the Fresnel diffraction with single Fourier transform.

source
fresnel1(d)

represent a fresnel1 propagation functor with the specified distance.

source
OpticalPropagation.fresnel2Function
fresnel2(Uin, d, λ, lx, ly)

calculate the propagation light field based on the Fresnel diffraction with double Fourier transform.

Arguments

  • Uin::AbstractArray{<:Number,2}: Complex array of input complex amplitude.
  • d::Real: Distance to propagate in metres.
  • λ::Real: Wavelength of light to propagate.
  • lx::Real: The physical size of the input data along the x-axis.
  • ly::Real: The physical size of the input data along the y-axis.

Returns

  • ::Array{<:Number,2}: Complex amplitude data after propagation.
source
fresnel2(Uin::MonoLightField2D, d::Unitful.Length) -> MonoLightField2D

calculate the propagation light field for MonoLightField2D based on the Fresnel diffraction with double Fourier transform.

source
fresnel2(d)

represent a fresnel2 propagation functor with the specified distance.

source