程序应用的背景:在用ZEMAX POP 做光纤耦合效率分析的时候,需要将给定芯径和NA的光纤模场或尾纤输出LD的输出光场(多模场,M2 > 1)拟合为基模高斯光束。由于要反复计算多组参数做对比,为了方便做了如下的小程序
程序的功能:通过edit box 获取输入,Calc 中完成拟合高斯光束参数的计算,最终结果在result中显示
由于程序的任务比较简单,每个Edit box仅需要接收一个输入数据。Edit box 中数据的获取和statict text 中的数据显示均在Calc 按钮中进行。 Calc 按钮的回调函数中的程序片段如下
% get input from edit box
waveLen = str2double(get(handles.edit_waveLen, 'string'));
coreDia = str2double(get(handles.edit_coreDia, 'string'));
NA = str2double(get(handles.edit_NA, 'string'));
% calculate the Gaussian beam parameter
% that need to be display
r = coreDia/2;
M2 = r * asin(NA) * pi/waveLen;
zR = pi*r^2/M2/waveLen;
w0 = sqrt(zR*waveLen/pi);
% set output of static text
set(handles.text_M2, 'string', num2str(M2));
set(handles.text_rayleighRange, 'string', num2str(zR));
set(handles.text_gaussianWaist, 'string', num2str(w0));
注:该程序主要实现了一次完成多个edit box 中数据的获取和在多个数据的显示