📄 理想光子晶体的透射模宽度分布.m
字号:
%理想光子晶体的透射模宽度分布
clear
%计算透射谱(20层)
na=3.0;
nb=1.0 ;
a=1.0;
b=3.0;
c=0.001*pi/(na*a+nb*b);
x=[0,0,0,0];
z=[0,0,0,0];
for A=1:8100
ba=A*c*na*a;
bb=A*c*nb*b;
d1=cos(ba);d2=sin(ba);
d3=cos(bb);d4=sin(bb);
xa=[d1,d2/na;-na*d2,d1];
xb=[d3,d4/nb;-nb*d4,d3];
x=xb*xa;
z=x^10;
% r=((z(2,2)-z(1,1))-i*(z(1,2)+z(2,1)))/((z(2,2)+z(1,1))-i*(z(1,2)-z(2,1)));
%R(A)=abs(r)^2;
t=2/((z(2,2)+z(1,1))-i*(z(1,2)-z(2,1)));
T(A)=abs(t)^2;
end
%确定透射谱峰谷位置
for A=1:8010
h(A)=-1;
l(A)=-1;
end
%谱峰位置
for A=2:8010
if T(A)>T(A-1)
if T(A)>T(A+1)
h(A)=T(A);
end
end
%h(A,1)
end
%谱谷位置
for A=2:8000
if T(A)<T(A-1)
if T(A)<T(A+1)
l(A)=T(A);
end
end
%l(A)
end
%确定透射模宽度
A=1;B=0;C=0;n=0;
while A<8000
if l(A)>0
B=A+1;
while h(B)<0,if B>8000,break,end,B=B+1;end
C=B+1;
while l(C)<0,if h(B)<0,break,end,if C>8000,break,end,C=C+1;end
%计算并寄存透射模宽度
if l(A)<0
else
if h(B)<0
else
if l(C)>0
n=n+1;
%直线型
aa=l(A);ab=h(B);ac=l(C);a1=B-A;a2=C-B;aba=ab-aa;abc=ab-ac;
w1=0.001*ab*a1/aba;w2=0.001*ab*a2/abc;
if w1>w2
w(n)=w2;
else
w(n)=w1;
end
u(n)=B;
end
end
end
end
A=A+1;
end
%透射模宽度分布图
s=linspace(1,n,n);
qa=w(s);
qb=u(s)*0.001
plot(qb,qa,'.-k')
%xlim([46 70])
xlabel('Ω');
ylabel('W');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -