Python光學仿真理解Jones矩陣學習
Jones向量
假設光波沿z軸傳播,那么其三個方向的電場分量可以表示為
Jones矩陣
能夠保證二維列向量形狀不變的運算有無窮多種,但最符合我們直覺的一定是 2 × 2矩陣。好在這種矩陣已經(jīng)可以提供足夠多的運算,從而滿足我們描述偏振變化的需求。
光在通過波片之后,會在不同方向產(chǎn)生差異性的相位延遲,對于與x軸角度為 Ψ,相位差為 Φ 的波片,其Jones矩陣為
Jones矩陣的表示
為了對Jones矩陣所對應的偏振狀態(tài)進行繪制,我們需要進一步理解Jones矩陣中每個值所對應的物理概念。如果將Jones矩陣寫成虛數(shù)形式,可以表示為
那么,對于任意Jones矩陣,我們可以很方便地繪制其對應的偏振圖像。方便起見,我們只對1.064um光波在z軸方向傳播5um這段距離進行采樣,然后畫出
def drawJones(J=[1,-2j]): J = np.array(J).reshape(2,1) # 設1.064um的光在z方向傳播5um后,沿傳播方向看去的振幅分布 z = np.arange(0,5,0.01) k = 2*np.pi/1.064 # 將J改寫成x和y方向的振幅序列 J = np.abs(J)*np.cos(k*z+np.angle(J)) fig = plt.figure() ax1 = fig.add_subplot(121) ax1.plot(J[0],J[1]) ax2 = fig.add_subplot(122,projection='3d') ax2.plot3D(z,J[0],J[1]) plt.show() if __name__ == "__main__": drawJones()
其圖像為
現(xiàn)在光路中引入 λ / 4波片,令其旋轉(zhuǎn)一周,觀察一下線偏振光會有怎樣的變化,設波片與x軸所成夾角為 Ψ,則其對應的Jones矩陣為
代碼為
def drawQuaterPlate(): quater = lambda psi : np.array( [[1-np.cos(2*psi),-1j*np.sin(2*psi)], [-1j*np.sin(2*psi),1+np.cos(2*psi)]]) z = np.arange(0,5,0.01) k = 2*np.pi/1.064 # 初始光波為x方向線偏振光 J0 = np.array([1,0]).reshape(2,1) fig = plt.figure() ax = fig.add_subplot(111,xlim=(-2,2),ylim=(-2,2)) ax.grid() line, = ax.plot([],[],lw=0.2) time_text = ax.text(0.1,0.9,'',transform=ax.transAxes) thetas = np.linspace(0,np.pi*2,80) def init(): line.set_data([],[]) time_text.set_text("") return line, time_text def animate(theta): J = quater(theta)@J0 #經(jīng)過波片后的Jones矩陣 arrJ = np.abs(J)*np.cos(k*z+np.angle(J)) #采樣后的振幅 line.set_data(arrJ[0],arrJ[1]) time_text.set_text("angle:"+str(theta)) return line, time_text ani = animation.FuncAnimation(fig, animate, thetas, interval=100, init_func=init) ani.save('polor.gif',writer='imagemagick') plt.show()
最終得到偏振情況與波片角度的關(guān)系
可見,當角度合適的時候, λ / 4波片會將線偏振光變?yōu)閳A偏振光。
以上就是Python光學仿真理解Jones矩陣學習的詳細內(nèi)容,更多關(guān)于Python光學仿真Jones矩陣的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python client使用http post 到server端的代碼
python client使用 http post 到server端的代碼,供大家學習參考2013-02-02Python可執(zhí)行文件反編譯教程(exe轉(zhuǎn)py)
python的便利性,使得如今許多軟件開發(fā)者、黑客都開始使用python打包成exe的方式進行程序的發(fā)布,那么Python如何反編譯可執(zhí)行文件,本文就來介紹一下,感興趣的可以了解一下2021-12-12Python Django教程之實現(xiàn)天氣應用程序
Django提供了一個基于Python Web框架的Web框架,允許快速開發(fā)和干凈,務實的設計。在本教程中,我們將學習如何創(chuàng)建一個使用Django作為后端的天氣應用程序,感興趣的可以嘗試一下2022-10-10解決pip install xxx報錯SyntaxError: invalid syntax的問題
今天小編就為大家分享一篇解決pip install xxx報錯SyntaxError: invalid syntax的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11對Python3中的print函數(shù)以及與python2的對比分析
下面小編就為大家分享一篇對Python3中的print函數(shù)以及與python2的對比分析,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05