フィルターのクリア

Orbital Angular Momentum Vertex Beam design based on 4 phase level

29 ビュー (過去 30 日間)
Naeem
Naeem 2023 年 1 月 28 日
コメント済み: Siti Hasunah 2023 年 11 月 28 日
Hello Everyone,
I designed Orbital Angular Momentum (OAM) using the following MATLAB code
NUM = 100;
x = linspace(-12,12,NUM);
y = x;
[X,Y] = meshgrid(x,y);
charge =1;
theta= charge*atan2(X,Y);
Amp = ones(NUM);
OAM = Amp.*exp(1i*theta);
This code will generate OAM consisting of multi phase values. Whereas, I need an OAM which consist of only 4 phase values. Here, for the understanding I am attaching a picture of the OAM phase plate. A simple distribution like the following picture or generating such OAM distribution by formula both can help for my requirement.
  1 件のコメント
Siti Hasunah
Siti Hasunah 2023 年 9 月 6 日
Hi, I tried to generate an OAM wave-front phase using MATLAB and want to see the results with different OAM mode. I managed to get wave-front for OAM mode = 0 and 1, but then the result doesn't differ for higher OAM mode more than 1. How can I get the different wave-front just like below attached picture of mode l = 2?
These are the codes I used to generate the wave front:
% Define parameters
desired_distance = 2.0; % Desired transmission distance (2 meters)
wavelength = 1.551e-6; % Wavelength (in meters)
num_points_x = 200; % Number of points in the x-direction
num_points_y = 200; % Number of points in the y-direction
x = linspace(-desired_distance/2, desired_distance/2, num_points_x);
y = x;
[X, Y] = meshgrid(x, y);
% OAM mode parameters
l = 1; % OAM mode order (change to the desired order)
k = 2 * pi / wavelength; % Wavenumber
% Calculate azimuthal angle theta
theta = atan2(Y,X);
% Calculate the OAM wave-front phase
phase = l * theta;
% Display the phase pattern
figure;
imagesc(x, y, phase);
axis equal;
title(['OAM Mode (l = ', num2str(l), ') Wave-Front Phase Pattern']);
xlabel('X (meters)');
ylabel('Y (meters)');
colorbar;

サインインしてコメントする。

採用された回答

Naeem
Naeem 2023 年 9 月 20 日
For the higher order OAM you can use the following code. Jucst change the charge values and you will get the desired OAM.
clear;
clc;
NUM = 100;
x = linspace(-50,50,NUM);
y = x;
[X,Y] = meshgrid(x,y);
R = sqrt(X.^2+Y.^2);
charge =3;
theta = charge*atan2(X,Y);
%imagesc(theta)
Amp = ones(NUM);
Ex = Amp.*exp(1i*theta).*(R<50);
Ey = Amp.*exp(1i*theta).*exp(1i*pi/2).*(R<50);%
%Ey = Amp.*exp(1i*theta);
Exx = Amp.*exp(1i*theta);
figure;imagesc(x,y,angle(Ex));colorbar;daspect([1 1 1]);set(gca,'ydir','normal');

その他の回答 (1 件)

Image Analyst
Image Analyst 2023 年 1 月 28 日
How about this:
NUM = 100;
x = linspace(-12,12,NUM);
y = x;
[X,Y] = meshgrid(x,y);
charge =1;
theta= charge*atan2d(X,Y);
subplot(2, 1, 1);
imshow(theta, []);
impixelinfo
Amp = zeros(NUM);
% Top triangle.
mask = theta <= -135 | theta > 135;
Amp(mask) = pi/2;
% Right triangle.
mask = theta >= 45 & theta < 135;
Amp(mask) = 0
% Bottom triangle.
mask = theta >= -45 & theta < 45;
Amp(mask) = 3 * pi / 2
% Left triangle.
mask = theta <= -45 & theta > -135;
Amp(mask) = pi
subplot(2, 1, 2);
imshow(Amp, []);
impixelinfo
colorbar
  2 件のコメント
Naeem
Naeem 2023 年 2 月 7 日
Dear Image Analyst,
Thank you so much for the prompt response and for your kind help. That’s exactly what I need it help me a lot and now I am utilizing it. Could you also please comment on generating OAM phase mask for l=2 (topological charge=2). I.e the phase mask in which the 4 phases are repeated twice, or the phase mask consist of 8 equally distributed phase values then I will use accordingly. Your help regarding this issue is appreciable thanks in advance.
Image Analyst
Image Analyst 2023 年 2 月 7 日
編集済み: Image Analyst 2023 年 2 月 8 日
I don't know what that is. Do you have an example?
If you need 8 or more sectors, you can simply put my triangle code into a loop over all sector angles. Is that what you want to do? I think you're skilled enough to do that -- just make a for loop.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeGuidance, Navigation, and Control (GNC) についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by