多层介质中广义反射系数与广义透射系数的计算与编程思路

在这里插入图片描述
求解多层介质广义反射系数与透射系数。图中, n为介质层数,为了方便表示与计算,将多层介质分为N=n+2 个区域。

一、多层介质的反射系数计算

对于TE波:
广义反射系数可根据式(1.1)计算:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、多层介质的透射系数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、实验结论

3.1 五层介质层反射率与透射率计算

在这里插入图片描述
用matlab编程计算多层介质的反射率与用FEKO计算得到多层介质层的反射率进行比较,结果如图3.1所示。红色虚线表示FEKO计算得到的5层介质层的反射率,蓝色实线表示Matlab计算反推得到的反射率,可以看出两条曲线几乎吻合。
在这里插入图片描述

3.2 一层介质层反射率与透射率计算

介质层的介质参数随着频率变化,如图3.2-3.3所示。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述用matlab编程计算多层介质的反射率与用FEKO计算得到一层介质层的反射率和透射率进行比较,结果如图3.4、3.5所示。红色虚线表示FEKO计算的结果,蓝色实线表示Matlab计算反推的结果,可以看出两条曲线几乎吻合。

在这里插入图片描述
在这里插入图片描述

后记

主要的公式推导及理论参考:W. C. Chew,Waves and Fields in Inhomogeneous Media. Piscataway,
NJ, USA: IEEE Press, 1995
由于在CSDN上我不太熟练打公式,因此大部分内容是截屏了我自己写的报告内容,请大家不要介意哈。

更新

最近有很多人私信问是否可以有偿提供代码,申明一下,由于这是我们实验室的资源,并且申请了专利,老师不愿公开提供代码,但是如果大家在编程过程中有任何问题可以,可以在评论区中进行咨询,谢谢哈!

  • 10
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 23
    评论
function [R,T] = multilayer_reflectance_transmittance(n,d,k,theta_in,wavelength) % n: vector of refractive indices of each layer % d: vector of thicknesses of each layer (in nm) % k: vector of extinction coefficients of each layer % theta_in: incidence angle (in radians) % wavelength: wavelength of incident light (in nm) c = physconst('LightSpeed'); lambda = wavelength*1e-9; lambda_p = 2*pi*c./sqrt(eps0.*n.^2 - k.^2 - j*2*pi*eps0.*n.*k./(lambda/(2*pi*c)))); lambda_s = 2*pi*c./sqrt(eps0.*n.^2 - k.^2 + j*2*pi*eps0.*n.*k./(lambda/(2*pi*c))); theta_t = asin(n(1)*sin(theta_in)/n(end)); % transmission angle Z0 = 1/376.73031; for i = 1:length(n) [r_p(i),t_p(i)] = fresnel_am_tf(lambda_p(i),theta_in,n(i),n(i+1),k(i),k(i+1)); [r_s(i),t_s(i)] = fresnel_am_tf(lambda_s(i),theta_in,n(i),n(i+1),k(i),k(i+1)); Z(i) = n(i)*sqrt(eps0)/cos(theta_in); Gamma_p(i) = (Z(i) - n(i+1)*sqrt(eps0)*cos(theta_t))/(Z(i) + n(i+1)*sqrt(eps0)*cos(theta_t)); Gamma_s(i) = (n(i)*sqrt(eps0)*cos(theta_t) - n(i+1)*sqrt(eps0)*cos(theta_in))/(n(i)*sqrt(eps0)*cos(theta_t) + n(i+1)*sqrt(eps0)*cos(theta_in)); Delta_p(i) = exp(-2*j*lambda_p(i)*d(i)/cos(theta_in)); Delta_s(i) = exp(-2*j*lambda_s(i)*d(i)/cos(theta_in)); end r_pp = r_p(1); r_ss = r_s(1); t_pp = t_p(1); t_ss = t_s(1); for i = 2:length(n) r_pp = r_pp + (t_pp^2 * Gamma_p(i-1) * r_p(i) * Delta_p(i-1)); r_ss = r_ss + (t_ss^2 * Gamma_s(i-1) * r_s(i) * Delta_s(i-1)); t_pp = t_pp * t_p(i) * Delta_p(i-1) * (1 + Gamma_p(i-1) * r_p(i)); t_ss = t_ss * t_s(i) * Delta_s(i-1) * (1 + Gamma_s(i-1) * r_s(i)); end R_p = abs(r_pp)^2; R_s = abs(r_ss)^2; T_p = real((Z0 * cos(theta_t) / n(end)) * (abs(t_pp)^2)); T_s = real((Z0 * cos(theta_t) / n(end)) * (abs(t_ss)^2)); R = (R_p + R_s)/2; T = (T_p + T_s)/2; end function [r_p,t_p,r_s,t_s] = fresnel_am_tf(lambda,theta_in,n1,n2,k1,k2) % lambda: wavelength (in m) % theta_in: incidence angle (in radians) % n1, n2: refractive indices of incident and transmitted media, respectively % k1, k2: extinction coefficients of incident and transmitted media, respectively theta_t = asin(n1*sin(theta_in)/n2); % transmission angle Z0 = 1/376.73031; Gamma_p = (n1*cos(theta_in) - n2*cos(theta_t))/(n1*cos(theta_in) + n2*cos(theta_t)); Gamma_s = (n1*cos(theta_t) - n2*cos(theta_in))/(n1*cos(theta_t) + n2*cos(theta_in)); Delta_p = exp(-2*j*pi*n2*k2*lambda*cos(theta_t)/(lambda^2*n2^2*cos(theta_t)^2 + k2^2)); Delta_s = exp(-2*j*pi*n2*k2*lambda*cos(theta_t)/(lambda^2*n2^2*cos(theta_in)^2 + k2^2)); r_p = (Gamma_p + (1-Gamma_p)*Delta_p); r_s = (Gamma_s + (1-Gamma_s)*Delta_s); t_p = 2*n1*cos(theta_in)/(n1*cos(theta_in) + n2*cos(theta_t)) * (1-Gamma_p)*sqrt(Delta_p); t_s = 2*n1*cos(theta_in)/(n1*cos(theta_t) + n2*cos(theta_in)) * (1-Gamma_s)*sqrt(Delta_s); end

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值