传输矩阵的Matlab简易编程o.docx
《传输矩阵的Matlab简易编程o.docx》由会员分享,可在线阅读,更多相关《传输矩阵的Matlab简易编程o.docx(8页珍藏版)》请在冰豆网上搜索。
![传输矩阵的Matlab简易编程o.docx](https://file1.bdocx.com/fileroot1/2023-2/10/8acbef0a-30e3-4059-b00f-2862798f0c89/8acbef0a-30e3-4059-b00f-2862798f0c891.gif)
传输矩阵的Matlab简易编程o
n0=1;%n0为空气折射率
a0=0;%初始入射角为0,即正入射
n1=1.444;
n2=1.7514;
d1=3.4886;
d2=4.6373;
d=1.55;
p1=2*pi*n1*d1/d;
p2=2*pi*n2*d2/d;
u0=4*pi*1e-7;%真空磁导率
e0=1e-9/(36*pi);%真空介电常数
b=sqrt(e0/u0);
c1=b*n1;%波阻抗
c2=b*n2;
c0=b*n0;
c00=b*n0;
A1=cos(p1);B1=-i*sin(p1)/c1;C1=-i*c1*sin(p1);D1=cos(p1);
M1=[A1B1;C1D1];%介质1的传输矩阵
A2=cos(p2);B2=-i*sin(p2)/c2;C2=-i*c2*sin(p2);D2=cos(p2);
M2=[A2B2;C2D2];%介质2的传输矩阵
M=M1*M2;%两个介质层的总传输矩阵
A=M(1,1);B=M(1,2);C=M(2,1);D=M(2,2);
r=(A*c0+B*c0*c00-C-D*c00)/(A*c0+B*c0*c00+C+D*c00)%反射系数
t=(2*c0)/(A*c0+B*c0*c00+C+D*c00)%透射系数
R=r*conj(r)
T=t*conj(t)
以上可作为TE波和TM波的一特列,即垂直入射
n0=1;%n0为空气折射率
a0=input('请输入入射角a0:
');%初始入射角
n1=input('请输入介质1的折射率n1:
');
n2=input('请输入介质2的折射率n2:
');
d1=input('请输入介质1的厚度d1:
');
d2=input('请输入介质2的厚度d2:
');
d=input('请输入入射光波长d:
');
a1=asin(n0*sin(a0)/n1);%光在介质1中的传播角度
a2=asin(n1*sin(a1)/n2);%光在介质2中的传播角度
a3=asin(n2*sin(a2)/n0);%射出介质时的出射角
p1=2*pi*n1*d1*cos(a1)/d;%相位厚度
p2=2*pi*n2*d2*cos(a2)/d;
u0=4*pi*1e-7;%真空磁导率
e0=1e-9/(36*pi);%真空介电常数
b=sqrt(e0/u0);
c1=b*n1*cos(a1);%波阻抗
c2=b*n2*cos(a2);
c0=b*n0*cos(a0);
c00=b*n0*cos(a3);
A1=cos(p1);B1=-i*sin(p1)/c1;C1=-i*c1*sin(p1);D1=cos(p1);
M1=[A1B1;C1D1];%介质1的传输矩阵
A2=cos(p2);B2=-i*sin(p2)/c2;C2=-i*c2*sin(p2);D2=cos(p2);
M2=[A2B2;C2D2];%介质2的传输矩阵
M=M1*M2;%两个介质层的总传输矩阵
A=M(1,1);B=M(1,2);C=M(2,1);D=M(2,2);
r=(A*c0+B*c0*c00-C-D*c00)/(A*c0+B*c0*c00+C+D*c00)%反射系数
t=(2*c0)/(A*c0+B*c0*c00+C+D*c00)%透射系数
R=r*conj(r)
T=t*conj(t)
以上为TE波的例子。
若为TM波则,只有波阻抗表达不同,即:
n0=1;%n0为空气折射率
a0=input('请输入入射角a0:
');%初始入射角
n1=input('请输入介质1的折射率n1:
');
n2=input('请输入介质2的折射率n2:
');
d1=input('请输入介质1的厚度d1:
');
d2=input('请输入介质2的厚度d2:
');
d=input('请输入入射光波长d:
');
a1=asin(n0*sin(a0)/n1);%光在介质1中的传播角度
a2=asin(n1*sin(a1)/n2);%光在介质2中的传播角度
a3=asin(n2*sin(a2)/n0);%射出介质时的出射角
p1=2*pi*n1*d1*cos(a1)/d;%相位厚度
p2=2*pi*n2*d2*cos(a2)/d;
u0=4*pi*1e-7;%真空磁导率
e0=1e-9/(36*pi);%真空介电常数
b=sqrt(e0/u0);
c1=b*n1/cos(a1);%波阻抗
c2=b*n2/cos(a2);
c0=b*n0/cos(a0);
c00=b*n0/cos(a3);
A1=cos(p1);B1=-i*sin(p1)/c1;C1=-i*c1*sin(p1);D1=cos(p1);
M1=[A1B1;C1D1];%介质1的传输矩阵
A2=cos(p2);B2=-i*sin(p2)/c2;C2=-i*c2*sin(p2);D2=cos(p2);
M2=[A2B2;C2D2];%介质2的传输矩阵
M=M1*M2;%两个介质层的总传输矩阵
A=M(1,1);B=M(1,2);C=M(2,1);D=M(2,2);
r=(A*c0+B*c0*c00-C-D*c00)/(A*c0+B*c0*c00+C+D*c00)%反射系数
t=(2*c0)/(A*c0+B*c0*c00+C+D*c00)%透射系数
R=r*conj(r)
T=t*conj(t)
若入射光中TE波,TM波都存在且TE占e%比例,TM占m%比例,则计算方法如下:
n0=1;%n0为空气折射率
e=input('请输入e:
');
m=input('请输入m:
');
a0=input('请输入入射角a0:
');%初始入射角
n1=input('请输入介质1的折射率n1:
');
n2=input('请输入介质2的折射率n2:
');
d1=input('请输入介质1的厚度d1:
');
d2=input('请输入介质2的厚度d2:
');
d=input('请输入入射光波长d:
');
a1=asin(n0*sin(a0)/n1);%光在介质1中的传播角度
a2=asin(n1*sin(a1)/n2);%光在介质2中的传播角度
a3=asin(n2*sin(a2)/n0);%射出介质时的出射角
p1=2*pi*n1*d1*cos(a1)/d;%相位厚度
p2=2*pi*n2*d2*cos(a2)/d;
u0=4*pi*1e-7;%真空磁导率
e0=1e-9/(36*pi);%真空介电常数
b=sqrt(e0/u0);
c1m=b*n1/cos(a1);%波阻抗
c2m=b*n2/cos(a2);
c0m=b*n0/cos(a0);
c00m=b*n0/cos(a3);
A1m=cos(p1);B1m=-i*sin(p1)/c1m;C1m=-i*c1m*sin(p1);D1m=cos(p1);
M1m=[A1mB1m;C1mD1m];%介质1中TM的传输矩阵
A2m=cos(p2);B2m=-i*sin(p2)/c2m;C2m=-i*c2m*sin(p2);D2m=cos(p2);
M2m=[A2mB2m;C2mD2m];%介质2中TM的传输矩阵
Mm=M1m*M2m;%两个介质层的TM的总传输矩阵
Am=Mm(1,1);Bm=Mm(1,2);Cm=Mm(2,1);Dm=Mm(2,2);
rm=(Am*c0m+Bm*c0m*c00m-Cm-Dm*c00m)/(Am*c0m+Bm*c0m*c00m+Cm+Dm*c00m)%TM的反射系数和透射系数
tm=(2*c0m)/(Am*c0m+Bm*c0m*c00m+Cm+Dm*c00m)
Rm=rm*conj(rm)
Tm=tm*conj(tm)%计算TM波的反射率和透射率
c1e=b*n1*cos(a1);%波阻抗
c2e=b*n2*cos(a2);
c0e=b*n0*cos(a0);
c00e=b*n0*cos(a3);
A1e=cos(p1);B1e=-i*sin(p1)/c1e;C1e=-i*c1e*sin(p1);D1e=cos(p1);
M1e=[A1eB1e;C1eD1e];%介质1中TE的传输矩阵
A2e=cos(p2);B2e=-i*sin(p2)/c2e;C2e=-i*c2e*sin(p2);D2e=cos(p2);
M2e=[A2eB2e;C2eD2e];%介质2中TE的传输矩阵
Me=M1e*M2e;%两个介质层的TE的总传输矩阵
Ae=Me(1,1);Be=Me(1,2);Ce=Me(2,1);De=Me(2,2);
re=(Ae*c0e+Be*c0e*c00e-Ce-De*c00e)/(Ae*c0e+Be*c0e*c00e+Ce+De*c00e)%TE的反射系数和透射系数
te=(2*c0e)/(Ae*c0e+Be*c0e*c00e+Ce+De*c00e)
Re=re*conj(re)
Te=te*conj(te)%计算TM波的反射率和透射率
R=(e*Re+m*Rm)/(e+m)
T=(e*Te+m*Tm)/(e+m)
用传输矩阵计算周期性光子晶体的反射和透射的简易编程:
n0=1;%n0为空气折射率
a0=0;%初始入射角为0,即正入射
d1=3.4886;
d2=4.6373;
n1=1.444;
n2=1.7514;
d=1.55;
p1=2*pi*n1*d1/d;
p2=2*pi*n2*d2/d;
u0=4*pi*1e-7;%真空磁导率
e0=1e-9/(36*pi);%真空介电常数
b=sqrt(e0/u0);
c1=b*n1;%波阻抗
c2=b*n2;
c0=b*n0;
c00=b*n0;
A1=cos(p1);B1=-i*sin(p1)/c1;C1=-i*c1*sin(p1);D1=cos(p1);
M1=[A1B1;C1D1];%介质1的传输矩阵
A2=cos(p2);B2=-i*sin(p2)/c2;C2=-i*c2*sin(p2);D2=cos(p2);
M2=[A2B2;C2D2];%介质2的传输矩阵
s=0;
forN=1:
1:
200
M=(M1*M2)^N;%介质层的总传输矩阵
A=M(1,1);B=M(1,2);C=M(2,1);D=M(2,2);
r=(A*c0+B*c0*c00-C-D*c00)/(A*c0+B*c0*c00+C+D*c00);%反射系数
t=2*c0/(A*c0+B*c0*c00+C+D*c00);%透射系数
R=r*conj(r);
T=t*conj(t);
s=s+1;
kr(1,s)=R;
kt(1,s)=T;
end
N=1:
1:
200;
subplot(2,1,1);plot(N,kr,'r')
xlabel('周期数');ylabel('反射率')
subplot(2,1,2);plot(N,kt,'g')
xlabel('周期数');ylabel('透射率')