传输矩阵的Matlab简易编程oWord文件下载.docx
《传输矩阵的Matlab简易编程oWord文件下载.docx》由会员分享,可在线阅读,更多相关《传输矩阵的Matlab简易编程oWord文件下载.docx(8页珍藏版)》请在冰点文库上搜索。
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波的一特列,即垂直入射
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;
c1=b*n1*cos(a1);
c2=b*n2*cos(a2);
c0=b*n0*cos(a0);
c00=b*n0*cos(a3);
以上为TE波的例子。
若为TM波则,只有波阻抗表达不同,即:
c1=b*n1/cos(a1);
c2=b*n2/cos(a2);
c0=b*n0/cos(a0);
c00=b*n0/cos(a3);
若入射光中TE波,TM波都存在且TE占e%比例,TM占m%比例,则计算方法如下:
e=input('
请输入e:
m=input('
请输入m:
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)
用传输矩阵计算周期性光子晶体的反射和透射的简易编程:
s=0;
forN=1:
1:
200
M=(M1*M2)^N;
%介质层的总传输矩阵
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:
200;
subplot(2,1,1);
plot(N,kr,'
r'
)
xlabel('
周期数'
ylabel('
反射率'
subplot(2,1,2);
plot(N,kt,'
g'
透射率'