Optical Propagation Methods
Here are some useful optical propagation methods.
OpticalPropagation.angularspectrum — Functionangularspectrum(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.
angularspectrum(Uin::MonoLightField2D, d::Unitful.Length) -> MonoLightField2Dcalculate the propagation light field for MonoLightField2D based on the angular spectrum.
angularspectrum(d)represent an angularspectrum propagation functor with the specified distance.
OpticalPropagation.fresnel1 — Functionfresnel1(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.
fresnel1(Uin::MonoLightField2D, d::Unitful.Length) -> MonoLightField2Dcalculate the propagation light field for MonoLightField2D based on the Fresnel diffraction with single Fourier transform.
fresnel1(d)represent a fresnel1 propagation functor with the specified distance.
OpticalPropagation.fresnel2 — Functionfresnel2(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.
fresnel2(Uin::MonoLightField2D, d::Unitful.Length) -> MonoLightField2Dcalculate the propagation light field for MonoLightField2D based on the Fresnel diffraction with double Fourier transform.
fresnel2(d)represent a fresnel2 propagation functor with the specified distance.