⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mtl_sm_spr.m

📁 光纤光栅 布拉格光纤光栅 长周期光纤光栅 相移布拉格光纤光栅 切趾布拉格光纤光栅 取样布拉格光纤光栅
💻 M
字号:
%此程序是解决一维S(TE)极化的散射矩阵方法计算表面等离子体反射、透射率

SP='P';%SP等于S是S极化,否则是P极化
lambda=1.55;
n_Ag=0.17861+lambda*(0.0591+lambda*0.05859)+1i*(-0.19444+lambda*7.33428); 
epcilon=[1.45,n_Ag,1.6,1.45,1].^2;    %每层介质的介电常数
d=[0,0.03,1.0,100,0];           %每层介质的厚度
M=length(epcilon);             
mu(1:M)=1;                     %每层介质的磁导率

if SP=='S'
    et=mu;
else if SP=='P'
        et=epcilon;
    else
        'SP is wrong! SP is must S or P!';
        return;
    end
end

k0=2*pi/lambda;
k02=k0*k0;

for jt=1:1001
    theta_DGR(jt)=70+jt*0.01;
    theta_in=theta_DGR(jt)/180*pi;             %入射光与法线的夹角
    sin_in=sin(theta_in);
    ab=zeros(2,M);
    kx=sqrt(epcilon(1)*mu(1))*sin_in*k0;
    kz=sqrt(epcilon.*mu*k02-kx.*kx);
    k_et=kz./et;
    S=[0,1;1,0];
    for j=1:M-1
        St=[-1,1;k_et(j),k_et(j+1)]\[1,-1;k_et(j),k_et(j+1)];
        exp_kd=exp(i*kz(j+1)*d(j+1));
        St=[St(1,1),St(1,2)*exp_kd;exp_kd*St(2,1),exp_kd*St(2,2)*exp_kd];
        U=inv([1,-S(2,2);-St(1,1),1]);
        S=[S(1,1)+S(1,2)*U(2,1)*S(2,1),S(1,2)*U(2,2)*St(1,2);St(2,1)*U(1,1)*S(2,1),St(2,2)+St(2,1)*U(1,2)*St(1,2)];
        %S=D1_hb_scatter(S,St);
    end
    b_re=S(1,1);
    a_t=S(2,1);
    Spz_out=real(kz(M)/et(M)*a_t*conj(a_t));
    Spz_in=real(kz(1)/et(1));
    Spz_re=real(kz(1)/et(1)*b_re*conj(b_re));
    r(jt)=b_re;
    t(jt)=a_t;
    R(jt)=Spz_re/Spz_in;
    T(jt)=Spz_out/Spz_in;
end
plot(theta_DGR,R)
xlabel('Incident angle (^o)');
ylabel('Reflectance');

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -