close

Anti Reflection 初始code碼模擬如下,

可定義成 fuction 型式 作為之後針對變數計算趨勢

 

 

import numpy as np
import math
#### 入射角及波長
qi=0
qi=qi/57.3
wi=1.3
wl=1.3
#### 層數
n=1
#### 薄膜厚度與光學厚度
ni=1.5
nf=2.4
subindex=3.5
index=[ni,nf,subindex]
ot=[0,wl/(4*nf),0]

k=len(ot)
sineff=[index[0]*np.sin(qi)]
coseff=[]
rs=[]
Ph=[]
bs=[]
for ii in range(1,n+2):
    sineff.append(index[0]/index[ii]*np.sin(qi))
for jj in range(0,n+2 ):
    coseff.append((1-sineff[jj]**2)**0.5)
    rs.append(index[jj]*coseff[jj])
    Ph.append((2*math.pi/wi)*index[jj]*ot[jj]*coseff[jj])
    bs.append(np.array([
                        [np.cos(Ph[jj]),complex(0,np.sin(Ph[jj])/rs[jj])],
                        [complex(0,np.sin(Ph[jj])*rs[jj]),np.cos(Ph[jj])]
                     ]))
for ii in range(1,n+1):
    if ii==1:
        bseff=bs[1]
    else:
        bseff=bseff.dot(bs[ii])
        
yss=np.array([1,rs[-1]])
yb =np.array([1,0])
yc =np.array([0,1])

Fms=bseff.dot(yss)
B=yb.dot(Fms)
C=yc.dot(Fms)
Y=C/B
Rs=abs(((rs[0]-Y)/(rs[0]+Y))**2)
dB=10*math.log(Rs,10)
Ts=(4*rs[0]*(rs[-1]).real/((rs[0]*B+C)*np.conj(rs[0]*B+C))).real

print(Fms)
print(B)
print(C)
print(Rs)
print(dB)
print(Ts)
print(Ts+Rs)

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 Mr.Onion 的頭像
    Mr.Onion

    Mr.Onion的部落格

    Mr.Onion 發表在 痞客邦 留言(0) 人氣()