【導(dǎo)讀】對于光纖中的強放大光信號,通常需要使用兩個甚至更多的光纖放大級。例如,可能需要濾除階與階之間的ASE或反向傳播的光,或者可能需要在不同級使用不同的光纖(例如,對于功率放大器,使用更大的有效模面積和包層泵浦)。在這里,我們想分享一些關(guān)于如何用我們的軟件RP Fiber Power建模這樣的多級放大器的想法。
對于光纖中的強放大光信號,通常需要使用兩個甚至更多的光纖放大級。例如,可能需要濾除階與階之間的ASE或反向傳播的光,或者可能需要在不同級使用不同的光纖(例如,對于功率放大器,使用更大的有效模面積和包層泵浦)。在這里,我們想分享一些關(guān)于如何用我們的軟件RP Fiber Power建模這樣的多級放大器的想法。
每個階段一個腳本
概念上最簡單的方法是為不同的階段使用單獨的模擬腳本,或者使用交互式表單對它們建模。這可能是一種適當(dāng)?shù)姆椒?,特別是如果每個階段都需要在進行下一階段之前詳細(xì)分析和優(yōu)化。
一個具有實際重要性的問題可能是如何在不同的模擬之間傳輸數(shù)據(jù)。在簡單的情況下,它可能只是一個恒定的信號輸出功率,需要作為下一級的輸入功率;您可以手動傳送。但是,也可能有一個完整的ASE頻譜要轉(zhuǎn)移,即一整個功率值陣列。在超短脈沖放大的情況下,需要轉(zhuǎn)移整個脈沖,例如在時域或頻域用復(fù)雜的振幅表示。自然的解決方案是將這些數(shù)據(jù)保存到一個或多個文件中,然后腳本可以在下一個階段讀取這些文件。這只需要更多的代碼,但是我們強大的腳本語言允許您保存和加載任何數(shù)據(jù)。您甚至可以在交互式表單中使用它,可以為此類任務(wù)注入一些腳本代碼。
在如下情況下,可能會遇到這種簡單方法的局限性:
如果第一個放大級的某些細(xì)節(jié)被修改,您將需要再次手動啟動后續(xù)階段的模擬——如果這種情況經(jīng)常發(fā)生,這將是一個痛苦的過程。
制作包含多個階段輸出的圖(如圖1所示)是可能的,但同樣需要保存和加載數(shù)據(jù),這可能有點不方便。
簡單的方法在階與階之間相互作用的情況下失敗了。例如,設(shè)想第二個放大器級的反向ASE或剩余泵浦功率會影響第一個放大器級。為了計算自洽狀態(tài),顯然不能再單獨考慮階段。
圖1:包含兩個有源光纖的光纖激光器的光功率變化。這個例子摘自之前的一篇文章。
一個腳本有幾個階段
確實經(jīng)常需要(或者只是更方便)制作一個單獨的模擬腳本來處理多個放大階段(甚至可能是種子激光器,例如鎖模激光器)。
如何在一個腳本定義和處理不同的放大器階段?
接下來的問題是,如何使用不同的stages的索引作為參數(shù)的函數(shù)來處理不同的stages。解決方案很簡單:為了告訴RP Fiber Power 軟件接下來會發(fā)生什么,您可以使用一個函數(shù)調(diào)用像set_device(2)——例如,光纖的定義相應(yīng)的光學(xué)通道,或計算數(shù)據(jù)的檢索,是指第二個設(shè)備,這可能是第二次放大級。
下面,我們向你您展示一些計算雙級光纖放大器穩(wěn)態(tài)的示例代碼,其中信號從第一級到第二級,而一些從第二級的剩余泵浦光進入第一級(ASE被忽略)。假設(shè)已經(jīng)定義了光纖及其光通道,則可以使用以下函數(shù)來計算穩(wěn)態(tài):
find_steady_state(P_s_in, P_p1, P_p2) := begin global allow all; var P_s_fw, P_p_bw, NoSteps; NoSteps := 0; set_device(1); set_P_in(pump1_fw, P_p1); set_P_in(signal1, P_s_in); repeat inc(NoSteps); P_s_fw := P_out(signal1); set_device(2); set_P_in(pump2_bw, P_p2); set_P_in(signal2, P_s_fw); P_p_bw := P_out(pump2_bw); { backward pump power left over by the second stage } set_device(1); set_P_in(pump1_bw, P_p_bw); until abs(P_s_fw - P_out(signal1)) < 0.01 mW; NoSteps; end
您看,即使那些沒有看過手冊的人也可以很容易地猜出代碼的不同元素在做什么。在調(diào)用該函數(shù)時,您告訴它的信號輸入功率和泵的兩個階段,第一階段和函數(shù)返回找到穩(wěn)態(tài)所需的迭代次數(shù)(可能通常是2)。此后,您可以檢索任何輸出,例如,顯示兩個階段后的信號輸出功率(3位有效數(shù)字和單位瓦):
calc find_steady_state(1 mW, 150 mW, 1600 mW)show "P_s1: ", (set_device(1); P_out(signal1)):d3:"W"show "P_s2: ", (set_device(2); P_out(signal2)):d3:"W"
創(chuàng)建一個圖表也是沒有問題的,例如,在給定泵功率的固定值下,將最終信號輸出功率顯示為信號輸入功率的函數(shù):
diagram 1: "Signal Output vs. Signal Input" x: 0, 20"signal input power (mW)", @xy: 0, 1500"signal output power (mW)", @y f: (find_steady_state(x * mW, 150 mW, 1600 mW); set_device(2); P_out(signal2) / mW), color = blue
在超短脈沖放大的情況下也可以做類似的事情。您可以只創(chuàng)建一個開始脈沖(例如,給定參數(shù)的高斯脈沖,或從文件讀取的脈沖,或從鎖模激光模型在同一腳本中的穩(wěn)態(tài)輸出),然后通過不同的階段發(fā)送。您可以用連續(xù)波計算來準(zhǔn)備關(guān)于它的激光活性離子的激發(fā)狀態(tài)的每個階段(例如,根據(jù)信號的平均功率,計算為脈沖能量和脈沖重復(fù)率的乘積),或在打開恒定的泵浦功率(或任何其他泵浦功率的時間剖面)后模擬重復(fù)放大。您還可以定義一個函數(shù),讓它執(zhí)行某些迭代步驟,直到達(dá)到穩(wěn)定狀態(tài)。這些只是例子-您可以做任何您想做的事情!
腳本與圖形界面
其他一些產(chǎn)品(例如VPIphotonics)使用完全不同的方法來建模多個放大器級的系統(tǒng)。在那里,您交互式地在桌面放置一些放大器階段的符號,并將它們與象征它們之間的光流的線連接起來。通過右鍵單擊相應(yīng)的符號并在獲得的彈出式表單中輸入數(shù)據(jù),可以修改放大器級的詳細(xì)信息。例如,進一步的工具可以幫助您制作圖表。
乍一看,您可能認(rèn)為這種GUI方法比編寫帶有如上所示元素的腳本更容易。其實,雖然這在最簡單的情況下可能是正確的,但當(dāng)您需要在研發(fā)工作中做更復(fù)雜的事情時,您很快就會發(fā)現(xiàn)這種方法固有的局限性。即使用戶界面足夠強大,例如允許您生成圖,計算量顯示為一個函數(shù)的輸入?yún)?shù),但您可能經(jīng)常需要做更復(fù)雜的事情。想象一下,如果您需要進一步的數(shù)學(xué)處理計算數(shù)據(jù)——例如,在隨機噪聲的影響下存儲隨后的放大脈沖,并使用傅里葉變換和相關(guān)的東西(如應(yīng)用窗口功能)來計算噪聲頻譜。即使軟件足夠好,可以將脈沖的相關(guān)參數(shù)存儲在一個文件中,將所有的數(shù)據(jù)轉(zhuǎn)移到其他軟件僅僅進行數(shù)學(xué)處理也會很不方便。如果您可以在模擬腳本中完成所有操作,那么這是最簡單的。
MATLAB接口可以解決這個問題嗎?
順便說一下,有一些軟件包有一個接口,例如MATLAB,這樣您就可以用MATLAB控制模型(例如自動改變一些參數(shù)),并在MATLAB中處理結(jié)果。這樣就增加了很大的靈活性,但這是有代價的。首先,您需要有MATLAB許可證,并對其足夠熟悉。其次,您必須查明如何確切地處理該接口。第三,與我們的RP Fiber Power軟件相比,執(zhí)行速度可能會相當(dāng)慢。
其他人可能會考慮在MATLAB中完成所有的工作——這是另一個使用腳本進行計算的環(huán)境。但是,這意味著巨大的工作量,因為您將不得不執(zhí)行許多復(fù)雜的光學(xué)和物理計算,而不是處理您的實際問題。
由于這些原因,我們決定在我們的RP Fiber Power 軟件中使用腳本方法,它仍然可以與交互式表單結(jié)合,甚至可以與用戶定義的表單結(jié)合。這為您提供了無與倫比的靈活性,而且使用起來也很好。
免責(zé)聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請電話或者郵箱聯(lián)系小編進行侵刪。