MATLAB:菲涅尔公式(反射/透射公式)

目录

案例1:光疏到光密介质

案例2:光密到光疏介质


案例1:光疏到光密介质

平面光波从空气(折射率为gif.latex?n_1%3D1)入射到石英玻璃中(折射率为gif.latex?n_2%3D1.45,用 MATLAB作出p、s分量的振幅反射率振幅透射率以及它们的绝对值随入射角度的变化曲线

MATLAB代码:

在 MATLAB中分别调用平面光波的电矢量平行入射面的情况下的菲涅尔公式,该情况也常常被称为TE波或者p-偏振入射

n_2%29%5E2sin%5E2%5Ctheta_i%7D%7D

 n_2%29%5E2sin%5E2%5Ctheta_i%7D%7D

再调用平面光波的电矢量垂直入射面的情况下的菲涅尔公式,该情况也常常被称为TM波或者s-偏振入射

n_2%29%5E2sin%5E2%5Ctheta_i%7D%7D

n_2%29%5E2sin%5E2%5Ctheta_i%7D%7D

计算出它们的绝对值,然后作图即可。

MATLAB代码如下: 

clear; %清空内存空间
close all; %关闭所有的作图页面
n1 = 1; n2 = 1.45; %介质折射率
theta=0:0.1:90; %入射角范围0—90度,步距0.1度
a=theta*pi/180; %角度化为弧度
rp = (n2*cos(a)-n1*sqrt(1-(n1/n2*sin(a)).^2))./... %p分量振幅反射率
    (n2*cos(a)+n1*sqrt(1-(n1/n2*sin(a)).^2));
rs = (n1*cos(a)-n2*sqrt(1-(n1/n2*sin(a)).^2))./... %s分量振幅反射率
    (n1*cos(a)+n2*sqrt(1-(n1/n2*sin(a)).^2));
tp = 2*n1*cos(a)./(n2*cos(a)+n1*sqrt(1-(n1/n2*sin(a)).^2)); %p分量振幅透射率
ts = 2*n1*cos(a)./(n1*cos(a)+n2*sqrt(1-(n1/n2*sin(a)).^2)); %s分量振幅透射率
figure(1);
subplot(1,2,1); %作图rp、rs、|rpl、|rs|随入射角的变化曲线
plot(theta,rp,' -',theta,rs,'--',theta,abs(rp),':',....
    theta,abs (rs) , ' -.' ,'LineWidth',2)
legend('r_p','r_s','|r_p|','|r_s|')
xlabel('\theta_i');
ylabel('Amplitude');
title( ['n_1=',num2str(n1),', n_2=',num2str(n2)]);
axis([0 90 -1 1]) %设定作图区间
grid on; %作图加栅格
subplot(1,2,2); %作图rp、rs、|rp|、|rs|随入射角的变化曲线
plot (theta,tp,'-' ,theta,ts,'--',theta,abs(tp),':',...
    theta,abs (ts) , '-.' ,'LineWidth',2)
legend('t_p','t_s','|t_pl','|t_s|');
xlabel('\theta_i');
ylabel('Amplitude');
title (['n_1=',num2str(n1),', n_2=', num2str(n2)]);
axis([0 90 0 1]);
grid on;

结果:

1dde34745bc79524ec55a62b2d3b7319.png
光疏到光密介质

源代码下载地址:菲涅尔公式MATLAB作图:振幅反射率和振幅透射率随入射角度的变化曲线资源-CSDN文库

案例2:光密到光疏介质

平面光波从石英玻璃(折射率为n_1=1.45)入射到空气中(折射率为n_2=1,用 MATLAB作出p、s分量的振幅反射率振幅透射率以及它们的绝对值随入射角度的变化曲线

MATLAB代码:

将上述代码中的n_1n_2数值改动一下,调整一下图形的y轴范围,重新作图,代码如下:

clear       %清空内存空间
close all   %关闭所有的作图页面

n1 = 1.45; n2 = 1;  %介质折射率
theta = 0:0.1:90;   %入射角范围0-90度,步距0.1度
a = theta*pi/180;   %角度化为弧度

rp = (n2*cos(a)-n1*sqrt(1-(n1/n2*sin(a)).^2))./...      %p分量振幅反射率
    (n2*cos(a)+n1*sqrt(1-(n1/n2*sin(a)).^2));
rs = (n1*cos(a)-n2*sqrt(1-(n1/n2*sin(a)).^2))./...      %s分量振幅反射率
    (n1*cos(a)+n2*sqrt(1-(n1/n2*sin(a)).^2));
tp = 2*n1*cos(a)./(n2*cos(a)+n1*sqrt(1-(n1/n2*sin(a)).^2));%p分量振幅透射率
ts = 2*n1*cos(a)./(n1*cos(a)+n2*sqrt(1-(n1/n2*sin(a)).^2));%s分量振幅透射率

figure(1);
subplot(1,2,1);      %作图rp、rs、|rp|、|rs|随入射角的变化曲线
plot(theta,rp,'-',theta,rs,'--',theta,abs(rp),':',... 
    theta,abs(rs),'-.','LineWidth',2)
legend('r_p','r_s','|r_p|','|r_s|') 
xlabel('\theta_i')
ylabel('Amplitude')
title(['n_1=',num2str(n1),',n_2=',num2str(n2)])
axis([0 90 -1 1.2])   %设定作图区间
grid on             %作图加栅格

subplot(1,2,2);     %作图rp、rs、|rp|、|rs|随入射角的变化曲线
plot(theta,tp,'-',theta,ts,'--',theta,abs(tp),':',...
    theta,abs(ts),'-.','LineWidth',2)
legend('t_p','t_s','|t_p|','|t_s|')
xlabel('\theta_{i_1}')
ylabel('Amplitude')
title(['n_1=',num2str(n1),',n_2=',num2str(n2)])
axis([0 90 0 3])
grid on

结果:

光密到光疏介质

本文未经允许,不得转载。

关注CSDN“光学码农”!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

光学码农

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值