传输矩阵的 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;
endN=1:1:200;
subplot(2,1,1);plot(N,kr,'r')
xlabel(' 周期数');ylabel(' 反射率')
subplot(2,1,2);plot(N,kt,'g')
xlabel(' 周期数');ylabel(' 透射率')
clear
% 基础数据
[lambda,L,o1]=textread('C:\Users\Administrator\Desktop\TOZLM\SiO2_refr1_imag0.txt','%n %n %n');
[lambda,H,o2]=textread('C:\Users\Administrator\Desktop\TOZLM\TiO2_imag0.txt','%n %n %n');
N=20;
% 单模块膜的层数
ns=1;
n0=1;
% 基底折射率
% 空气折射率
d=1*[
108
66
108
66
108
66
108
66
108
66
108
66
108
66
108
66
108
66
108
66
]; % 膜的几何厚度 R;G;B
theta0=0;
% 入射角
p=0;
% 为 p 偏振波时该值为 1,为 s 偏振波时该值为 0
absorb=0;
% 系统有无吸收,有 1,无 0
% 开始计算
ct=sqrt(1-n0^2*sin(theta0)^2./L);% 各层的折射角余弦 cosθ
eta=zeros(1,N); % 预设矩阵η,δ
delta=zeros(1,N);
for q=1:501
n=[
L(q)
H(q)
L(q)
H(q)
L(q)
H(q)
L(q)
H(q)
L(q)
H(q)
L(q)
H(q)
L(q)
H(q)
L(q)
H(q)
L(q)