use "Angular-Spectrum Propagation" to calculate intensity distribution at focal plane of a lens, but the outcome is not only a central spot, but accompanying with some "diffraction order" as shown below:

46 views (last 30 days)
clear,clc
lamuda=550e-9;k=2*pi/lamuda; radius=2e-3;diameter=2*radius; foc_length=400e-3;
L=255; x=linspace(-radius,radius,L);delt=x(2)-x(1); [x,y]=meshgrid(x,x);
E=exp(-i*k*(x.^2+y.^2)./2/foc_length); intensity=angular_spectrum(E,delt,L,foc_length); figure(4),mesh(x,y,intensity)
%% This is a user-defined fuction:
function intensity=angular_spectrum(E,delta_x,L,z) % This function compute focal spot intensity distribution, using angular % spectrum methord.
% *E is amplitude of light field after lens. % *delta_x is sampling interval of pupil or lenslet. %% System parameters i=sqrt(-1); lamuda=551e-9;k=2*pi/lamuda; % wavelength of light.
%% Generation of Fourier transfrom of propogator fx=1/2/delta_x*linspace(-1,1,L);fy=fx; [fx,fy]=meshgrid(fx,fy); r2=fx.^2+fy.^2; Fh=1/i/lamuda/z.*exp(i*z*k.*sqrt(1-lamuda^2*r2)); % Fh is fourier transform of propogator.
%% Generation of Trasnform of diffract spot FU0=fft2(E); % fourier transform of optical amplitude.
Fh=ifftshift(Fh); FU=FU0.*Fh; % FU is transform of light amplitude at observatory plane. We use this equation because amplitude on observatory plane is convolution of pupil amplitude and propogator. U=ifft2(FU); intensity=abs(U).^2; end

Answers (1)

Han St
Han St on 6 Aug 2019
Hi. The function for angular spectrum propagation needs to apply the same wavelength as you use for creating the initial field...I suggest using lamuda as an additional input constant for the function: intensity = angular_spectrum(E,delta_x,L,z, lamuda).

Categories

Find more on Accelerators & Beams in Help Center and File Exchange

Products

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!