RP 系列 | 使用 RP RP Fiber Power 軟件進行超短脈沖仿真
這些功能不僅限于光纖中的脈沖傳播,還將介紹如何考慮各種其他光學元件。因此,如果您正在使用鎖模體激光器或再生放大器,請確保同樣可以將相同的軟件應用于此。到目前為止,僅對于同步泵浦光學參量振蕩器和放大器,該軟件不可用。
對于打算使用 Matlab 或其他編程環境自己開發此類仿真的人來說,本文應該有用的。然而,挑戰將是實現超短脈沖與光學組件相互作用的所有細節。對于某些元素而言,這非常簡單,而對于其他元素(例如,光纖,甚至是有源纖維),這是相當復雜的事情。盡管這樣做可能會學到很多東西,但是您肯定會花費很多時間。使用提供此類功能的軟件,您可以專注于物理學和技術,并更快地獲得所需的結果。本質上,問題是您是要開始大型學習活動還是要快速產生結果的其他需求。使用此類軟件時,您還將學到很多有關物理的知識
概念
模擬RP Fiber Power 中超短脈沖傳播的基本概念與我們早期產品 RP ProPulse 的概念不同。我們首先不介紹軟件系統,即后來我們想通過其發送脈沖的跑道。相反,我們使用腳本語言的某些功能來定義或加載初始脈沖,然后再通過光學元件發送該脈沖。可以使用其他功能來檢索“當前脈沖”的各種屬性,即當前(在看到某些元素之后)的脈沖。
這種方法的優點是它最靈活。提到的函數可以在任何表達式中使用,并且我們可以利用這些表達式的強大控制結構:if-then 語句,while-do 循環,for 循環,repeat-until 等。您可以通過多種方式使用此類表達式,例如,進行各種初始化,也可以在生成任何圖形圖的過程中使用。事實證明,這種靈活性對于任何實際的研究或開發工作都是必不可少的。
示例:鎖模光纖激光器
; Parameters:
l_s := 1060 nm { center wavelength }
T_range := 25 ps { width of temporal range }
N_t := 2^10 { number of grid points }
dt := T_range / N_t { temporal resolution }
E0 := 10 nJ { initial pulse energy }
tau0 := 1 ps { initial pulse duration }
chirp0 := 0 GHz / ps { initial chirp }
calc { evaluate the following composite expression }
begin
set_pulse_grid(T_range, N_t, l_s); { define the pulse grid }
startpulse_G(E0, tau0, chirp0); { generate the start pulse }
end
在某些時候,您必須定義所涉及的纖維。本質上,每個模型都定義一個用于連續波仿真的模型,此外,還為模型分配超短脈沖傳播所需的一些屬性:本質上是色散和非線性指數,在某些情況下,還需要更多有關受激拉曼散射的詳細信息(此處不予考慮)。以下是線性諧振器中具有有源和無源光纖的模型的使用代碼,其中不包括各種參數的定義:
calc { define the fibers }
begin
{ active fiber: }
set_device(1);
set_fiber(L_active, 20, 'Yb');
add_ring(r_co, N_Yb);
pump := addinputchannel(P_pump_in, l_p, 'I_p', 0, forward);
signal_active_fw := addinputchannel(0, l_s, 'I_s', 0, forward);
signal_active_bw := addinputchannel(0, l_s, 'I_s', 0, backward);
set_GVD(GVD_af);
set_n2(n2_f); { nonlinear index }
finish_fiber();
{ passive fiber: }
set_device(2);
set_fiber(L_passive, 5, '-');
signal_passive_fw := addinputchannel(0, l_s, 'I_s', 0, forward);
signal_passive_bw := addinputchannel(0, l_s, 'I_s', 0, backward);
set_GVD(GVD_pf);
set_n2(n2_f); { nonlinear index }
finish_fiber();
end;
DoResonatorRoundTrip() :=
{ Simulate one resonator round-trip of the pulse. }
begin
global allow all;
pp_multiply_expr_f('r_FBG%(f)');
{ fiber Bragg grating as output coupler }
pp_fiber(1, signal_active_fw); { active fiber }
pp_fiber(2, signal_passive_fw); { passive fiber }
pp_sat_abs(dR_S, tau_S, E_sat_S); { SESAM }
pp_loss(loss_S); { loss in SESAM }
pp_fiber(2, signal_passive_bw); { passive fiber }
pp_fiber(1, signal_active_bw); { active fiber }
pp_center(1); { center the pulse }
calc_dyn(0, T_rt, T_rt);
{ dynamical simulation of gain recovery }
end
請注意,我們的示例基于線性諧振器,在到達另一端(SESAM,可飽和吸收器)之后,我們一直回到初始位置。當然,我們函數中使用的各種參數必須在其他地方定義。
最后一個函數調用在一個往返時間內模擬光纖的泵送,以補充存儲的能量。
此后,很容易模擬一些往返行程并在這些之后顯示腔內脈沖的一些參數:
calcfor j := 1 to 1000 do
begin
DoResonatorRoundTrip();
store_pulse(j);
end
show "Energy: ", E_p():d3:"J"
show "Duration: ", tau_p():d3:"s"
show "Bandwidth: ", dl_p():d3:"m"
在這里,我們還存儲了所有脈沖,以便以后可以調用它們進行其他計算和生成圖表,還可以使用交互式脈沖顯示窗口檢查它們。
這里顯示的簡單方法實際上存在一個問題:通常需要進行大量往返操作,直到光纖的增益穩定在最終水平。本質上,存在弛豫振蕩只有經過大量往返之后,這些信息才會消失。如果您想學習這些,那就很好了。但是,如果要快速找到穩定狀態,則可以應用一些其他技巧:使用幾行代碼(此處未顯示),您可以在每次往返過程中根據脈沖能量重新計算光纖的增益-只需好像增益可以立即做出響應。這樣,您可以有效地抑制張弛振蕩,并更快地獲得最終結果。另一種可能性是人為地將增益飽和度大幅度提高(例如100),同時將有效脈沖重復頻率降低相同因子。這將非常有效地加速弛豫振蕩,從而極大地節省了計算時間。當然,
另一個問題是您可能不確定要達到穩定狀態需要往返多少次。因此,您可能需要定義一個模擬往返的函數,直到基本的脈沖屬性(能量,持續時間,帶寬)不再實質改變為止:
"Variation of Pump Power"
x: 400, 600
"pump power (mW)", @x
y: 0, 20
frame
! for x := CS_x1 to CS_x2 step 20 do
begin
set_device(1); { active fiber }
set_P_in(pump, x * mW);
if FindSteadyState(0.01, 1000) then
begin
point(x + i * E_p() / nJ, "R");
{ filled rectangle for pulse energy in nJ }
point(x + i * tau_p() / ps, "t");
{ open triangle for pulse duration in ps }
end;
end
其他情況
上面的示例向您展示了如何用較少的代碼來實現相對復雜的仿真。以下是一些針對可能情況的示例:
考慮一個由種子激光器的連續脈沖序列饋送的放大器系統。同樣,您可以模擬脈沖能量如何向穩態發展。您還可以研究,例如,如果您在脈沖之間有隨機的時間間隔,或者只是缺少一些脈沖,或者是一系列脈沖串,或者泵浦功率或種子脈沖的特性發生波動等,那么它是如何波動的。
甲再生放大器工作使得一個有時注入種子脈沖,然后讓它在演變一定數量往返,然后噴射它。在抽運放大器晶體一段時間后,可以執行下一個放大周期。在這里,可以輕松實現一種功能,該功能可以在給定數量的諧振器往返行程下模擬完整的放大周期。同樣,可以使用一種函數來模擬這種放大循環,直到達到穩態為止。有些系統會出現分叉甚至混亂的情況,請參閱一些在線示例案例。
其他光學軟件
-
pp_dispersion()用于應用色散 高達4階 -
pp_multiply_expr_f()用于將脈沖的頻域幅度乘以與頻率相關的因子, 例如,用于施加任意色散(相移)或帶通濾波器;可以在時域中完成類似 的操作,例如對于光調制器 -
pp_prism_pair()和pp_grating_pair()用于分別使用給定參數 (例如間距,每毫米的行數等)應用棱鏡對或光柵對的色散。 -
pp_compress()用于自動優化的色散壓縮器(最高4階) -
pp_noise()用于添加一些隨機噪聲 -
pp_SPM()用于具有自相位調制的光學元件 -
pp_add_pulse()用于相干地添加脈沖,例如在干涉儀的模擬中或附加 脈沖模式鎖定中
這些組件使您能夠模擬所有常見類型的設置,以生成或操縱超短脈沖,僅(到目前為止)沒有參數非線性增益。
工程師必備
- 項目客服
- 培訓客服
- 平臺客服
TOP




















