Python光學仿真光的偏振編程理解學習
光的偏振
由于光波是橫波,所以對于任意一個光波,其振幅方向與傳播方向在一個固定的平面內(nèi)。換言之,一束光波可以存在振幅方向不同的一群光波,對于其中一個光波而言,其振幅方向即為偏振方向。
可以畫出其示意圖
#偏振光演示 import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D as axd def polarShow(): z = np.arange(0,5,0.01)#傳播方向,單位um dWave = 0.6328 x1 = z*0 y1 = np.cos(2*np.pi*z/dWave)#此光波偏振方向為y x2 = np.cos(2*np.pi*z/dWave)#此光波偏振方向為y y2 = z*0 fig = plt.figure() ax = axd(fig) ax.plot3D(z,x1,y1) ax.plot3D(z,x2,y2) ax.plot3D(z,x1,y2) plt.show()
得到其示意圖為

我們生活中遇到的大部分光都是各種偏振方向的均勻混合,即并不是偏振光。上圖所示的藍色和橙色光波,其偏振方向單一,這種光叫做線偏振光。又因為這兩束光處處保持等相位,則這兩束光的合成仍舊為偏振光。
如果二者之間產(chǎn)生一點相位差,那么其合成將不再是線偏振光,下面將程序中插入一個相位
#兩個存在相位差的線偏振光演示 def polarShow(dWave = 0.6328,delta=0.5): z = np.arange(0,5,0.01) x1 = z*0 y1 = np.cos(2*np.pi*z/dWave+delta)#此光波偏振方向為y x2 = np.cos(2*np.pi*z/dWave)#此光波偏振方向為x y2 = z*0 x3 = x1+x2 y3 = y1+y2 fig = plt.figure() ax = axd(fig) ax.plot3D(z,x1,y1) ax.plot3D(z,x2,y2) ax.plot3D(z,x3,y3) ax.plot3D(z,x1,y2) plt.show()
調(diào)整視角之后,如下圖所示,可見兩束現(xiàn)偏振光合成之后,偏振方向則在光的不同傳播位置處發(fā)生變化。由于沿著光的傳播方向看去,其投影為一個橢圓,所以稱此時的光為橢圓偏振光。

調(diào)整相位差,然后畫出光波沿傳播方向上的投影
#偏振光演示 def polarShow(dWave = 0.6328): z = np.arange(0,5,0.01) x = np.cos(2*np.pi*z/dWave) #x偏振光 delta = [0,np.pi/6,np.pi/4,\ np.pi/3,np.pi/2,2*np.pi/3,\ 3*np.pi/4,5*np.pi/6,np.pi] titles = ["0","30°","45°","60°","90°",\ "120°","135°","150°","180°"] #fig = plt.figure() for i in range(9): ax =plt.subplot(331+i) #子圖繪制,表示3×3的布局中的第(1+i)個圖 ax.set_title(titles[i]) y = np.cos(2*np.pi*z/dWave+delta[i])#此光波偏振方向為y plt.plot(x,y) plt.xticks([]) plt.yticks([]) #去掉坐標軸 plt.subplots_adjust(wspace=0.5,hspace=0.5)#調(diào)整子圖間距 plt.show()
于是就得到了這張著名的圖片:

光在空氣中或者水中傳播時,并不會改變其偏振狀態(tài),同時這兩種介質(zhì)對不同偏振方向的光具有相同的折射率。
以上就是Python光學仿真光的偏振編程理解學習的詳細內(nèi)容,更多關于Python光的偏振的資料請關注本站其它相關文章!
版權(quán)聲明:本站文章來源標注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學習參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。
關注官方微信