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

📄 get_w.m

📁 用S-Matrix算法计算光栅衍射问题。
💻 M
字号:
function W = get_W(pp,qq,polarization)
include_globals
include_flags

pp = pp + 1; % because the indice begin from 1 in matlab, not 0
qq = qq + 1;

for mm = (-N+(N+1)):1:(N+(N+1))
    for nn = (-N+(N+1)):1:(N+(N+1))
        Lmn_plus(mm,nn) = 1i^(mm-nn)*exp(1i*beta_b(pp,nn)*corrugation_h(qq)/2)*besselj(mm-nn,-beta_b(pp,nn)*corrugation_h(qq)/2);
    end
end

for mm = (-N+(N+1)):1:(N+(N+1))
    for nn = (-N+(N+1)):1:(N+(N+1))
        Lmn_minus(mm,nn) = 1i^(mm-nn)*exp(-1i*beta_b(pp,nn)*corrugation_h(qq)/2)*besselj(mm-nn,beta_b(pp,nn)*corrugation_h(qq)/2);
    end
end

temp_W11 = Lmn_plus;
temp_W12 = Lmn_minus;

coe_W = [ ];
for nn = (-N+(N+1)):1:(N+(N+1))
    coe_W(:,nn) = ones((2*N+1),1)*beta_b(pp,nn);
end
if (polarization == TE)
    coe_W = -miu_u(pp)*coe_W;
elseif (polarization == TM)
    coe_W = epsilon_e(pp)*coe_W;
end

temp_W21 = ((propagation_k(pp)^2 - alpha_a'*alpha_a)./coe_W).*Lmn_plus;
temp_W22 = -((propagation_k(pp)^2 - alpha_a'*alpha_a)./coe_W).*Lmn_minus;

temp_Mat = {temp_W11,temp_W12;temp_W21,temp_W22};
W = cell2mat(temp_Mat);
end

⌨️ 快捷键说明

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