How to plot 2D phase distribution of a beam?

17 views (last 30 days)
Athira T Das
Athira T Das on 26 Jun 2023
Commented: Deep on 26 Jun 2023
I have the electric field equation of a beam,
And I need to plot the 2D phase distribution of the beam like
I am unaware about, how to write a matlab code for plotting phase distribution of the beam.

Answers (1)

Sharad
Sharad on 26 Jun 2023
As per my understanding, you are interested in plotting the 2D phase distribution of the beam, when the equation of the beam is available. In order to do this, you can try out these steps:
  • Define the equation in MATLAB using the variables present in your equation. An example definition may look like this:
wavelength = 900e-9;
k = 2*pi / wavelength;
phase = @(x, y) k*x^2 + k*y^2;
% In your case, the variables might be 'r' and 'phi'
  • Generate a grid of the x and y values using meshgrid function.
x = linspace(-1, 1, 100); % x coordinates
y = linspace(-1, 1, 100); % y coordinates
[X, Y] = meshgrid(x, y);
  • Calculate the phase based on the x and y values using the function you have defined.
Phase = phase(X, Y);
  • Plot the resulting data using the imagesc function.
figure;
imagesc(x, y, Phase); % plot the phase distribution as an image
colormap('jet');
xlabel('x'); ylabel('y'); % set axis labels
title('2D Phase Distribution');
Here are some relevant documentations that you might want to follow.
Thank you!
  2 Comments
Athira T Das
Athira T Das on 26 Jun 2023
@Sharad as per your code the electric field equation of the beam is not utilized.
Deep
Deep on 26 Jun 2023
@Athira T Das You can express your equation in MATLAB and continue with the plot, after converting the cartesian coordinates to polar.
[r, phi] = cart2pol(X, Y);
Applying your equation,
% Constants
E_2 = 1;
w = 1;
n = 6;
m = 1;
L_m_n = 1;
% Apply your electric field equation
E_r_phi = E_2 * exp(-r.^2 / w.^2 + 2i*n*phi) .* (r/w).^(2*abs(n)) .* (L_m_n * (r.^2/w.^2)).^2;
After that, you can try Sharad's plotting code and see if you get the results you desire.
Phase = E_r_phi;
imagesc(x, y, Phase);

Sign in to comment.

Tags

Community Treasure Hunt

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

Start Hunting!