How to plot 2D phase distribution of a beam?

17 Ansichten (letzte 30 Tage)
Athira T Das
Athira T Das am 26 Jun. 2023
Kommentiert: Deep am 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.

Antworten (1)

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

Melden Sie sich an, um zu kommentieren.

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by