代码如下:
clear all;
close all;
clc
h=input('输入膜层厚度:'); %输入膜层厚度;
data1=importdata('D:\数据\matlab学习\光学仿真\反射率仿真\nk值\PMMA.txt');
data2=data1.data;%将data1中的数值赋值给data2;
x=1000.*data2(:,1);%波长;
y1=data2(:,2);%n值;
n1=length(x);%波长数量;
p=polyfit(x,y1,3);%3次多项式拟合,获取对应拟合系数;
theta=0:1:90;%入射角定义,0-90°,step 1°;
a=theta*pi/180;%角度转换为弧度;
n1=1;%空气层折射率定义;
w=380:1:780;%波长定义,380-780nm,step 1nm;
k=menu('相干性','相干','非相干'); %选择相干或者非相干,来计算反射率和透过率;
for i=1:401
n2(i)=polyval(p,w(i));%PMMA材料不同波长下折射率拟合值;
rp(i,:)=(n2(i)*cos(a)-n1*sqrt(1-(n1/n2(i)*sin(a)).^2))./(n2(i)*cos(a)+n1*sqrt(1-(n1/n2(i)*sin(a)).^2));%菲涅尔公式计算p偏振光反射系数;
rs(i,:)=(n1*cos(a)-n2(i)*sqrt(1-(n1/n2(i)*sin(a)).^2))./(n1*cos(a)+n2(i)*sqrt(1-(n1/n2(i)*sin(a)).^2));%s偏振光反射系数计算