高斯光束传输经过螺旋相位板进行调制,最后生成涡旋光束的MATLAB代码
时间: 2023-11-27 16:50:11 浏览: 188
高斯光束经过多阶螺旋相位板后光束特性研究
以下是一个生成涡旋光束的MATLAB代码示例,其中包括高斯光束的传输和螺旋相位板的调制:
```matlab
%% Parameters
wavelength = 633e-9; % 波长
k = 2*pi/wavelength; % 波数
z = 10e-3; % 传输距离
z_R = pi*w0^2/wavelength; % 焦距
R = z*(1+(z_R/z)^2); % 半径
w = w0*sqrt(1+(z/z_R)^2); % 束腰半径
N = 256; % 离散化点数
L = 10e-3; % 采样区域尺寸
dx = L/N; % 离散化步长
x = linspace(-L/2,L/2,N); % 空间坐标
%% Gaussian beam
[xx,yy] = meshgrid(x);
E0 = 1; % 初始振幅
phi = 0; % 初始相位
E = E0*exp(-(xx.^2+yy.^2)/w^2).*exp(-1i*k*z).*exp(1i*phi); % 高斯光束
%% Spiral phase plate
theta = atan2(yy,xx); % 极角
r = sqrt(xx.^2+yy.^2); % 极径
l = 2; % 螺旋度
psi = l*theta; % 螺旋相位
plate = exp(1i*psi); % 螺旋相位板
%% Propagation
H = fftshift(fft2(ifftshift(plate.*E))); % 空间传输函数
H = exp(-1i*k*z)*exp(1i*k*r.^2/(2*R))/(1i*wavelength*R).*H; % 傅里叶平面相移
E_prop = ifftshift(ifft2(fftshift(H))); % 传输后的光束
%% Plot results
figure;
subplot(1,3,1);
imagesc(x,x,abs(E).^2);
axis image;
title('Gaussian beam');
subplot(1,3,2);
imagesc(x,x,angle(plate));
axis image;
title('Spiral phase plate');
subplot(1,3,3);
imagesc(x,x,abs(E_prop).^2);
axis image;
title('Vortex beam after propagation');
```
这个代码使用了FFT算法来计算光束的传输,其中包括傅里叶平面相移来修正高斯光束的传输,并且使用螺旋相位板来调制光束的相位以生成涡旋光束。
阅读全文