用matlab模拟光通过折射率失配的介质后的光场强度
时间: 2023-07-16 13:13:52 浏览: 102
光通过折射率失配的介质后,会发生折射和反射,光场强度的变化可以用Fresnel公式描述。在MATLAB中,可以使用以下代码模拟光通过折射率失配的介质后的光场强度:
```matlab
% 定义入射光波长、入射角、折射率
lambda = 632.8e-9; % 光波长
theta_i = 30; % 入射角,单位为度
n1 = 1.5; % 入射介质的折射率
n2 = 1.2; % 折射率失配的介质的折射率
% 计算反射系数和透射系数
theta_t = asin(n1*sin(theta_i*pi/180)/n2); % 折射角
r_perp = (n1*cos(theta_i*pi/180) - n2*cos(theta_t))/(n1*cos(theta_i*pi/180) + n2*cos(theta_t)); % 垂直于入射面的反射系数
r_par = (n2*cos(theta_i*pi/180) - n1*cos(theta_t))/(n2*cos(theta_i*pi/180) + n1*cos(theta_t)); % 平行于入射面的反射系数
t_perp = 2*n1*cos(theta_i*pi/180)/(n1*cos(theta_i*pi/180) + n2*cos(theta_t)); % 垂直于入射面的透射系数
t_par = 2*n1*cos(theta_i*pi/180)/(n2*cos(theta_i*pi/180) + n1*cos(theta_t)); % 平行于入射面的透射系数
% 计算反射光和透射光的光场强度分布
x = linspace(-0.002, 0.002, 1000); % 生成坐标轴
y = linspace(-0.002, 0.002, 1000);
[X,Y] = meshgrid(x,y);
k = 2*pi/lambda; % 波数
z1 = 0; % 入射面
z2 = 0.01; % 折射率失配的介质厚度
Ei = exp(1i*k*(X*sin(theta_i*pi/180) + Y*cos(theta_i*pi/180))); % 入射光电场
Er_perp = r_perp*exp(1i*k*(X*sin(theta_i*pi/180) - Y*cos(theta_i*pi/180))); % 垂直于入射面的反射光电场
Er_par = r_par*exp(1i*k*(X*cos(theta_i*pi/180) + Y*sin(theta_i*pi/180))); % 平行于入射面的反射光电场
Et_perp = t_perp*exp(1i*k*(X*sin(theta_t*pi/180) + Y*cos(theta_t*pi/180))); % 垂直于入射面的透射光电场
Et_par = t_par*exp(1i*k*(X*cos(theta_t*pi/180) - Y*sin(theta_t*pi/180))); % 平行于入射面的透射光电场
E1 = Ei + Er_perp + Er_par; % 入射面反射光和透射光的叠加电场
E2 = Et_perp + Et_par; % 折射率失配的介质内的电场
E3 = t_perp*exp(1i*k*(X*sin(theta_i*pi/180) + Y*cos(theta_i*pi/180) - 2*n2*z2/lambda)); % 折射率失配的介质内的反射光电场
Er_total = Er_perp + Er_par + E3; % 总反射光电场
Et_total = t_perp*t_par*exp(1i*k*(X*sin(theta_t*pi/180) + Y*cos(theta_t*pi/180) + 2*n1*z1/lambda)); % 总透射光电场
E_total = E2 + Er_total + Et_total; % 总电场
% 绘制反射光和透射光的光场强度分布
figure
subplot(2,2,1)
imagesc(x*1e3,y*1e3,abs(Er_perp).^2)
title('垂直于入射面的反射光光场强度')
xlabel('x (mm)')
ylabel('y (mm)')
axis equal tight
colorbar
subplot(2,2,2)
imagesc(x*1e3,y*1e3,abs(Er_par).^2)
title('平行于入射面的反射光光场强度')
xlabel('x (mm)')
ylabel('y (mm)')
axis equal tight
colorbar
subplot(2,2,3)
imagesc(x*1e3,y*1e3,abs(Et_perp).^2)
title('垂直于入射面的透射光光场强度')
xlabel('x (mm)')
ylabel('y (mm)')
axis equal tight
colorbar
subplot(2,2,4)
imagesc(x*1e3,y*1e3,abs(Et_par).^2)
title('平行于入射面的透射光光场强度')
xlabel('x (mm)')
ylabel('y (mm)')
axis equal tight
colorbar
% 绘制总电场的光场强度分布
figure
imagesc(x*1e3,y*1e3,abs(E_total).^2)
title('总光场强度分布')
xlabel('x (mm)')
ylabel('y (mm)')
axis equal tight
colorbar
```
这段代码会生成四张图像,分别为垂直于入射面的反射光、平行于入射面的反射光、垂直于入射面的透射光和平行于入射面的透射光的光场强度分布图像,以及总电场的光场强度分布图像。可以根据需要修改代码中的参数来模拟不同的情形。
阅读全文