POP(Physical Optics Propagation)是計算光學系統的物理光學傳播。
與之對應的,還有一種是幾何光線追跡法,其算法的基本思路是將與波前垂直的光線作為基本採樣單元,當光線傳播至焦點附近時,將光線還原成波前進行計算。
幾何光線法也能算衍射,但其假設是夫琅禾費衍射進行計算,即觀察點距離光束無窮遠,菲涅爾數=0(菲涅爾數可參考遠場和近場);
這種計算在有些場合是非常實用的,例如,有大相位差的光線,在物理傳播算法中,基于波前的積分是很難精確計算的,但在幾何光線追跡中,因考慮正負相位的對稱分布,默認可相互抵消。只需將OPD(光程差)>nλ/8的光線忽略掉(n:採樣值,即光線數量),即最初採樣100根光線,最終選用90根「合格」(小相位差)的光線進行計算,因此這種算法比較快,在某些場合(與實際實驗值匹配得較好)是比較實用的;
夫琅禾費畢竟只是菲涅爾衍射的一個特例,不具有衍射的代表性。當我們想對任意相干光束進行分析時,必須使用POP(物理光學傳播),譬如:CWDM比較經典的TFF方案光路中,用4個filters做4路分光,能不能其他光路零件不變,將filters增加至8個甚至更多來合波/分波呢?除去工藝上的問題,單純從光學角度講,因為LD Chip lens的準直範圍即瑞利範圍hold不住呢。
從幾何光路上看,LD chip發出的光經lens準直後是平行光,無論光路走多遠,光線始終是平行的,但是實際光線是發散的,於是用瑞利範圍這個指標規定「光束平行」的範圍。這也是見證幾何光線和物理傳播法有明顯區別的一個典型例子。
POP是直接計算波前,波前通過每一個面都可以直接計算其傳遞函數,但是POP有個很大的缺點:計算速度慢,而且對計算的RAM(RamdomAccessMemory,計算機內存)要求高。
一束採樣為2048*2048的非偏振光束,通過一個普通折射面時的傳播,需要的RAM:
如果算上偏振,RAM值再加64M;
可以腦海中大概估算下,我們的光路要經過多少個光學面?
顯然對複雜光路每個光學面都使用POP也是不現實且沒必要的,當光路衍射效應不明顯時用可以幾何光線法,接近衍射重點區域時再將光線轉換成波前進行POP計算。
然而,實際計算時,軟體也不會知道啥時候到了衍射重點區域?
所以使用POP時,需要定義一個參考量:導向光束(類似導盲犬),如一個簡單的高斯光束,在其傳播一定距離或經過指定光學面時其相位半徑多少?束腰在哪裡?發散角多少?......用來作為實際光束的定位參考。
我們在確定初始光束時,需要明確兩點:
1.採樣點多少?
2.光束寬度定多大?
X-Sampling(採樣)和Y-Sampling是指的X和Y方向的採樣點數,如果是中心旋轉對稱光束的話(如fiber出光),兩者值可以設置成一樣的;如果想將光束的X和Y方向獨立計算(如Chip 發光考量偏振和快慢軸),可以將兩者設置成一樣/不一樣都可以的。
Zemax的採樣點數是2的整數次冪,如32、64、128、256等。
Sampling陣列大小範圍為32x32~16384x16384;
Sampling越大,POP越精確,但計算越慢,且需要的RAM越大。
講個悲催的故事,有次在計算一個付出了好幾天心血的光路時,小熊突然好奇自己的電腦能hold住多大的Sampling?(小熊電腦:Win10/64位作業系統,RAM8G)
於是設置完Sampling後順手點了「save」,再點「確定」就開始了計算。
當我將Sampling從32x32增大到2048x2048時,電腦直接死機了,然後重啟電腦,一打開此文件就默認自動計算,電腦再次死機......最後,小熊只能含淚將此文件移步回收站了,懊惱為啥測試前不單獨存一份備份......
X-Width和Y-Width指的X和Y方向的初始寬度,如上面Sampling的解釋一樣,兩個方向的值可以一樣也可以不一樣。
同樣的採樣數,初始寬度越大,間隔越大;
間隔是起保護帶的作用,啥意思呢?有像差存在時,一個光點成像成一個彌散斑,其尺寸會變大,間隔的存在就是給光束展寬提供足夠空間。打個比方:少女/少男時的你,苗條纖瘦,床的寬度為1.8~2米,遠比你的橫向尺寸大,這就給婚後胖若2人/3人...的你/你們提供了「展寬空間」
初始寬度太小,採樣點之間容易發生「重疊」引入混淆;
初始寬度太大,可能會沒有足夠的通過光束的點來形成合適的採樣(對於"質量較好"的高斯光束,經驗值是將寬度設置為TEM00的6倍);
極力推薦的是:設置好採樣後,點「Automatic」來自動設置初始寬度;
陣列寬度=間隔x採樣點;
如果保持陣列寬度不變,增加採樣點,則間隔減小;
反之,減少採樣點,則間隔增大;
光束傳播至任意位置處的間隔為:
陣列寬度為:
可以看出,初始陣列寬度保持不變,增加採樣點數可以增大陣列寬度;
波長1310nm,初始陣列寬度46um,採樣點32x32,點間隔1.4um,通過焦距為0.16mm的準直lens,焦平面(焦點處垂直光軸的平面)附近採樣間隔為:
焦平面(焦點處垂直光軸的平面)附近陣列寬度為:4.7x32=150um;
POP返回的數據即POPD(D:Data)多達60+個:
POPD有些數據(如光纖耦合效率、導向光束的位置等)對陣列寬度是不敏感的,進而對採樣不敏感,但是有些數據(如光束寬度、M2值)對陣列寬度敏感,進而對採樣敏感。
光束質心:
光束的第二量(The second moment)定義:
光束寬度:
看出什麼沒有?
光束寬度的定義是跟光束質心Cx相關,但遠離質心部分C-Cx的權重很大,意味著,遠離光束質心部分(即陣列邊緣)的光能量越多,光束寬度的計算將越大,跟實際的偏差越大。
如上圖兩個實際光束寬度相等的光斑,按照這種定義,左側光斑計算的光束寬度更接近實際,而右側光斑計算的光束寬度將遠大於實際值。
所以在計算高斯光束基模時,按照自動設置的採樣是OK的,但是如果計算高階模時,就需要謹慎了。
再來看M2的定義:
λ=1310nm,w0=100um(圖中10um多寫了個0,懶得改了)的基模高斯光束,在空氣中傳播1000mm後,計算其光束寬度和M2值,計算方法如下:
我們把採樣從32~2048增大,來看每種採樣下的光束寬度和M2的值有什麼變化:
(因為光束是旋轉對稱的,即X和Y方向的值是一樣的,所以就不再分開列出了)
可以看出,隨著採樣的增加,初始寬度跟著增加,像面寬度也跟著增加,光束寬度和M2的計算值是維持不變的。
我們做個實驗,使得陣列邊緣也有一部分光束,因此在光束起始點附近加一個直徑100um的小孔使之發生衍射,再來觀察光束加小孔前後的變化:
可以看到,隨著採樣的增加,像面寬度也跟著增加,光束寬度即M2也跟著變,這樣的計算結果顯然是不準確的。
那怎麼辦呢?就沒有辦法了嗎?
辦法還是有的,光束的採樣和寬度,可以在任一表面上做手動調整,即對像面的陣列寬度設置為定值,對光束經過每一個面做重新採樣即可:
當然,這樣的前提是光束質量不至於太糟糕,否則沒辦法計算的,也沒意義。
POP採樣點的本質,是用有限尺寸的離散點來表示光束,有時採樣點設置不合適就沒法準確地代表光束。
關於衍射光束的傳播,Zemax中主要有兩種計算方式:
1.角譜傳播;
2.菲涅爾衍射;
角譜傳播的傳遞函數計算參考的是某一平面波的電場相位;
菲尼爾衍射的傳播函數計算參考的是某一球面波的電場相位;
簡單理解,當球面波的球面半徑無窮大,就是平面波了。
所以角譜傳播傳播針對的是準直光束;
而菲涅爾衍射針對的是發散光束。
菲涅爾數大時,默認選擇角譜傳播;
菲涅爾數小時,默認選擇菲涅爾衍射;
因此採樣方式也採取兩種方式(實踐經驗值):
兩個瑞利範圍內採樣恆定採樣(光束變化慢);
其餘區域採樣線性比例採樣(光束變化快);
如遇特殊情況,像前面光束被小孔截斷了,可以手動選擇重新計算導向光束,輔助POP重新考量用哪種傳播算法更合適,否則就是一切默認了。
如果計算結果看上去非常奇怪和詭異,可以通過一次傳播一個面,挨個調試來找原因。
關注後只要加上星標,就能固定找到我們啦!
↓↓↓
本文註明來源為其他媒體或網站的文/圖等稿件均為轉載,如涉及版權等問題,請作者在20個工作日之內聯繫我們,我們將協調給予處理。最終解釋權歸光電匯所有。
請聯繫oepn@siom.ac.cn
商務合作,請聯繫
季先生 18018304797