How to plot 2D phase distribution of a beam?

17 visualizaciones (últimos 30 días)
Athira T Das
Athira T Das el 26 de Jun. de 2023
Comentada: Deep el 26 de Jun. de 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.

Respuestas (1)

Sharad
Sharad el 26 de Jun. de 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 comentarios
Athira T Das
Athira T Das el 26 de Jun. de 2023
@Sharad as per your code the electric field equation of the beam is not utilized.
Deep
Deep el 26 de Jun. de 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);

Iniciar sesión para comentar.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by