拓十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

OptiCommPy仿真平衡光电探测器

OptiCommPy仿真平衡光电探测器

文章目录

    • 平衡光电探测器原理
    • 参数
    • 测试

平衡光电探测器原理

平衡光电探测器(Balanced Photodetector, BPD)是由两个高度匹配的光电二极管(Photodiode, PD)和一个差分跨阻放大器(Transimpedance Amplifier, TIA)构成的光电探测组件。其核心物理机制是通过差分测量提取两路光信号的干涉项,同时抵消共模噪声和直流背景。

在相干探测系统中,信号光场E s ( t ) E_s(t)Es​(t)和本振光场E l o ( t ) E_{lo}(t)Elo​(t)通常输入到一个3dB的光耦合器,耦合器的两个输入端光场为

E + ( t ) = 1 2 [ E s ( t ) + E l o ( t ) ] E − ( t ) = 1 2 [ E s ( t ) − E l o ( t ) ] E_+(t)=\frac{1}{\sqrt{2}}[E_s(t)+E_{lo}(t)]\\ E_-(t)=\frac{1}{\sqrt{2}}[E_s(t)-E_{lo}(t)]E+​(t)=2​1​[Es​(t)+Elo​(t)]E−​(t)=2​1​[Es​(t)−Elo​(t)]

这两路广分别入射到BPD的两个PD上,设PD的响应度为r rr,则光电流分别是

I + ( t ) = r ∣ E + ( t ) ∣ 2 = r 2 [ ∣ E s ∣ 2 + ∣ E l o ∣ 2 + E s E l o ∗ + E s ∗ E l o ] I − ( t ) = r ∣ E − ( t ) ∣ 2 = r 2 [ ∣ E s ∣ 2 + ∣ E l o ∣ 2 − ( E s E l o ∗ + E s ∗ E l o ) ] I_+(t)=r\vert E_+(t)\vert ^2=\frac{r}{2}[\vert E_s\vert^2+\vert E_{lo}\vert^2+E_sE_{lo}^*+E_s^*E_{lo}]\\ I_-(t)=r\vert E_-(t)\vert ^2=\frac{r}{2}[\vert E_s\vert^2+\vert E_{lo}\vert^2-(E_sE_{lo}^*+E_s^*E_{lo})]\\I+​(t)=r∣E+​(t)∣2=2r​[∣Es​∣2+∣Elo​∣2+Es​Elo∗​+Es∗​Elo​]I−​(t)=r∣E−​(t)∣2=2r​[∣Es​∣2+∣Elo​∣2−(Es​Elo∗​+Es∗​Elo​)]

TIA输出两路广电能流之差,设E s = ∣ E s ∣ e i ϕ s , E l o = ∣ E l o ∣ e i ϕ l o E_s=\vert E_s\vert e^{i\phi_s}, E_{lo}=\vert E_{lo}\vert e^{i\phi_{lo}}Es​=∣Es​∣eiϕs​,Elo​=∣Elo​∣eiϕlo​,则

I = I + − I − = r ( E s E l o ∗ + E s ∗ E l o ) = 2 r ∣ E s ∣ ∣ E l o ∣ cos ⁡ ( ϕ s − ϕ l o ) \begin{aligned} I=I_+-I_-&= r(E_sE_{lo}^*+E_s^*E_{lo})\\ &= 2r\vert E_s\vert \vert E_{lo}\vert \cos(\phi_s-\phi_{lo}) \end{aligned}I=I+​−I−​​=r(Es​Elo∗​+Es∗​Elo​)=2r∣Es​∣∣Elo​∣cos(ϕs​−ϕlo​)​

可见,直流项∣ E s ∣ 2 , ∣ E l o ∣ 2 \vert E_s\vert^2, \vert E_{lo}\vert^2∣Es​∣2,∣Elo​∣2完全被消掉了,从而避免了强本振光引起的放大器饱和问题。与此同时,输出信号的振幅和本振光振幅∣ E l o ∣ \vert E_{lo}\vert∣Elo​∣成正比,即起到了微弱信号放大的作用。

参数

OptiCommPy中实现了PBD,函数签名如下,其中E1, E2是输入光场,param是相关参数,返回值是差分电流。

optic.models.devices.balancedPD(E1,E2,param=None)

param是OptiCommPy内置的参数类,其具体成员包括

  • param.R : 响应度,单位是[A/W],默认1 A/W
  • param.Tc : 工作温度,单位是[°C],默认25°C
  • param.Id : 暗电流,单位是[A],默认5e-9 A
  • param.RL : 负载阻抗,单位是[Ω],默认50Ω
  • param.B : 探测器带宽,单位是[Hz],默认30e9 Hz
  • param.Fs : 采样频率,单位是[Hz],默认60e9 Hz
  • param.fType : 频率响应类型,默认’rect’,即矩形/理想砖墙式低通滤波器。
  • param.N : 滤波器抽头数,默认255
  • param.ideal : 如果为True,则使用理想BPD模型,忽略所有噪声,且不做带宽滤波。否则注入真实的物理噪声。
  • param.seed : 随机数种子。

测试

理想BPD的输入输出测试如下

importnumpyasnpimportmatplotlib.pyplotaspltfromoptic.models.devicesimportbalancedPDfromoptic.utilsimportparameters plt.rcParams['font.family']='Times New Roman'# 基础仿真参数Fs=100e9t=np.arange(0,5e-9,1/Fs)N=len(t)P_lo=10e-3# 本振光 (强,恒定 CW)Elo=np.sqrt(P_lo)*np.ones(N)# 信号光 (弱,幅度和相位随时间做非周期的连续变化)# 幅度: 基础值 + 两个不同频率的起伏A_t=1e-3*(1.0+0.6*np.sin(2*np.pi*1.2e9*t)+0.4*np.sin(2*np.pi*3.7e9*t))# 相位: 频偏 + 相位连续调制phi_t=2*np.pi*2.5e9*t+1.5*np.sin(2*np.pi*0.8e9*t)Es=A_t*np.exp(1j*phi_t)# 模拟混频器输出 E1, E2E1=(Es+Elo)/np.sqrt(2)E2=(Es-Elo)/np.sqrt(2)# 理想balancedPDparam=parameters()param.R=1.0param.ideal=TrueI_bpd=balancedPD(E1,E2,param)fig,axs=plt.subplots(2,1,figsize=(10,6),sharex=True)fig.suptitle('Input-Output Mapping of balancedPD with Continuous Optical Field',fontsize=14,fontweight='bold')# 上图:输入光强 (展示 E1 和 E2 的连续动态变化)axs[0].plot(t*1e9,np.abs(E1)**2,label='$|E_1|^2$',color='blue',alpha=0.8)axs[0].plot(t*1e9,np.abs(E2)**2,label='$|E_2|^2$',color='red',alpha=0.8)axs[0].set_ylabel('Optical Power (W)',fontsize=12)axs[0].set_title('Input Optical Powers (Continuous & Non-periodic Varying)',fontsize=12)axs[0].legend(loc='upper right')axs[0].grid(True,alpha=0.3)# 下图:输出电流 (展示电流如何实时跟随两者的差值)axs[1].plot(t*1e9,I_bpd,'g-',linewidth=1.5,alpha=0.9)axs[1].set_ylabel('Output Current (A)',fontsize=12)axs[1].set_xlabel('Time (ns)',fontsize=12)axs[1].set_title('Output Balanced Current (Follows the difference of input powers)',fontsize=12)axs[1].grid(True,alpha=0.3)plt.tight_layout()plt.show()
返回列表