📄 光波导折射率与深度关系程序.txt
字号:
clc%清除指令框中的内容为程序的运行提供条件
clear%清除所有已定义变量为程序的运行提供条件
%%%%%%%%%%输入实验中测量到的参数及实验仪器的相关参数%%%%%%%%%%%
normal=319.4; %法线的角度坐标
mode=[305.4 306.9 308.1 309.2 310.2 311.2 312.0 313.0 313.8 314.7 315.5];%模式的角度坐标
A=60; %棱镜底面与棱镜进光面(即:斜面)夹角
np=1.712; %棱镜折射率
x0=0;%光波导的表面坐标(深度)
theta=abs(normal-mode)*pi/180;%入射光与棱镜斜面法线的夹角(即:光线的入射角),弧度制
A=A*pi/180;%棱镜底面与棱镜进光面(即:斜面)夹角,弧度制
%%%%%%%%%%求各阶模的模式折射率%%%%%%%%%%%%
N=np*sin(A+asin(sin(theta)/np));%求出各模式的模式折射率
%%%%%%%%%%用反WKB 法求折射率N 与波导厚度x 的关系曲线%%%%%%%%%%%
delta=0.085;%为求表面折射率而必须在一阶模折射率上所加的值
N0=N(1)+delta;%求出波导表面折射率的大小
a1=1/sqrt((N0+3*N(1))/2);
a2=1/sqrt(N0-N(1));
x(1)=9/16*a1*a2;%计算出一阶模的模深度
for m=2:nnz(mode)
a1=1/sqrt((N(m-1)+3*N(m))/2);
a2=1/sqrt(N(m-1)-N(m));
a3=(4*m-1)/8;
a41=(N0/2+N(1)/2+N(m))^0.5;
a42=(x(1)-x0)/(N0-N(1));
a43=(N0-N(m))^1.5;
a44=(N(1)-N(m))^1.5;
a4=a41*a42*(a43-a44);
if (m-1>=2)
for k=2:m-1
a41=sqrt(N(k-1)/2+N(k)/2+N(m));
a42=(x(k)-x(k-1))/(N(k-1)-N(k));
a43=(N(k-1)-N(m))^1.5;
a44=(N(k)-N(m))^1.5;
a4=a4+a41*a42*(a43-a44);
end
end
x(m)=x(m-1)+3/2*a1*a2*(a3-a4);%计算出二阶及其以上各阶模的模深度
end
M=zeros(1,nnz(mode)+1);%定义一个一维向量,用于存储表面折射率和各阶模式折射率
y=M;%定义一个一维向量,用于存储包括表面坐标和各阶模式深度
M(1,1)=N0;
y(1,1)=0;
for i=1:nnz(mode)
y(1,i+1)=x(i);
M(1,i+1)=N(i);
end
plot(y,M,'ro')%画出各阶模式模深度所对应的有效模折射率
hold on
%%%%%%%%最小二乘法拟合(以深度y作为自变量,各阶模折射率M作为应变量)%%%%%%%%%%
[p,s]=polyfit(y,M,3);%p为多项式拟合的系数向量
step=(y(nnz(mode)+1)-y(1))/1000;
n=y(1):step:y(nnz(mode)+1);
X=polyval(p,n);
plot(n,X)%画出最小二乘法拟合出的波导折射率轮廓
hold on
xlabel('波导厚度x')
ylabel('波导折射率N')
title('波导折射率N 与波导厚度x 的关系曲线')
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -