matlab实现六路高斯光经过透镜实现聚焦功能代码
时间: 2024-05-01 13:20:05 浏览: 21
以下是一个简单的 Matlab 代码,该代码模拟了六路高斯光束经过透镜进行聚焦的过程。该代码假设透镜为理想透镜,可以对光束进行理想的聚焦。你可以根据需要进行修改和优化。
```
% 定义六路高斯光束的参数
w0 = 1e-3; % 光束半径
lambda = 633e-9; % 波长
k = 2*pi/lambda; % 波矢
z0 = 0; % 初始位置
zR = pi*w0^2/lambda; % Rayleigh 范围
z = linspace(0, 1e-2, 1000); % 透镜到屏幕的距离
% 定义透镜的参数
f = 100e-3; % 焦距
D = 10e-3; % 透镜直径
% 计算六路高斯光束的复振幅
u1 = w0*sqrt(2)*exp(-1i*k*z0)*exp(-(w0*z/zR).^2).*exp(1i*k*z);
u2 = w0*sqrt(2)*exp(-1i*k*z0)*exp(-(w0*z/zR).^2).*exp(-1i*k*z);
u3 = w0*sqrt(2)*exp(-1i*k*z0)*exp(-(w0*z/zR).^2).*exp(1i*k*z);
u4 = w0*sqrt(2)*exp(-1i*k*z0)*exp(-(w0*z/zR).^2).*exp(-1i*k*z);
u5 = w0*sqrt(2)*exp(-1i*k*z0)*exp(-(w0*z/zR).^2).*exp(1i*k*z);
u6 = w0*sqrt(2)*exp(-1i*k*z0)*exp(-(w0*z/zR).^2).*exp(-1i*k*z);
% 定义透镜的传输函数
H = @(r) exp(1i*k/(2*f)*r.^2).*exp(-1i*k/f).*exp(-(2*pi*r/D).^2);
% 透镜前的复振幅
U1 = u1 + u2 + u3 + u4 + u5 + u6;
% 计算透镜对六路光束的传输效应
U2 = fftshift(fft2(ifftshift(U1))).*H(sqrt(x.^2+y.^2));
% 透镜后的复振幅
U3 = ifftshift(ifft2(fftshift(U2)));
% 计算六路光束在屏幕上的光强分布
I = abs(U3).^2;
% 绘制六路光束在屏幕上的光强分布
figure;
imagesc(z*1e3, z*1e3, I);
axis image;
colormap hot;
xlabel('x(mm)');
ylabel('y(mm)');
title('六路高斯光束在透镜后的光强分布');
```
请注意,该代码中的参数值仅供参考。你需要根据实际情况进行调整。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)