光学相关MATLAB代码分享-4

上一期文章中,我们介绍了微环谐振腔的基本特征和理论推导。今天,我们用MATLAB代码对微环的透射光谱进行模拟。

clear all; close all;
step=0.001;
lambda_min=input('输入波长下界(nm):');
lambda_max=input('输入波长上界(nm):');
lambda_nm=lambda_min:step:lambda_max;
R_um=input('输入微环半径(μm):');
N=input('输入有效折射率:');
k_um1=1000*2*pi./lambda_nm;

K=input('输入耦合率:'); %K是耦合率
cosphi=sqrt(1-K); cosphi2=1-K;
alpha_dBcm=input('输入传输损耗系数(dB/cm):'); %alpha_dBcm是功率的传输损耗系数,单位dB/cm
alpha=log(10)*alpha_dBcm*10;
e_alpha=exp(-pi*alpha*R_um*1e-6); e_alpha2=exp(-2*pi*alpha*R_um*1e-6);

T=(cosphi2+e_alpha2-2*cosphi*e_alpha*cos(2*pi*N*R_um*k_um1))./...
    (1+cosphi2*e_alpha2-2*cosphi*e_alpha.*cos(2*pi*N*R_um*k_um1));

c=figure;
plot(lambda_nm,T,'b-');
xlim([min(lambda_nm),max(lambda_nm)]); ylim([0,1]);
xlabel('\it{\lambda}\rm{/nm}','FontName','Times New Roman','FontSize',15);
ylabel('Normalized Transmission','FontName','Times New Roman','FontSize',15);
c.CurrentAxes.FontName='Times New Roman';

运行代码,命令行将提示输入相关的参数。我们选择1540-1560 nm(属于C波段)的透射谱线,设波导的有效折射率Neff=2.2,微环半径R=100 μm,耦合率K=0.05,传输损耗α=1 dB/cm。输入这些参数,结果如下图所示:

不难看到,上面的代码得到的只是一个近似的作图结果。在计算透射光谱时,没有考虑直波导的损耗(这导致透射谱的基线恒等于1),也没有考虑Neff、Kα随波长的变化。读者可以在此基础上修改代码,得到更加接近实际情况的谱线。

修改代码的tips:

  1. 对所计算的透射率T整体乘以\rm e^{-\it\alpha L}L是直波导长度;注意α的单位换算),即可描述直波导损耗的影响。
  2. Neff、Kα随波长的变化可以用插值函数拟合函数表示,原始数据来自于实验测试或仿真。
  3. 如果觉得麻烦,当所计算波长范围不大时,Neff和K的色散可以忽略。但是α对波长的依赖性一般不能忽略,特别是当计算范围内有吸收峰时。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值