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) -> MonoLightField2D
calculate 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) -> MonoLightField2D
calculate 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) -> MonoLightField2D
calculate 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.