24小时热门版块排行榜    

CyRhmU.jpeg
查看: 787  |  回复: 2

1556189062

新虫 (初入文坛)

[求助] 关于MATLAB程序设计的一些问题已有1人参与

我需要的程序是:计算一元二维ABAB型啁啾结构的光子晶体,在A层为SiO2折射率为1.4,B层为Te折射率为4.6,,d1=d2=350nm,其中A层厚度不变,B层厚度以5nm为步长减少时,其波长-透射率图。帮我看一下我错在哪了,要怎么改,我用的是传输矩阵法

clc
clear
close all
n0=1;%n0为空气折射率
a0=input('请输入入射角a0:');
N=input('请输入需要计算的周期数N:');
C=0.05;%啁啾系数(步长)
for i = 1:N
if(i>N)
db=0.35-c;
            i=i+1;
        else
                end
for d=1.25:0.001:2.35;%波长范围
na=1.4;
nb=4.6;
    a1=asin(n0*sin(a0)/na);%第一分界面折射角
    a2=asin(na*sin(a1)/nb);%第二分界面折射角
    da=0.35;
    p1=2*pi*na*da*cos(a1)/d;%相位变化
    p2=2*pi*nb*db*cos(a2)/d;
    u0=4*pi*1e-7;%真空磁导率
    e0=1e-9/(36*pi);%真空介电常数
    b=sqrt(e0/u0);
    c1=b*cos(a1)*na;%波阻抗
    c2=b*cos(a2)*nb;
    A1=cos(p1);B1=-i*sin(p1)/c1;C1=-i*c1*sin(p1);D1=cos(p1);
    M1=[A1 B1;C1 D1];%介质1传输矩阵
    A2=cos(p2);B2=-i*sin(p2)/c2;C2=-i*c2*sin(p2);D2=cos(p2);
    M2=[A2 B2;C2 D2];%介质2传输矩阵
    M=(M1*M2)^N;%N个周期总的传输矩阵
    A=M(1,1);B=M(1,2);C=M(2,1);D=M(2,2);
    a3=asin(nb*sin(a2)/n0);%射出介质时的出射角
    c0=b*cos(a0)*n0;c00=b*cos(a3)*n0;
    r=(A*c0+B*c0*c00-C-D*c00)/(c0*A+c0*c00*B+C+D*c0);%反射率
    r1=r*conj(r);
tr=1-r1;
end

plot(d,tr,'k')% 画图
title('(a) 0');% 为当前坐标系添加标题
xlabel('入射波长(um)');ylabel('透射系数')
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

我来蹭经验

铁虫 (初入文坛)

首先两个for循环end个数就不对应
2楼2014-05-07 20:57:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lovelinzy

新虫 (初入文坛)

【答案】应助回帖

有一个严重的问题,你取的点是离散的,至少也得用点乘(.*)吧~
一个好的习惯坚持下来终能在某一天创造奇迹
3楼2014-05-30 08:25:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 1556189062 的主题更新
信息提示
请填处理意见