熊猫型保偏光纤光栅反射透射光谱仿真代码
时间: 2023-08-01 11:06:20 浏览: 150
光纤光栅仿真代码
由于保偏光纤光栅反射透射光谱仿真代码需要涉及到许多物理和数学知识,因此编写起来比较复杂。以下是一个简单的保偏光纤光栅反射透射光谱仿真代码,供参考。
```python
import numpy as np
import matplotlib.pyplot as plt
# 定义物理参数
lambda_0 = 1550e-9 # 波长
n_core = 1.5 # 光纤芯层折射率
n_clad = 1.45 # 光纤包层折射率
d_core = 9e-6 # 光纤芯层直径
d_clad = 125e-6 # 光纤包层直径
pitch = 2.5e-6 # 光栅周期
depth = 2000e-9 # 光栅深度
delta_n_e = 0.01 # e光偏振模式的折射率调制
delta_n_o = 0.005 # o光偏振模式的折射率调制
theta_i = 0 # 入射角
# 定义计算函数
def reflectivity(theta_i):
# 计算反射率
theta_t = np.arcsin(n_core/n_clad*np.sin(theta_i))
delta_theta = 2*np.pi*pitch*(n_core-n_clad)*np.cos(theta_t)/lambda_0
r_e = -(delta_n_e*depth*np.exp(-1j*delta_theta))/(2*n_clad*np.cos(theta_t))
r_o = -(delta_n_o*depth*np.exp(-1j*delta_theta))/(2*n_clad*np.cos(theta_t))
r = (np.abs(r_e)**2 + np.abs(r_o)**2)/2
return r
def transmissivity(theta_i):
# 计算透射率
theta_t = np.arcsin(n_core/n_clad*np.sin(theta_i))
delta_theta = 2*np.pi*pitch*(n_core-n_clad)*np.cos(theta_t)/lambda_0
t_e = 1 + r_e - np.exp(-1j*delta_theta)
t_o = 1 + r_o - np.exp(-1j*delta_theta)
t = (np.abs(t_e)**2 + np.abs(t_o)**2)/2*n_clad*np.cos(theta_i)/(n_core*np.cos(theta_t))
return t
# 定义角度范围
theta_range = np.linspace(0, np.pi/2, 1000)
# 计算反射率和透射率
reflectivity_values = [reflectivity(theta_i) for theta_i in theta_range]
transmissivity_values = [transmissivity(theta_i) for theta_i in theta_range]
# 绘制图形
plt.plot(theta_range, reflectivity_values, label='Reflectivity')
plt.plot(theta_range, transmissivity_values, label='Transmissivity')
plt.xlabel('Incident Angle (rad)')
plt.ylabel('Reflectivity/Transmissivity')
plt.legend()
plt.show()
```
需要注意的是,这个代码只是一个简单的示例,实际的保偏光纤光栅反射透射光谱仿真代码会更加复杂,需要涉及到更多的物理和数学知识。
阅读全文