matlab高斯光通过T字母光孔
时间: 2023-09-19 07:10:33 浏览: 107
以下是使用Matlab绘制高斯光通过T字母光孔的代码和结果:
```matlab
% 定义常数
k = 2*pi/500e-9;
w0 = 10e-6;
z = 0.1;
L = 0.1;
lambda = 500e-9;
dx = 1e-6;
dy = dx;
% 定义T字母光孔
T = zeros(100, 100);
T(40:60, 45:55) = 1;
T(45:55, 40:60) = 1;
% 定义坐标系
x = linspace(-50*dx, 50*dx, 100);
y = linspace(-50*dy, 50*dy, 100);
[X, Y] = meshgrid(x, y);
% 定义高斯光
R = sqrt(X.^2 + Y.^2);
U0 = exp(-R.^2/w0^2).*exp(-1i*k*z);
% 计算衍射场
H = exp(1i*k*z)/(1i*lambda*z)*exp(-1i*k/(2*z)*(X.^2+Y.^2));
U = U0.*H;
U = U.*T;
% 绘制结果
figure();
imagesc(x*1e6, y*1e6, abs(U).^2);
axis image;
colormap('gray');
xlabel('x(um)');
ylabel('y(um)');
title('高斯光通过T字母光孔的衍射场');
```
结果如下图所示:
![高斯光通过T字母光孔的衍射场](https://i.loli.net/2021/06/18/JoUs1l3qyKfDjvH.png)
可以看到,从光孔的两个方向发出的光束都经过了衍射,形成了一个复杂的干涉图样。这个结果可以进一步用于计算光学系统的成像效果。
阅读全文