高斯光束matlab仿真代码
时间: 2023-09-11 13:07:21 浏览: 100
以下是一个简单的高斯光束Matlab仿真代码:
```matlab
% 定义高斯光束参数
w0 = 2; % 高斯光束半径
lambda = 1; % 波长
z = 10; % 光束传输距离
% 定义仿真空间
x = linspace(-5,5,100);
y = linspace(-5,5,100);
[X,Y] = meshgrid(x,y);
r = sqrt(X.^2 + Y.^2);
% 计算高斯光束
G = exp(-(r/w0).^2);
E = G .* exp(1i * 2*pi/lambda * z);
% 绘制高斯光束
figure;
subplot(2,2,1);
imagesc(x,y,real(G));
title('Gaussian Beam Intensity');
xlabel('x');
ylabel('y');
colormap(gray);
axis equal tight;
subplot(2,2,2);
imagesc(x,y,imag(G));
title('Gaussian Beam Phase');
xlabel('x');
ylabel('y');
colormap(gray);
axis equal tight;
subplot(2,2,3);
imagesc(x,y,abs(E).^2);
title('Gaussian Beam Propagation');
xlabel('x');
ylabel('y');
colormap(gray);
axis equal tight;
subplot(2,2,4);
plot(x,abs(E(50,:)).^2);
title('Gaussian Beam Profile');
xlabel('x');
ylabel('|E|^2');
axis tight;
```
该代码将绘制一个高斯光束的强度和相位图像,以及光束在传输距离z后的强度和横截面剖面图像。通过更改高斯光束参数和仿真空间,可以生成不同的高斯光束仿真结果。