设置高斯光束为单向传播,即z<0区域为零场,z>0为单向行波(matlab代码,注释)
时间: 2024-01-22 11:18:40 浏览: 244
基于Matlab高斯光束前向与后向传播的模拟
5星 · 资源好评率100%
以下是MATLAB代码实现:
```matlab
% 定义高斯光束的参数
lambda = 632.8e-9; % 波长
k = 2*pi/lambda; % 波数
w0 = 1e-3; % 光束半径
zR = pi*w0^2/lambda; % 焦距
% 定义空间坐标
x = linspace(-5*w0, 5*w0, 500);
y = x;
[X, Y] = meshgrid(x, y);
r = sqrt(X.^2 + Y.^2);
% 定义传播距离
z = 1;
% 计算高斯光束的电场强度分布
E = exp(-(r/w0).^2).*exp(-1i*k*r.^2/(2*zR^2))/(w0*sqrt(pi/zR));
E(r>w0) = 0; % z<0区域为零场
% 绘制电场强度分布
figure;
imagesc(x, y, abs(E).^2);
axis equal tight;
colormap(hot);
colorbar;
title(sprintf('Gaussian beam at z = %g', z));
xlabel('x (m)');
ylabel('y (m)');
```
其中,我们通过设置 `E(r>w0) = 0` 将电场强度在 `r>w0` 的区域设为零,从而实现了高斯光束的单向传播。
阅读全文