12 输入信道和ASE信道 在光纤中传播的每一个光波都由一个所谓的信道来描述,该信道可以是一个输入信道或ASE信道,其特征在于波长、耦合强度、传播方向等参数。 有两种不同的信道: .输入信道允许注入光功率,例如泵浦功率或信号输入功率。它们有一定的波长,而且(名义上)没有带宽。 .ASE信道不能有输入。相反,它们由激发的增益介质提供荧光,当然,这也会受到激光增益和任何损耗的影响。 在任何情况下,每个信道都有一个特定的传播方向,可以是forward(值为1的预定义变量)或backward(-1)。 对于以后引用某个信道(例如检索其输出功率),每个信道在定义时都会获得一个参考号。例如,第三个定义的信道获得参考号3。 在所有信道定义之后,必须调用函数finish_fiber()。在此之前,不可能调用函数来计算光功率等。 通常,所有信道都是在脚本的开头定义的,并且在计算过程中不进行修改,除了可以修改输入功率。但是,稍后可以通过使用函数clearchannels()删除所有定义的信道,并再次使用函数定义所有信道来重新定义信道。这可能是可取的,例如,在最初使用较少的ASE信道进行更近似(但更快)的计算后,最终绘图需要增加ASE信道的数量。 特别是在激光中,前向和后向传播信道相互耦合。 通常,光信道中的所有光功率在连续波计算中限制为1 mW,在动态计算中限制为5 mW。在模拟体设备时,这些限制可能是不需要的。在这种情况下,可以将变量NoPowerLimit设置为非零值以抑制这些限制。 以下两个部分提供了进一步的详细信息。 12.1 输入信道输入信道用函数addinputchannel()定义。例子: pump := addinputchannel(P_p_in, l_p, 'I_p',loss_p, backward) signal := addinputchannel(P_s_in, l_s, 'I_s',loss_s, forward) 变量pump和signal存储两个信道对应的参考号。我们得到一个参考号为1的反向传播泵浦信道和一个参考号为2的正向传播信号信道。这些值存储在变量中,以便以后访问信道(例如,用于检索功率或修改输入功率)。 函数addinputchannel()的参数为: .输入功率,如正向传播信号的左光纤端面功率和反向传播泵的右光纤端面功率。 .波长(单位:米) .指定模式强度横向依赖性的函数 .背景损耗(单位:dB/m)(不包括掺杂剂吸收) .传播方向,可以是forward或backward 模式分布函数(第三个参数)可以用不同的方式定义: .可以指定用户定义函数的名称(例如’I_s’),在大多数情况下,该函数只有一个参数r,即径向坐标,但如果存在方位角依赖关系,它也可能依赖于r和phi。如果使用函数set_xy_steps()定义了矩形网格,则强度函数的参数必须是x和y。 .如果折射率分布已用set_n_profile()定义,则还可以引用计算模式函数。例如,对于LP01模式,第三个参数可以是’I_lm(0,1)’,对于cos(phi)依赖的LP11模式,可以是’I_lm(1,1,cos)’。 .另一种可能是在圆括号中指定参数,后面跟着一个任意的数学表达式。示例:’(r) exp(-2 * (r / w)^2)’ 作为以第一种方式定义的强度分布函数的示例,泵浦波如下: w_p := 5 um I_p(r) := exp(-2 * (r / w_p)^2) 信道的输入功率稍后可以通过函数set_P_in(ch, P)进行修改,其中第一个参数是信道号,第二个参数是新的输入功率。例子: calc set_P_in(pump, P_p) 修改其他参数也有类似的函数:set_lambda(ch, l)修改波长,set_dlambda(ch,l)修改ASE信道带宽,set_loss(ch, lo)修改寄生损耗。 12.2 ASE信道ASE信道用函数addASEchannel()定义。例子: ASE_fw := addASEchannel(l_s, 10e-9, 1, ’I_s’,0, forward) ASE_bw := addASEchannel(l_s, 10e-9, 1, ’I_s’,0, backward) 结果值是信道参考号,与函数addinputchannel()的方法相同。参数为: .波长(单位:米) .带宽(单位:米) .空间模式的数量(例如,对于具有两个偏振方向的单模光纤,为2个) .指定模式强度径向依赖性的函数(有关详细信息,请参阅函数addinputchannel()的说明) .背景损耗(单位:dB/m) .传播方向 模式强度的函数必须有一个参数r(仅用于径向相关性)或两个参数r和phi。 ASE信道没有输入,但由自发辐射提供。 通常,为了正确地对整个ASE谱进行采样,有一个完整的ASE信道阵列。下面给出了所用代码的示例: l1_ASE := 960 nm { minimum ASE wavelength } l2_ASE := 1080 nm { maximum ASE wavelength } dl_ASE := 5 nm { ASE bandwidth in m } defarray c_ASE_fw[l1_ASE, l2_ASE, dl_ASE] defarray c_ASE_bw[l1_ASE, l2_ASE, dl_ASE] w_ASE := 5.5 um l_s := 0 I_ASE(r) := exp(-2 * (r / w_ASE)^2) calc for l := l1_ASE to l2_ASE step dl_ASE do begin c_ASE_fw[l] := addASEchannel(l, dl_ASE, 1, 'I_ASE', l_s,forward); c_ASE_bw[l] := addASEchannel(l, dl_ASE, 1, 'I_ASE', l_s,backward); end; 这里,首先定义了ASE波长范围和各个ASE信道的宽度。然后定义两个数组来存储所有ASE信道的参考号。最后,定义了信道。 12.3光纤端面反射有一个函数set_R(channel,R1,R2),用于定义某个正向传播信道在光纤两端面的反射率。这主要用于激光建模。 例如,光纤激光器可定义为: pump := addinputchannel(P_p_in, l_p, 'I_p',0, forward) signal_fw := addinputchannel(P_s_in, l_s,'I_s', 0, forward) signal_bw := addinputchannel(P_s_in, l_s,'I_s', 0, backward) calc set_R(signal_fw, 1, 0.90) 在这里,激光波长的反射率在左端(带泵浦输入)为100%,在右端(用于激光输出)为90%。实际上,set_R()的调用将两个信道耦合在一起。(后向信道signal_bw没有明确指定,而是自动识别为相应的信道,因为它具有相同的波长。) 还可以定义反射镜内部和外部的局部损耗。 注意,在调用finish_fiber()之前必须调用函数set_R()。 对于超短脉冲模拟(第5.21节),端部反射率被忽略。 13 局部内部和外部损耗通过类似set_loss_int(channel,loss_int1, loss_int2)的函数调用,可以定义局部功率损耗,分别应用于左侧或右侧光纤端面和对应端面镜之间的路径。换言之,这些损耗在端面镜反射前后(甚至在环形谐振腔中)均有效。 同样,通过set_loss_ext(channel,loss_ext1, loss_ext2)可以定义适用于端面镜之外的局部功率损耗。 在任何情况下,损耗值必须介于0和1之间。例如,0.1意味着10%的功率损耗。 前向传播光信道对光纤的有效输入功率为P_in* (1 – loss_ext1) * (1 – R1) * (1 – l_int1),其中P_in为输入功率,R1为左侧的反射率。正向传播光信道的有效输出功率将为P_fiber * (1 – l_int2) * (1 – R2)* (1 – loss_ext2),其中P_fiber是光纤端面的功率,R2是右侧的反射率。 对于相应的反向传播光信道,这些损耗不必单独设置。 通过函数sp_gain()、sp_gain_dyn()和NF()考虑设置的局部损耗。 对于超短脉冲模拟,忽略局部损耗。 14 检索计算结果许多函数可用于从计算中检索所有结果: .P(ch, z)通过线性插值计算z位置处参考号为ch的信道的内功率。 .P_out(ch)是信道的输出功率。对于反射光纤端面,它是在端面之前的功率乘以反射面的透射率。 . I(channel, z, r, phi)计算光纤在纵向位置z、半径r和方位角phi处的强度。对于矩形网格,r和phi替换为x和y。如果给定负z值,则计算功率为1W的光强。 .sp_gain(ch)是信道的内部单通功率增益(以分贝为单位)。考虑到光纤的寄生损耗,也包括通过函数set_loss_int()和set_loss_ext()定义的额外损耗,但不包括端面反射率。 .gs_abs(ch)是信道的基态吸收(单位:分贝/米)(即非激发状态下光纤的吸收)。 .NF(ch)是信号或ASE信道的噪声指数。 . n(z, l)是位置z处激光活性离子能级l的分数激发,在横向尺寸中平均,在z方向上进行线性插值。 . n_tr(z, r, phi, l)是给定位置z、半径r(无插值)和方位角phi下激光活性离子能级l的分数激发。对于矩形网格,r和phi替换为x和y。 . n_av(l)是l能级的分数激发,在整个光纤上平均。 .E_sat(ch)是某些光信道的饱和能量。(它是针对强度最高的环计算的,因此显示出最强的饱和效应。) 这种函数的调用会根据需要自动开始计算所需数据。例如,函数P()的第一次调用计算光纤上所有信道的功率,因此需要一些时间;随后的调用可以使用已经计算的数据。数据会自动重新计算,例如,当输入功率的变化使以前的结果无效时。 使用set_P_in(ch, P),可以修改信道ch的输入功率。如果此后调用上述函数之一,这些数据将自动重新计算。 15 修改模型参数如果某些模型参数需要修改,则可以通过修改相应的变量并再次执行整个模型定义来完成。如果已经定义了一个函数来执行整个模型定义,那么这并不太麻烦。作为一个例子,假设需要修改激光活性离子的淬火参数q。我们可以简单地修改相应的变量,然后再次调用def_model()。 一些修改可以在不重新定义整个模型的情况下完成: . 可以使用函数set_N_dop()更改掺杂浓度值。 . 通过使用新的长度值L调用函数set_L(L),可以修改光纤长度。请注意,数值步长不会改变。因此,如果在set_fiber()中定义的步长数不足,使用大参数调用函数可能会导致不适当的大步长,从而导致低精度。 .通过调用函数recalc_spectro(),可以从相应的函数和变量中再次读取光谱数据。例如,有依赖于全局变量T_fiber的跃迁截面的函数,表明光纤的温度。更改该变量后,必须调用函数recalc_spectro(),否则修改后的值将被忽略。 .所有信道定义都可以用clear_channels()删除。 .可以使用set_P_in()修改信道的输入功率。 16 在不同设备之间切换通过类似set_device(j)的函数调用,可以在不同的放大器或激光设备之间切换,其中j是介于1和10之间的数字。默认情况下,软件始终使用设备1。如果一个切换到另一个,可以再次定义光纤属性、信道、输入功率等,并计算输出。可以随时在不同设备之间切换,以修改某些参数或计算某些输出。 例如,在分析多级放大器时,此功能非常有用。将每一级放大器视为一个设备。例如,在图表中,可以将第二级的输出功率绘制为第一级输入功率的函数。这在演示文件中进行了演示。 另一种可能的用途是在不同版本的放大器或激光设计之间切换。这可能比为这些设备使用单独的脚本更方便。 17 噪声指数的计算RP Fiber Power允许使用函数NF(ch)计算某个ASE信道的噪声指数,其中ch是信号的信道数。这个噪声指数是一个系数(噪声功率比);要将其转换为分贝,取10 * lg(NF(ch))。 如果指定了信号信道而不是ASE信道,软件将搜索ASE信道,其波长区间包含信号波长且具有相同传播方向的。噪声指数是针对一个在端面没有反射的单通道计算的。这意味着使用的ASE信道必须没有端面反射,也没有输入功率。 如果已为具有set_loss_int()或set_loss_ext()的信号信道设置了一些集中损耗,则相应的ASE信道也必须设置相同的损耗;否则,获得的噪声指数将不正确。 为了熟悉这个概念,您可以测试以下情况: .对于没有背景损耗的高增益四级放大器,噪声指数必须为≈3 dB。 .对于准三级放大器,噪声指数更高。对于反向泵浦,噪声指数优于正向泵浦。 .如果只有10dB的背景损耗,但没有放大,则噪声指数为10dB。在这种情况下,信号被衰减,而噪声保持在散粒噪声水平。
|