在上一期文章中,我们介绍了微环谐振腔的基本特征和理论推导。今天,我们用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:
- 对所计算的透射率T整体乘以
(L是直波导长度;注意α的单位换算),即可描述直波导损耗的影响。
- Neff、K和α随波长的变化可以用插值函数或拟合函数表示,原始数据来自于实验测试或仿真。
- 如果觉得麻烦,当所计算波长范围不大时,Neff和K的色散可以忽略。但是α对波长的依赖性一般不能忽略,特别是当计算范围内有吸收峰时。
640

被折叠的 条评论
为什么被折叠?



